[jacorb-bugs] [Bug 1027] New: BiDir IIOP fails when client creates a callback IOR with alternate addresses

bugzilla-daemon at jacorb.org bugzilla-daemon at jacorb.org
Wed Feb 10 22:58:20 CET 2016


http://www.jacorb.org/bugzilla/show_bug.cgi?id=1027

            Bug ID: 1027
           Summary: BiDir IIOP fails when client creates a callback IOR
                    with alternate addresses
           Product: JacORB
           Version: 3.7
          Hardware: PC
                OS: All
            Status: NEW
          Severity: minor
          Priority: P5
         Component: ORB
          Assignee: jacorb-bugs at lists.spline.inf.fu-berlin.de
          Reporter: mesnierp at ociweb.com

When the client is on a multi-homed host, and the listen endpoint is defaulted,
The BiDirConnectionClientInterceptor will create a service context containing
only the primary address, so the server interceptor synthesizes a profile with
only one address, which is then added to the connection cache. Later, the
client sends a callback IOR that contains 1 or more alternate addresses as
Tagged Components. This means that when the server wants to invoke on the
callback, the ClientConnectionManager fails to find the previously added
connection since the profile sans-alternates is not equal to the profile
with-alternates, even though the primary addresses match.

It turns out that IIOPProfile has a "final" value called
checkAlternateAddresses that in the case of a defaulted listen endpoint is set
to false, but later the IIOPListener object calls a method,
addAllWildcardAddresses, which appends the remaining interface addresses as
alternates. 

My solution is to remove the finality from checkAlternateAddresses and set it
to true if there are indeed extra addresses to add to the alternates. I'll
attach a patch shortly.

BTW, I believe the table managed by the ClientConnectionManager is
inappropriately keyed. It is keyed with a Profile, which contains possibly
multiple addresses, which in turn may relate to multiple connections as well as
non-connection related stuff. I think the connections table should be keyed by
an address, which had it been so, the need to pass multiple alternate addresses
in the bidir service context goes away. This would require some additional
refactoring inside the connection manager, but I don't think there are any
interface changes to affect any other classes.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.spline.inf.fu-berlin.de/pipermail/jacorb-bugs/attachments/20160210/35b41274/attachment.html>


More information about the jacorb-bugs mailing list