Andy,
We think we found the bug. It is in XrdOdcManager.cc
There is a method called whatsUp() that sometimes may not release a
lock. The unlock should be outside the if. It is called from
XrdOdcFinder if a send fails. And that creates a dangling lock.
We found thread 15 waiting for the lock at XrdOdcManager.cc line 107
(myData.lock()) while thread 7 held the lock but was sleeping waiting
for new work.
I will test with a fixed version of whatsUp()
--
Gregory J. Sharp email: [log in to unmask]
Wilson Synchrotron Laboratory url:
http://www.lepp.cornell.edu/~gregor
Dryden Rd ph: +1 607 255 4882
Ithaca, NY 14853 fax: +1 607 255 8062
|