NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

re: kern/45718 (processes sometimes get stuck and spin in vm_map)



The following reply was made to PR kern/45718; it has been noted by GNATS.

From: matthew green <mrg%eterna.com.au@localhost>
To: Taylor R Campbell <campbell+netbsd%mumble.net@localhost>
Cc: kern-bug-people%netbsd.org@localhost, netbsd-bugs%netbsd.org@localhost,
    gnats-admin%netbsd.org@localhost, rmind%NetBSD.org@localhost, 
gnats-bugs%NetBSD.org@localhost,
    oster%netbsd.org@localhost, martin%netbsd.org@localhost
Subject: re: kern/45718 (processes sometimes get stuck and spin in vm_map)
Date: Sun, 15 Apr 2012 05:14:06 +1000

 > I caught some processes wedged in vm_map, although they don't seem to
 > be spinning -- just wedged.  ps(1) reports these processes as zombies;
 > top(1) does not report their taking any CPU time.  One is a subprocess
 > of newsyslog; the other is a subprocess of git-pull.
 > 
 > crash> t/a ca73daa0
 > trace: pid 25970 lid 1 at 0xdc10781c
 > sleepq_block(64,0,c0c5fd9d,c0ce63d0,0,0,0,c08e40d3,0,0) at sleepq_block+0xda
 > cv_timedwait(c0d291d0,c0d291cc,64,dc1078e8,c0d28fe0,ffffffff,ffffffff,0,801727,c66ef880)
 >  at cv_timedwait+0x126
 > uvm_map_prepare(c0d291c0,c0000000,40000,c0d28fe0,ffffffff,ffffffff,0,801727,dc107928,dc107b54)
 >  at uvm_map_prepare+0x167
 > uvm_map(c0d291c0,dc1079b0,40000,c0d28fe0,ffffffff,ffffffff,0,801727,800002,0)
 >  at uvm_map+0x78
 > uvm_km_alloc(c0d291c0,40000,0,800002,c0d15ea0,1,dc107a4c,c07e117a,c0d15ea0,1)
 >  at uvm_km_alloc+0xe6
 > exec_pool_alloc(c0d15ea0,1,dc107a0c,c09548fd,0,0,0,0,0,0) at 
 > exec_pool_alloc+0x2b
 > pool_grow(c0d15f14,1,c385ac12,0,0,c054,ca5ff000,c385ac09,9,c0d15f18) at 
 > pool_grow+0x2a
 > pool_get(c0d15ea0,1,ce4e4a80,c098bb91,0,c31eec40,dc107adc,c056764b,c3137d00,c3137bc0)
 >  at pool_get+0x79
 > execve_loadvm(8063f44,c055c480,dc107b3c,c3137d00,ca73daa0,0,8063f1c,c3ec4400,c4519400,c380e000)
 >  at execve_loadvm+0x1da
 > execve1(ca73daa0,8063f1c,8063f3c,8063f44,c055c480,6300,dc107d1c,0,c06ba833,cd722744)
 >  at execve1+0x32
 > sys_execve(ca73daa0,dc107cf4,dc107d1c,c08096f0,0,cdb17e3c,c0c8b800,dc107d30,c06babb9,cd722730)
 >  at sys_execve+0x30
 > syscall(dc107d48,b3,ab,bfbf001f,806001f,8063f1c,8063f3c,bfbfec48,8063f1c,7d7b7cff)
 >  at syscall+0x95
 
 this looks like the execargs pool leak that greg oster has a patch for.
 (reproduced below.)
 
 
 .mrg.
 
 Index: kern_exec.c
 ===================================================================
 RCS file: /cvsroot/src/sys/kern/kern_exec.c,v
 retrieving revision 1.349
 diff -u -p -r1.349 kern_exec.c
 --- kern_exec.c        9 Apr 2012 19:42:06 -0000       1.349
 +++ kern_exec.c        13 Apr 2012 20:28:14 -0000
 @@ -1991,6 +1991,8 @@ spawn_return(void *arg)
                rw_exit(&exec_lock);
        }
  
 +      execve_free_data(&spawn_data->sed_exec);
 +
        /* release our refcount on the data */
        spawn_exec_data_release(spawn_data);
  
 


Home | Main Index | Thread Index | Old Index