[OpenAFS-devel] today's CVS broken on RHEL4 i386, hangs in afs_addevent(), works on x86_64

Christopher Allen Wing wingc@engin.umich.edu
Wed, 27 Apr 2005 16:06:15 -0400 (EDT)


Hmm, I just built today's CVS openafs-stable-1_4_x branch, and it is
hanging when I try to write to a file in AFS.

Interestingly, it works OK on an x86_64 machine, but not on i386.
(running Red Hat RHEL4 in both cases)


Processes hang in close() when they try to write to AFS.

Here is my simple test case:

	http://www-personal.engin.umich.edu/~wingc/code/atest.c

Here is what happens when I try to run it:

	% ./atest
	about to open file
	file opened
	wrote output to file. now closing


and then it hangs forever.


Here's the kernel backtrace: (via SysRq-t on linux)


atest         S 1D244B3C  1484  3162   3118                     (NOTLB)
d34dded8 00000082 e0b86ee9 1d244b3c 00000000 00000fb4 35c2a31c 0000008d
       d3a992a0 d3a9942c d34dd000 00000000 d45a5940 d34ddf04 e0b86f95 00000000
       00000000 d3a992a0 c011b9f2 00000000 00000000 d45e2680 00000000 00000002
Call Trace:
 [<e0b86ee9>] afs_addevent+0x51/0x76 [libafs]
 [<e0b86f95>] afs_osi_SleepSig+0x87/0xd5 [libafs]
 [<c011b9f2>] default_wake_function+0x0/0xc
 [<c011b9f2>] default_wake_function+0x0/0xc
 [<e0b8714c>] afs_osi_Sleep+0x169/0x2cd [libafs]
 [<e0b6bf02>] afs_close+0x173/0x341 [libafs]
 [<c0300512>] __cond_resched+0x14/0x3b
 [<e0b84e2a>] crget+0x1e/0xbb [libafs]
 [<e0b890c4>] afs_linux_release+0xb1/0x141 [libafs]
 [<c01631b6>] __fput+0x55/0xee
 [<c0161abf>] filp_close+0x59/0x5f
 [<c0301d43>] syscall_call+0x7/0xb



The backtrace never changes over time.


Any ideas? The same code works fine on x86_64. 1.3.81 also worked on i386.

-Chris Wing
wingc@engin.umich.edu