[OpenAFS-devel] deadlock on linux-2.4

Pavel Semerad semerad@ss1000.ms.mff.cuni.cz
Mon, 3 Jun 2002 19:25:13 +0200


Hi,
there is a deadlock situation in openafs for linux-2.4 (at least in
vanilla kernel 2.4.18 and CVS openafs version). linux-2.2, Solaris 8
and Irix 6.5 seems to be OK.
Alias mc from RedHat 7.3 sometimes caused it when exiting mc. And this
command causes it:

N=0; while true; do N=$(($N+1)); echo $N; (cp /etc/profile aaa &); cat aaa >/dev/null; done

Here is a cmdebug output:
---
** Cache entry @ 0xc49a57d8 for 1.536877573.514.10221
locks: (writer_waiting, upgrade_locked(pid:1334 at:121), 1 read_locks(pid:1395), 2 waiters)
1003 bytes  DV 4329 refcnt 2
callback c36c9100   expires 1023138509
2 opens     1 writers
normal file
states (0x21), stat'd
---
pid 1334 is afsd, 1395 is cat

afsd is holding shared lock on vcache->lock and is trying to obtain write lock
in afs/afs_segments.c line 542 .
cat called afs_UFSRead, there obtains read lock and called afs_GetDCache and
then somewhere locks. I don't know where. Can it be linux-2.4 VM issue, or
somebody has any ideas ?

Pavel Semerad