(Illustration by Gaich Muramatsu)
On Wed, Jun 26, 2002 at 03:32:49PM +0200, Steffen Neumann wrote: > We've got a Directory that hangs on access: > > /coda/vol/festival/src/festdoc-1.4.2/speech_tools/doc/speechtools > > Listing the parent directory works fine: > > ls -l /coda/vol/festival/src/festdoc-1.4.2/speech_tools/doc/ Ok, then it is likely a kernel problem. Venus has a big lock that it grabs when a volume is being updated. So if one directory hangs, but another is still accessible, the lock-up is typically in the kernel. Each directory in the kernel has a lock, the inode semaphore, which is grabbed while we're reading the contents. If something is wrong with the directory data, it is possible that the kernel dereferences a bad pointer and oopses. In this case the process that has called readdir is killed, but any locks that were taken are not released. So each subsequent access should lock on the same semaphore. However, if you are able to unlock ls on that directory with '^C', the deadlock must be in venus. On Wed, Jun 26, 2002 at 03:55:17PM +0200, Steffen Neumann wrote: > I checked other logs at the time when the first problem occured and > got a kernel oops. The machine is still running, so I can try > whatever is neccessary if someone tells me what to do. Could you run the oops through ksymoops, typically "dmesg | ksymoops" will work. That way we can get some idea of which functions we are looking at here. JanReceived on 2002-06-26 16:09:07