[OpenAFS-devel] fileserver deadlocks after internal error in callback.c

Rainer Toebbicke rtb@pclella.cern.ch
Tue, 15 Apr 2003 10:57:01 +0200


Derrick J Brashear wrote:

>>In most cases ShutDown() is called with the H_LOCK lock held, and will
>>eventually call PrintCounters(). This in turn calls routines that acquire all
>>sorts of locks, in particular H_LOCK in h_GetWorkStats(), at which point a
>>deadlock situation arises.
> 
> 
> It's already fixed another way in 1.2.9

Sure?

Checking on 1.2.9-rc4 and in the 'cvsweb.cgi' tree: CleanupTimedOutCallBacks_r 
in callback.c holds the H_LOCK and may well call ShutDown(), eventually 
falling through to h_GetWorkStats() which starts with H_LOCK.

I didn't see that lock being dropped but might have missed something, but what?

(In another place an 'assert(0)' "solves" the hanger but that's only one 
occasion).

-- 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Rainer Toebbicke        http://cern.ch/~rtb         rtb@mail.cern.ch  O__
European Laboratory for Particle Physics(CERN) - Geneva, Switzerland   > |
Phone: +41 22 767 8985       Fax: +41 22 767 7155                     ( )\( )