Hi!
Sorry, I cannot reply to the thread with the similar name because I just subscribed.
I immediately recognized the sysrq-t output and I would like to add a: "me too!"
As I'm not very familiar with the openafs internals it took me some time to gain some insight, here's what I think is happening:
src/afs/afs_call.c:afs_shutdown()
{
[...]
afs_warn("afs... ");
while (afs_termState == AFSOP_STOP_AFS) {
afs_osi_CancelWait(&AFS_WaitHandler);
afs_osi_Sleep(&afs_termState);
}The backtrace shows that this loop does not terminate (you can see the afs_osi_SleepSig()), which is also matched by the dmesg output stopping after "afs...". On the other hand the afsd already exited, which must have happened like this:
src/afs/afs_daemons.c:afs_Daemon()
{
[...]
if (now > 0) {
afs_osi_Wait(now, &AFS_WaitHandler, 0);
} if (afs_termState == AFSOP_STOP_AFS) {
if (afs_CheckServerDaemonStarted)
afs_termState = AFSOP_STOP_CS;
else
afs_termState = AFSOP_STOP_BKG;
afs_osi_Wakeup(&afs_termState);
return;
}I haven't had the time to check the afs_termState in afs_shutdown yet as I've noticed that AFS_GLOCK() seems to do nothing if !CONFIG_SMP, so I figured I'd enable that since I use CONFIG_PREEMPT, which (to my naive mind) seems to necessitate locking...
If you have any suggestions how to hunt this down please let me know.
Ciao,
Roland
_______________________________________________
OpenAFS-devel mailing list
[email protected]
https://lists.openafs.org/mailman/listinfo/openafs-devel
