[OpenAFS-devel] callback handling problem

Thomas Mueller thomas.mueller@hrz.tu-chemnitz.de
Thu, 31 Jan 2002 17:16:43 +0100 (MET)


Hi folks,

we still have the problem which I reported last October.
I now can say what happens but I have no idea why it happens.

Occasionally the fileserver ends up with all threads running an infinite 
loop in GetSomeSpace_r() in viced/callback.c (do { ... } while (i < 2);)

If

h_Enumerate_r(lih_r, (char*)hp1);

finds at least one host which passes all test in lih_r(...)
then 

ClearHostCallbacks_r(hp, 0) 

is called, but this function returns immediately (return value 1)
if this host entry is locked and the next round in this loop starts.

So if hostList contains only a few (sometimes only one) entries 
with host->cblist != 0 AND those entries are locked this thread keeps in 
that do-while-loop.

Do you think, it would be a solution to modify lih_r() a little bit so
that it doesnt pick up locked host entries?

Thomas.
-- 
-------------------------------------------------------------------------
Thomas Mueller, TU Chemnitz, Universitaetsrechenzentrum, D-09107 Chemnitz
e-mail: Thomas.Mueller@hrz.tu-chemnitz.de
-------------------------------------------------------------------------