Coda File System

Re: Hanging Handler ?

From: Jan Harkes <jaharkes_at_cs.cmu.edu>
Date: Wed, 26 Jun 2002 16:07:47 -0400
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.

Jan
Received on 2002-06-26 16:09:07