Bug 1382 - Another race condition in TAO_Transport class
Summary: Another race condition in TAO_Transport class
Status: RESOLVED FIXED
Alias: None
Product: TAO
Classification: Unclassified
Component: ORB (show other bugs)
Version: 1.2.6
Hardware: All All
: P3 normal
Assignee: Nanbor Wang
URL:
Depends on:
Blocks: 1277
  Show dependency tree
 
Reported: 2002-11-26 22:22 CST by Nanbor Wang
Modified: 2002-12-09 16:00 CST (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Nanbor Wang 2002-11-26 22:22:48 CST
The race is between the instant when the the transport class resumes the handle 
and the instant when the Transport is duplicated by the TAO_Server_Request 
class  along the request flow path. Similarly along the reply path, there is 
race between the instant when the handle is resumed till the reply is processed 
and the LF_Event is unbound. 

The exact problem: When the TAO_Transport class resumes the handle, there is a 
possibility that a thread could be dispatched to the same handler and 
transport. The secomd thread could receive a ECONNRESET from the peer, in which 
case the second thread could try closing the connection which would also mean 
closing the transport. The first thread in the meanwhile wouldnt have even 
incremented the refcount. Things crash at that point!
Comment 1 Nanbor Wang 2002-12-09 16:00:27 CST
Fixed! Here is the relevant ChangeLog entry!

Tue Dec  3 18:13:42 2002  Balachandran Natarajan 
<bala@isis-server.isis.vanderbilt.edu>