OpenAFS CVS Commit: openafs/src/rx by jaltman
   
    cvs@GRAND.CENTRAL.ORG
     
    cvs@GRAND.CENTRAL.ORG
       
    Wed, 18 May 2005 18:13:33 EDT
    
    
  
Update of /cvs/openafs/src/rx
In directory GRAND.CENTRAL.ORG:/home/jaltman/openafs/cvs-1-2/src/rx
Modified Files:
      Tag: openafs-stable-1_2_x
	rx.c 
Log Message:
DELTA STABLE12-rx-makecall-race-fix-20050518
AUTHOR jaltman@secure-endpoints.com
On at least one system it was noticed that threads waiting in rx_NewCall
would starve forever (aka deadlock).   This was the result of one out of
two problems related to a race condition on the RX_CONN_MAKECALL_WAITING
bit flag.  This flag was set once in rx_NewCall and cleared in rx_EndCall.
However, it was possible for the flag to be cleared even though there
were additional flags waiting in rx_NewCall.  This was due to a failure
to check the value of makeCallWaiters before clearing the flag and also
due to a failure to properly lock the access to the makeCallWaiters field.
The second problem was an ability to destroy a connection on which threads
are waiting within rx_NewCall.
--- DELTA config for openafs-stable-1_2_x follows ---
STABLE12-rx-makecall-race-fix-20050518 openafs/src/rx/rx.c 1.22.2.30 1.22.2.31