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

Douglas C. Schmidt schmidt at dre.vanderbilt.edu
Wed Jun 20 13:22:26 CDT 2007


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