6.0 hangs (while building OOo)

Don Lewis truckman at FreeBSD.org
Tue Oct 4 19:20:32 PDT 2005


On  4 Oct, Mikhail Teterin wrote:
> вівторок 04 жовтень 2005 13:08, Don Lewis Ви написали:
>> Hung trying to lock a vnode ...
>>
>> What other processes are in the D state, and what is their wchan info?
> 
> mi at roo:~ (301) ps -lax | awk 'match($10, "D")'
>     0     2     0   0  -8  0     0     8 -      DL    ??    0:06,50 [g_event]
>     0     3     0   0  -8  0     0     8 -      DL    ??    0:39,71 [g_up]
>     0     4     0   0  -8  0     0     8 -      DL    ??    0:31,21 [g_down]
>     0     5     0   0   8  0     0     8 -      DL    ??    0:00,00 [thread taskq]
>     0     6     0   0   8  0     0     8 -      DL    ??    0:00,00 [kqueue taskq]
>     0     7     0   0  96  0     0     8 idle   DL    ??    0:00,00 [aic_recovery0]
>     0     8     0   0  96  0     0     8 idle   DL    ??    0:00,00 [aic_recovery0]
>     0     9     0   0  96  0     0     8 idle   DL    ??    0:00,00 [aic_recovery1]
>     0    10     0   0 -16  0     0     8 ktrace DL    ??    0:00,00 [ktrace]
>     0    39     0   0 -16  0     0     8 -      DL    ??    0:09,21 [yarrow]
>     0    44     0   0   8  0     0     8 usbevt DL    ??    0:00,01 [usb0]
>     0    45     0   0   8  0     0     8 usbtsk DL    ??    0:00,00 [usbtask]
>     0    46     0   0  96  0     0     8 idle   DL    ??    0:00,00 [aic_recovery1]
>     0    47     0   0  -8  0     0     8 -      DL    ??    0:00,91 [fdc0]
>     0    49     0   0 -16  0     0     8 psleep DL    ??    0:03,51 [pagedaemon]
>     0    50     0   0  20  0     0     8 psleep DL    ??    0:00,00 [vmdaemon]
>     0    51     0   0 171  0     0     8 pgzero DL    ??   12:19,32 [pagezero]
>     0    52     0   0 -16  0     0     8 psleep DL    ??    0:06,55 [bufdaemon]
>     0    53     0   0  20  0     0     8 syncer DL    ??    1:00,40 [syncer]
>     0    54     0   0  -4  0     0     8 vlruwt DL    ??    0:03,16 [vnlru]
>     0    55     0   0 -64  0     0     8 -      DL    ??    0:11,48 [schedcpu]
>     0   115     0   0  -8  0     0     8 mdwait DL    ??    0:05,75 [md7]
>     0 45773 45771   0  -4  0  1740  1208 ufs    D     p1    0:00,32 dmake
>     0 45806 45788 350  -4  0  1548   632 ufs    D     p1    0:00,00 /bin/tcsh -fc zipdep.pl -u -j  ../../../
>     0 65072 64985 271  -4  0  1248   480 ufs    D     p1    0:00,00 /bin/tcsh -fc if ( -e ../../../unxfbsd.p
>     0 65327  8694   0  -4  0  1432   908 ufs    D+    p2    0:02,05 find work/ -name provider.o

Mikhail and I have been looking at this offline and have discovered the
following:
	The wedged processes are waiting for vnode locks in the file
        name lookup path for the access() and lstat syscalls().

	There are two locked directories that are wedging these
        processes.

	We don't know what threads are holding the locks on these
        directories, but we do know that is is none of the threads
        associated with these processes, so it is not a classic deadlock
        problem.

	No other processes seem to be wedged, and all the system
        processes appear to be in their idle states.

This problem appears to be some sort of vnode lock leak.

I'm unable to replicate this on my UP box running HEAD.  Mikhail is
running RELENG_6 on an SMP box.  This could be a RELENG_6 vs. HEAD
problem, or it could be a UP vs. SMP problem.



More information about the freebsd-current mailing list