[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