Bug 2934

Summary: The implementation of -ORBMuxedConnectionMax is unsafe.
Product: TAO Reporter: Dale Wilson <wilson_d>
Component: ORBAssignee: Dale Wilson <wilson_d>
Status: RESOLVED FIXED    
Severity: major CC: jwillemsen, mitza
Priority: P3    
Version: 1.5.8   
Hardware: All   
OS: All   
Bug Depends on:    
Bug Blocks: 2935    

Description Dale Wilson 2007-05-16 10:58:51 CDT
The implementation of -ORBMuxedConnectionMax in Transport_Cache_Manager simply waits on a condition variable when it determines that it is not allowed to open a new connection.  This is not a safe way to wait for many (most!) TAO configurations.   

For example, if the thread that waits is involved in a nested upcall this blocks everything on the stack -- including possibly code that would allow the request to continue.

I'm working on a test and fix for this, sponsored by ATD.

Dale @ OCI
Comment 1 Dale Wilson 2007-08-01 13:41:35 CDT
Changes checked in for x.6

Wed Aug  1 15:54:01 UTC 2007  Dale Wilson  <wilsond@ociweb.com>
Comment 2 Johnny Willemsen 2007-08-21 09:27:09 CDT
also reopen because changes are reverted
Comment 3 Adam Mitz 2008-08-07 14:10:16 CDT
(In reply to comment #2)
> also reopen because changes are reverted
> 

At this point is this bug a duplicate of 2935?  By that I mean Chad's changes for 2935 should have resolved it.

Comment 4 Adam Mitz 2008-08-07 14:22:54 CDT
(In reply to comment #3)
> (In reply to comment #2)
> > also reopen because changes are reverted
> > 
> 
> At this point is this bug a duplicate of 2935?  By that I mean Chad's changes
> for 2935 should have resolved it.
> 

Based on a discussion with Dale and examination of the code, this particular fix from 1 August 2007 was NOT reverted on 17 August 2007.  I don't see any evidence of using a mutex & condition variable for the wait_for_connection.  It's using the leader-follower stuff.

Resolving.