Deadlock, exclusive sx so_rcv_sx, amd64
John Baldwin
jhb at freebsd.org
Fri Oct 26 11:21:22 PDT 2007
On Friday 26 October 2007 05:52:07 am Gleb Kozyrev wrote:
> On 25/10/2007, John Baldwin <jhb at freebsd.org> wrote:
> > > Running rtorrent and ftp brings my system to a deadlock
> > > in a few hours. Kernel still responds to pings and sends some
> > > TCP acks.
> ...
> > > Please suggest any other commands to run in DDB if needed.
> > > Cores are saved.
> >
> > show sleepchain <pid> will show if it's a real deadlock or not.
> >
>
> This time the freeze was a matter of minutes.
>
> db> ps
> pid ppid pgrp uid state wmesg wchan cmd
> 1229 991 991 0 ? smbd
> 1201 1195 1201 1001 SL+ pfault 0xffffffff80b1359c rtorrent
> 1199 1193 1199 1001 Ss+ ttyin 0xffffff0001211410 tcsh
> 1197 1193 1197 1001 Ss+ ttyin 0xffffff0001218810 tcsh
> 1195 1193 1195 1001 Ss+ pause 0xffffff000624a0c0 tcsh
> 1193 1192 1193 1001 SLs pfault 0xffffffff80b1359c screen
> 1192 1190 1190 1001 S+ pause 0xffffff00013c10c0 screen
> 1190 1189 1190 1001 Ss+ pause 0xffffff00065b40c0 tcsh
> 1189 1187 1187 1001 S select 0xffffffff80af79d0 sshd
> 1187 1097 1187 0 Ss sbwait 0xffffff00065346cc sshd
> ...
>
> db> show alllocks
> Process 1187 (sshd) thread 0xffffff00065ad350 (100166)
> exclusive sx so_rcv_sx r = 0 (0xffffff0006534670) locked @
> /usr/src/sys/kern/uipc_sockbuf.c:145
>
> db> show sleepchain 1187
> thread 100166 (pid 1187, sshd) sleeping on 0xffffff00065346cc "sbwait"
> db> show sleepchain 1201
> thread 100164 (pid 1201, rtorrent) sleeping on 0xffffffff80b1359c "pfault"
>
> Nothing interesting I guess...
> Maybe this is not a deadlock, what else can cause such a freeze?
> I won't reboot it for a while -- maybe someone can suggest anything else.
"sbwait" is waiting for data to come in on a socket and "pfault" is waiting on
disk I/O. It is a bit odd that 1187 is holding a lock while sleeping though
that is permitted with an sx lock. Still, if it's supposed to be protect
socket's receive buffer that is odd. Maybe get a trace of the process
blocked in "sbwait" (tr <pid>) and bug rwatson@ about it.
--
John Baldwin
More information about the freebsd-current
mailing list