[Ace-users] Re: [tao-bugs] LOCATION_FORWARD and multiple network interfaces bug

Johnny Willemsen jwillemsen at remedy.nl
Wed Jun 20 13:28:48 CDT 2007


Hi,

Another option would be the optimized connection strategy, that should also
do the trick.

Johnny 

> -----Original Message-----
> From: schmidt at dre.vanderbilt.edu [mailto:schmidt at dre.vanderbilt.edu] 
> Sent: Wednesday, June 20, 2007 8:22 PM
> To: benjamin.schuele at berchtold-consulting.ch; mesnier_p at ociweb.com
> Cc: Johnny Willemsen; tao-bugs at cs.wustl.edu
> Subject: Re: [tao-bugs] LOCATION_FORWARD and multiple network 
> interfaces bug 
> 
> 
> Hi Phil,
> 
>    Would you be able to shed some light on the UseParallelConnects
> option described by Benjamin below?
> 
> Thanks,
> 
> Doug
> 
> > thanks a lot, "-ORBUseParallelConnects 1" is a very good 
> hint. Unfortunately I have 
> > not read the new options after changing from 1.4 tao version to 1.5.
> > 
> > But it does not solve the problem (other bug?).
> > 
> > After spend some time in debugging, I see following situation:
> > 
> > * In the "Invocation_Adapter::invoke_twoway" method
> >    (on "... synch.remote_twoway (max_wait_time)")
> > 	the server replay with "Locatin Forward" and multiple NICs
> > 
> > * In "CORBA::Boolean operator>> (TAO_InputCDR& cdr, 
> CORBA::Object*& x)"
> >   (called from Synch_Twoway_Invocation::location_forward 
> (TAO_InputCDR &inp_stream))
> > 	all NICs from server replay are correctly decoded and 
> create a TAO_Profile object for each
> > 
> > * In the "TAO_Default_Endpoint_Selector::select_endpoint 
> (....)" method
> >     on  "if (r->profile ()->endpoint_count () > 1 && 
> r->use_parallel_connect())"
> > 	r->profile ()->endpoint_count () does always return 1
> > 
> >  -->result is that the option "-ORBUseParallelConnects 1" 
> has no effect.
> > 
> > I've attached a project to reconstruct the bug, server have 
> to run on host with multiple NICs.
> > 
> > Mit freundlichen Grüssen / best regards
> > 
> > Benjamin Schüle
> > Senior Systems Engineer
> > ORICS - Operating Room Information and Communication System
> > 
> > BERCHTOLD Consulting GmbH 
> > Rheinweg 5 
> > CH-8200 Schaffhausen 
> > 
> > Tel     ++41 (0) 52 633 09 12
> > Fax    ++41 (0) 52 633 09 09
> > benjamin.schuele at berchtold-consulting.ch
> > http://www.berchtold.de
> > 
> > 
> > 
> >  
> > 
> > 
> > -----Ursprüngliche Nachricht-----
> > Von: Johnny Willemsen [mailto:jwillemsen at remedy.nl]
> > Gesendet: Dienstag, 19. Juni 2007 20:32
> > An: Benjamin Schüle; tao-bugs at cs.wustl.edu
> > Betreff: RE: [tao-bugs] LOCATION_FORWARD and multiple 
> network interfaces
> > bug
> > 
> > 
> > Hi,
> > 
> > This is not really a bug, more a feature. The endpoints are 
> added to the IOR
> > in the order the OS returns them. If you have multiple 
> NICs, you should
> > specify the ones explicitly. An option option is to use
> > -ORBUseParallelConnects 1 on the linux node, then it will 
> try to connect to
> > all 3 nics at the same moment.
> > 
> > Another option is to look at the 
> TAO_Optimized_Connection_Endpoint_Selector
> > in the TAO/tao/Strategies library, with the location 
> forward it then doesn't
> > make a new connection.
> > 
> > Regards,
> > 
> > Johnny Willemsen
> > Remedy IT
> > Postbus 101
> > 2650 AC  Berkel en Rodenrijs
> > The Netherlands
> > www.theaceorb.nl / www.remedy.nl 
> > 
> > *** Integrated compile and test statistics see http://remedy.nl ***
> > *** Commercial service and support for ACE/TAO/CIAO             ***
> > *** See http://www.theaceorb.nl/en/support.html                 ***
> > 
> > 
> > ________________________________
> > 
> >         From: tao-bugs-bounces at cse.wustl.edu
> > [mailto:tao-bugs-bounces at cse.wustl.edu] On Behalf Of Benjamin Schüle
> >         Sent: Monday, June 18, 2007 3:16 PM
> >         To: tao-bugs at cs.wustl.edu
> >         Subject: [tao-bugs] LOCATION_FORWARD and multiple 
> network interfaces
> > bug
> >        
> >        
> > 
> >             TAO VERSION: 1.5.8
> >             ACE VERSION: 5.5.8
> > 
> >             HOST MACHINE and OPERATING SYSTEM:
> >                 mixed Linux (debian-sarge-2.6) and Windows XP  
> > 
> > 
> >             THE $ACE_ROOT/ace/config.h FILE
> >         ----------begin windows --------
> >         #define ACE_HAS_STANDARD_CPP_LIBRARY 1
> >         #define ACE_HAS_MFC 1
> > 
> >         #include "ace/config-win32.h"
> >         ----------end windows --------
> > 
> >         ----------begin linux --------
> >         #include "ace/config-linux.h"
> >         ----------end linux --------
> > 
> > 
> >             THE 
> $ACE_ROOT/include/makeinclude/platform_macros.GNU FILE
> >         ----------begin linux --------
> >         include  $ACE_ROOT/include/makeinclude/platform_linux.GNU
> >         ----------end linux --------
> > 
> >        
> >             DOES THE PROBLEM AFFECT:
> >                 COMPILATION?
> >                     NO
> > 
> >                 LINKING?
> >                 NO
> > 
> >                 EXECUTION?
> >                 YES
> > 
> >             SYNOPSIS:
> >         the ACE/TAO Library has a bug in a mixed Linux and Windows
> > environment if the Windows machine
> >         has multiple network interfaces.
> > 
> >             DESCRIPTION:
> >         If i have a setup like:
> > 
> >         [windows if1 192.168.1.19/24]   <----------->   
> [linux machine
> > 192.168.1.101]
> >         [windows if2 192.168.84.1/24]
> >         [windows if3 192.168.17.1/24]
> > 
> > 
> >         no I try to connect from the linux machine to the 
> windows machine:
> > 
> >                 std::string s =
> > "corbaloc::192.168.1.19:60002/ConnectionController";
> > 
> >                 CORBA::Object_var  obj =
> > m_varORB->string_to_object(s.c_str());
> > 
> >                 ORICS::IConnectionController_var 
> iConnectionController =
> >        
> > ORICS::IConnectionController::_narrow(obj);
> > 
> >         and capture following on network:
> > 
> >             490 14:46:00.214537 192.168.1.101         192.168.1.19
> > TCP      1803 > 60002 [SYN]
> >             491 14:46:00.214628 192.168.1.19          192.168.1.101
> > TCP      60002 > 1803 [SYN, ACK]
> >             492 14:46:00.214758 192.168.1.101         192.168.1.19
> > TCP      1803 > 60002 [ACK]
> >             493 14:46:00.215003 192.168.1.19          192.168.1.101
> > TCP      [TCP Dup ACK 491#1]
> >             495 14:46:00.216847 192.168.1.101         192.168.1.19
> > GIOP     GIOP 1.0 Request 1 (two-way): _is_a
> >             496 14:46:00.218972 192.168.1.19          192.168.1.101
> > GIOP     GIOP 1.0 Reply 1: Location Forward
> >             497 14:46:00.219159 192.168.1.101         192.168.1.19
> > TCP      1803 > 60002 [ACK]
> >             500 14:46:00.239772 192.168.1.101         192.168.84.1
> > TCP      2001 > 60002 [SYN]
> > 
> >         the ace-tao corba library tries to connect the 
> windows machine on
> > the wrong ip address.
> > 
> > 
> >         the log file of the linux machine is:
> > 
> >         <<070718 log.txt>>
> > 
> >          
> >             SAMPLE FIX/WORKAROUND:
> >         My workaround is to start the windows program with
> > "-ORBListenEndpoints iiop://192.168.1.19:60002".
> > 
> > 
> > 
> > 
> >         Mit freundlichen Grüssen / best regards
> > 
> >         Benjamin Schüle
> >         Senior Systems Engineer
> >         ORICS - Operating Room Information and Communication System
> > 
> >         BERCHTOLD Consulting GmbH
> >         Rheinweg 5
> >         CH-8200 Schaffhausen
> > 
> >         Tel     ++41 (0) 52 633 09 12
> >         Fax    ++41 (0) 52 633 09 09
> >         benjamin.schuele at berchtold-consulting.ch
> >         http://www.berchtold.de
> > _______________________________________________
> > tao-bugs mailing list
> > tao-bugs at mail.cse.wustl.edu
> > http://mail.cse.wustl.edu/mailman/listinfo/tao-bugs
> 



More information about the Ace-users mailing list