Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 3 Apr 2014 11:03:40 -0400
From:      John Baldwin <jhb@freebsd.org>
To:        Karl Pielorz <kpielorz_lst@tdx.co.uk>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: Stuck CLOSED sockets / sshd / zombies...
Message-ID:  <201404031103.41171.jhb@freebsd.org>
In-Reply-To: <9FDC091D98AB2CF92DE4399F@Mail-PC.tdx.co.uk>
References:  <3FE645E9723756F22EF901AE@Mail-PC.tdx.co.uk> <201404021405.56878.jhb@freebsd.org> <9FDC091D98AB2CF92DE4399F@Mail-PC.tdx.co.uk>

next in thread | previous in thread | raw e-mail | index | archive | help

On Thursday, April 03, 2014 4:02:21 am Karl Pielorz wrote:
> 
> --On 02 April 2014 14:05 -0400 John Baldwin <jhb@freebsd.org> wrote:
> 
> > Grr, I guess that's what I should have expected.  Was sort of hoping to
> > be able to see which socket it was blocked on.  Can you run 'kgdb' as root
> > (no args), then do 'proc 4346' and 'bt'?  If you are familiar with gdb,
> > walk up to the frame that in sys_read and do 'p *uap' so we can see which
> > fd is being read.
> 
> Ok, think I've done this right (if not, let me know what I should be doing 
> :)
> 
> "
> ...
> (kgdb) up
> #9  0xffffffff80903133 in sys_read (td=<value optimized out>, uap=<value 
> optimized out>) at ../../../kern/sys_generic.c:171
> 171             error = kern_readv(td, uap->fd, &auio);
> (kgdb) p *uap
> $1 = {fd_l_ = 0xfffff800238bb920 "\b\021I\201ÿÿÿÿ", fd = -2125917944, 
> fd_r_ = "ÿÿÿÿ", buf_l_ = 0xfffff800238bb928 "", buf = 
> 0xfffff800237a1000,
>   buf_r_ = 0xfffff800238bb930 "", nbyte_l_ = 0xfffff800238bb930 "", nbyte = 
> 0, nbyte_r_ = 0xfffff800238bb938 "\020\020z#"}

Hmm, that fd value doesn't make any sense now.  Do you have the backtrace for
that process?  The fd may show up in the arguments to kern_readv().

-- 
John Baldwin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201404031103.41171.jhb>