[OpenAFS-devel] Why do afsd daemons loop tightly after receiving a SIGHUP?

Matt Peterson matt@calderasystems.com
Wed, 1 Aug 2001 23:14:05 -0600 (MDT)


The OpenAFS client daemons appear to work really well until the daemons
get a SIGHUP or any other signal.  After receiving the signal the /afs
mount continues to work only very slowly since several (not all) of the
forked afsd daemons are using 100% of the CPU.

Can anyone else reproduce this?  Try starting the afs client in the
normal way and then do a "killall -HUP afsd".  Start top and monitor CPU
usage.  I am using OpenAFS-1.1.1 and have seen the bad behavior on
linux-2.2.14 and linux-2.4.2.  I am using libafs-2.2.14.mp.o  and
libafs-2.4.2.mp.o.

From what I could tell from a few minutes of debugging, it looks like
problems start as soon as the flush_signals() call is made in
LINUX/osi_sleep.c:106.  I tried for a bit longer to find an
obvious while or for loop problem, but was unable to come up with
anything. 

Any ideas?

Please CC matt@caldera.com on replies as I am not yet subscribed to the
list.  

Thanks,

--
Matthew Peterson
Sr. Software Engineer
Caldera Systems, Inc
mpeterson@caldera.com