[omniORB] Problem connecting to sun's orbd

Markus Sabin msabin at digithurst.de
Fri Apr 21 08:49:48 BST 2006


Dear Experts,

I'm having 2 problems while trying to connect from an omniORB client to 
sun's JAVA orbd (DTK 1.5_06) The server runs on Windows or Linux, the 
client on Windows:

1) a LOCATION_FORWARD is raised. The documentation says that a new 
object reference is passed with the exception, but I cannot catch the 
exception because it is caught by the framework which retries to connect 
but seems to fail.

2) When I set the traceLevel to 40 (max), a debug assertion fails in 
_chvalidator_mt: _ASSERTE((unsigned)(c + 1) <= 256) because c has a 
value of 0xffffffaf. This occurs during the LOCATION_FORWARD is raised.

My code (a simple test derived from the echo example) looks like that:

   const char *options[][2] = {    { "traceLevel","40" }, { "InitRef", 
"NameService=corbaloc:iiop:172.16.1.150:1050/NameService" }, { 
"giopMaxMsgSize", "400000" }, { 0,0 },  };
   CORBA::ORB_var orb = CORBA::ORB_init(argc, argv, "omniORB4", options);

   CORBA::Object_var obj = orb->resolve_initial_references("RootPOA");
   PortableServer::POA_var poa = PortableServer::POA::_narrow(obj);

   CosNaming::NamingContext_var oNS;
   try
   {
       CORBA::Object_var NameService = 
orb->resolve_initial_references("NameService");
       oNS = CosNaming::NamingContext::_narrow(NameService);
   }
   catch(omniORB::LOCATION_FORWARD& oLocFWD )
   {
       CORBA::Object_var oNewNameService = oLocFWD.get_obj();
       oNS = CosNaming::NamingContext::_narrow(oNewNameService);
   }



The catch block is never hit.
This is the call stack, when the assertion fails:



    msvcr71d.dll!_chvalidator_mt(threadlocaleinfostruct * p=0x00449fe0, 
int c=0xffffffaf, int mask=0x00000107)  Line 68 + 0x2a    C
    msvcr71d.dll!isalnum(int c=0xffffffaf)  Line 165 + 0x35    C
    omniORB406_rtd.dll!pp_key(const unsigned char * key=0x00459c80, int 
keysize=0x0000003c)  Line 619 + 0xf    C++
    omniORB406_rtd.dll!pp_key(omniORB::logger & l={...}, const unsigned 
char * key=0x00459c80, int keysize=0x0000003c)  Line 637 + 0xd    C++
    omniORB406_rtd.dll!omniORB::logger::operator<<(const omniIdentity * 
id=0x00459878)  Line 293 + 0x1b    C++
    omniORB406_rtd.dll!omni::createObjRef(const char * 
targetRepoId=0x67aea814, omniIOR * ior=0x00459578, bool locked=false, 
omniIdentity * id=0x00459878)  Line 1028 + 0x34    C++
    omniORB406_rtd.dll!omniObjRef::_unMarshal(const char * 
repoId=0x67aea814, cdrStream & s={...})  Line 936 + 0x11    C++
 >    omniORB406_rtd.dll!CORBA::Object::_unmarshalObjRef(cdrStream & 
s={...})  Line 295 + 0x10    C++
    omniORB406_rtd.dll!omniRemoteIdentity::dispatch(omniCallDescriptor & 
call_desc={...})  Line 197 + 0x9    C++
    omniORB406_rtd.dll!omniObjRef::_invoke(omniCallDescriptor & 
call_desc={...}, bool do_assert=false)  Line 741 + 0x30    C++
    omniORB406_rtd.dll!omniObjRef::_remote_is_a(const char * 
a_repoId=0x67afa740)  Line 445    C++
    omniORB406_rtd.dll!omniObjRef::_real_is_a(const char * 
repoId=0x67afa740)  Line 215    C++
    omniORB406_rtd.dll!omniObjRef::_realNarrow(const char * 
repoId=0x67afa740)  Line 277 + 0xc    C++
    omniORB406_rtd.dll!CosNaming::NamingContext::_narrow(CORBA::Object * 
obj=0x00454cb8)  Line 391 + 0x15    C++
    CorbaTest.exe!main(int argc=0x00000001, char * * argv=0x0044b000)  
Line 63 + 0x1a    C++
    CorbaTest.exe!mainCRTStartup()  Line 398 + 0x11    C



And this is the program's output at traceLevel 40 (I ignore the 
assertion failiures):

omniORB: Distribution date: 2005-08-28
omniORB: My addresses are:
omniORB: 172.16.1.61
omniORB: 127.0.0.1
omniORB: Maximum supported GIOP version is 1.2
omniORB: Native char code sets: UTF-8 ISO-8859-1.
omniORB: Transmission char code sets: UTF-8(1.2) UTF-8(1.1) 
ISO-8859-1(1.2) ISO
8859-1(1.1) ISO-8859-1(1.0).
omniORB: Native wide char code sets: UTF-16.
omniORB: Transmission wide char code sets: UTF-16(1.2).
omniORB: Initialising omniDynamic library.
omniORB: Current configuration is as follows:
omniORB:   DefaultInitRef (file) =
omniORB:   DefaultInitRef (args) =
omniORB:   InitRef = 
NameService=corbaloc:iiop:172.16.1.150:1050/NameService
omniORB:   abortOnInternalError = 0
omniORB:   acceptBiDirectionalGIOP = 0
omniORB:   acceptMisalignedTcIndirections = 0
omniORB:   bootstrapAgentHostname =
omniORB:   bootstrapAgentPort = 900
omniORB:   clientCallTimeOutPeriod = 0
omniORB:   clientTransportRule = * unix,ssl,tcp
omniORB:   diiThrowsSysExceptions = 0
omniORB:   dumpConfiguration = 0
omniORB:   endPoint = giop:tcp::
omniORB:   endPointPublishAllIFs = 0
omniORB:   giopMaxMsgSize = 400000
omniORB:   giopTargetAddressMode = KeyAddr
omniORB:   id = omniORB4
omniORB:   inConScanPeriod = 180
omniORB:   lcdMode = 0
omniORB:   maxGIOPConnectionPerServer = 5
omniORB:   maxGIOPVersion = 1.2
omniORB:   maxInterleavedCallsPerConnection = 5
omniORB:   maxServerThreadPerConnection = 100
omniORB:   maxServerThreadPoolSize = 100
omniORB:   nativeCharCodeSet = ISO-8859-1
omniORB:   nativeWCharCodeSet = UTF-16
omniORB:   objectTableSize = 0
omniORB:   offerBiDirectionalGIOP = 0
omniORB:   omniORB_27_CompatibleAnyExtraction = 0
omniORB:   oneCallPerConnection = 1
omniORB:   outConScanPeriod = 120
omniORB:   poaHoldRequestTimeout = 0
omniORB:   poaUniquePersistentSystemIds = 1
omniORB:   principal = [Null]
omniORB:   scanGranularity = 5
omniORB:   serverCallTimeOutPeriod = 0
omniORB:   serverTransportRule = * unix,ssl,tcp
omniORB:   strictIIOP = 1
omniORB:   supportBootstrapAgent = 0
omniORB:   supportCurrent = 1
omniORB:   supportPerThreadTimeOut = 0
omniORB:   tcAliasExpand = 0
omniORB:   threadPerConnectionLowerLimit = 9000
omniORB:   threadPerConnectionPolicy = 1
omniORB:   threadPerConnectionUpperLimit = 10000
omniORB:   threadPoolWatchConnection = 1
omniORB:   traceExceptions = 1
omniORB:   traceInvocations = 0
omniORB:   traceLevel = 40
omniORB:   traceThreadId = 0
omniORB:   unixTransportDirectory = /tmp/omni-%u
omniORB:   unixTransportPermission =  777
omniORB:   useTypeCodeIndirections = 1
omniORB:   verifyObjectExistsAndType = 1
omniORB: Initialising incoming endpoints.
omniORB: Bind to address 0.0.0.0.
omniORB: Starting serving incoming endpoints.
omniORB: AsyncInvoker: thread id = 1 has started. Total threads = 1
omniORB: giopRendezvouser task execute for giop:tcp:172.16.1.61:1201
omniORB: Creating ref to remote: key<NameService>
target id      : IDL:omg.org/CORBA/Object:1.0
most derived id:
omniORB: Initial reference `NameService' resolved from configuration file.
omniORB: AsyncInvoker: thread id = 2 has started. Total threads = 2
omniORB: Client attempt to connect to giop:tcp:172.16.1.150:1050
omniORB: Scavenger task execute.
omniORB: Client opened connection to giop:tcp:172.16.1.150:1050
omniORB: sendChunk: to giop:tcp:172.16.1.150:1050 100 bytes
omniORB:
4749 4f50 0100 0100 5800 0000 0000 0000 GIOP....X.......
0200 0000 01cd cdcd 0b00 0000 4e61 6d65 ............Name
5365 7276 6963 65cd 0600 0000 5f69 735f Service....._is_
6100 cdcd 0000 0000 2800 0000 4944 4c3a a.......(...IDL:
6f6d 672e 6f72 672f 436f 734e 616d 696e omg.org/CosNamin
672f 4e61 6d69 6e67 436f 6e74 6578 743a g/NamingContext:
312e 3000                               1.0.
omniORB: inputMessage: from giop:tcp:172.16.1.150:1050 480 bytes
omniORB:
4749 4f50 0100 0001 0000 01d4 0000 0002 GIOP............
0000 0006 0000 00cc 0000 0000 0000 0028 ...............(
4944 4c3a 6f6d 672e 6f72 672f 5365 6e64 IDL:omg.org/Send
696e 6743 6f6e 7465 7874 2f43 6f64 6542 ingContext/CodeB
6173 653a 312e 3000 0000 0001 0000 0000 ase:1.0.........
0000 0090 0001 0200 0000 000e 3139 322e ............192.
3136 382e 3135 302e 3100 0419 0000 0019 168.150.1.......
afab cb00 0000 0002 b60a e064 0000 0008 ...........d....
0000 0002 0000 0000 1400 0000 0000 0003 ................
0000 0001 0000 0020 0000 0000 0001 0001 ....... ........
0000 0002 0501 0001 0001 0020 0001 0109 ........... ....
0000 0001 0001 0100 0000 0026 0000 0002 ...........&....
0002 0000 0000 0003 0000 0018 0000 0000 ................
0000 000e 3139 322e 3136 382e 3135 302e ....192.168.150.
3100 041a 4e45 4f00 0000 0002 0014 0000 1...NEO.........
0000 0002 0000 0003 0000 0028 4944 4c3a ...........(IDL:
6f6d 672e 6f72 672f 436f 734e 616d 696e omg.org/CosNamin
672f 4e61 6d69 6e67 436f 6e74 6578 743a g/NamingContext:
312e 3000 0000 0001 0000 0000 0000 00b0 1.0.............
0001 0200 0000 000e 3139 322e 3136 382e ........192.168.
3135 302e 3100 0419 0000 003c afab cb00 150.1......<....
0000 0022 0000 03e8 0000 0001 0000 0000 ..."............
0000 0002 0000 0008 526f 6f74 504f 4100 ........RootPOA.
0000 000c 4e61 6d65 5365 7276 6963 6500 ....NameService.
0000 0003 4e43 3014 0000 0003 0000 0001 ....NC0.........
0000 0020 0000 0000 0001 0001 0000 0002 ... ............
0501 0001 0001 0020 0001 0109 0000 0001 ....... ........
0001 0100 0000 0026 0000 0002 0002 0000 .......&........
0000 0003 0000 0018 0000 0000 0000 000e ................
3139 322e 3136 382e 3135 302e 3100 041a 192.168.150.1...
omniORB: Creating ref to remote: 
key<............................RootPOA.....Nam
eService.....NC0.>
target id      : IDL:omg.org/CORBA/Object:1.0
most derived id: IDL:omg.org/CosNaming/NamingContext:1.0
omniORB: GIOP::LOCATION_FORWARD -- retry request.
omniORB: omniRemoteIdentity deleted.
omniORB: ObjRef(IDL:omg.org/CosNaming/NamingContext:1.0) -- deleted.
omniORB:  send codeset service context: (ISO-8859-1,UTF-16)
omniORB: Client attempt to connect to giop:tcp:192.168.150.1:1049
omniORB: Scan for idle connections (1145516815,93000000)
omniORB: Scavenger reduce idle count for strand 0044C5E8 to 23
omniORB: Scan for idle connections done (1145516815,93000000).
omniORB: Client opened connection to giop:tcp:192.168.150.1:1049
omniORB: sendChunk: to giop:tcp:192.168.150.1:1049 172 bytes
omniORB:
4749 4f50 0102 0100 a000 0000 0200 0000 GIOP............
0300 0000 0000 cdcd 3c00 0000 afab cb00 ........<.......
0000 0022 0000 03e8 0000 0001 0000 0000 ..."............
0000 0002 0000 0008 526f 6f74 504f 4100 ........RootPOA.
0000 000c 4e61 6d65 5365 7276 6963 6500 ....NameService.
0000 0003 4e43 3014 0600 0000 5f69 735f ....NC0....._is_
6100 cdcd 0100 0000 0100 0000 0c00 0000 a...............
0100 0000 0100 0100 0901 0100 cdcd cdcd ................
2800 0000 4944 4c3a 6f6d 672e 6f72 672f (...IDL:omg.org/
436f 734e 616d 696e 672f 4e61 6d69 6e67 CosNaming/Naming
436f 6e74 6578 743a 312e 3000           Context:1.0.
omniORB: Switch rope to use address giop:tcp:192.168.150.1:1050
omniORB: throw giopStream::CommFailure from 
giopstream.cc:1109(1,NO,COMM_FAILURE
_MarshalArguments)
omniORB: Client connection refcount = 0
omniORB: Client close connection to giop:tcp:192.168.150.1:1049
omniORB:  send codeset service context: (ISO-8859-1,UTF-16)
omniORB: Client attempt to connect to giop:tcp:192.168.150.1:1050
omniORB: Scan for idle connections (1145516820,93000000)
omniORB: Scavenger reduce idle count for strand 0044C5E8 to 22
omniORB: Scan for idle connections done (1145516820,93000000).
omniORB: Client opened connection to giop:tcp:192.168.150.1:1050
omniORB: sendChunk: to giop:tcp:192.168.150.1:1050 172 bytes
omniORB:
4749 4f50 0102 0100 a000 0000 0200 0000 GIOP............
0300 0000 0000 cdcd 3c00 0000 afab cb00 ........<.......
0000 0022 0000 03e8 0000 0001 0000 0000 ..."............
0000 0002 0000 0008 526f 6f74 504f 4100 ........RootPOA.
0000 000c 4e61 6d65 5365 7276 6963 6500 ....NameService.
0000 0003 4e43 3014 0600 0000 5f69 735f ....NC0....._is_
6100 cdcd 0100 0000 0100 0000 0c00 0000 a...............
0100 0000 0100 0100 0901 0100 cdcd cdcd ................
2800 0000 4944 4c3a 6f6d 672e 6f72 672f (...IDL:omg.org/
436f 734e 616d 696e 672f 4e61 6d69 6e67 CosNaming/Naming
436f 6e74 6578 743a 312e 3000           Context:1.0.
omniORB: Switch rope to use address giop:tcp:192.168.150.1:1049
omniORB: throw giopStream::CommFailure from 
giopstream.cc:1109(0,NO,COMM_FAILURE
_MarshalArguments)
omniORB: Client connection refcount = 0
omniORB: Client close connection to giop:tcp:192.168.150.1:1050
omniORB: Reverting object reference to original profile
omniORB: omniRemoteIdentity deleted.
omniORB: Invocation on a location forwarded object has failed. 0 retries.
omniORB: sendChunk: to giop:tcp:172.16.1.150:1050 100 bytes
omniORB:
4749 4f50 0100 0100 5800 0000 0000 0000 GIOP....X.......
0400 0000 01cd cdcd 0b00 0000 4e61 6d65 ............Name
5365 7276 6963 65cd 0600 0000 5f69 735f Service....._is_
6100 cdcd 0000 0000 2800 0000 4944 4c3a a.......(...IDL:
6f6d 672e 6f72 672f 436f 734e 616d 696e omg.org/CosNamin
672f 4e61 6d69 6e67 436f 6e74 6578 743a g/NamingContext:
312e 3000                               1.0.
omniORB: inputMessage: from giop:tcp:172.16.1.150:1050 268 bytes
omniORB:
4749 4f50 0100 0001 0000 0100 0000 0001 GIOP............
4e45 4f00 0000 0002 0014 0000 0000 0004 NEO.............
0000 0003 0000 0028 4944 4c3a 6f6d 672e .......(IDL:omg.
6f72 672f 436f 734e 616d 696e 672f 4e61 org/CosNaming/Na
6d69 6e67 436f 6e74 6578 743a 312e 3000 mingContext:1.0.
0000 0001 0000 0000 0000 00b0 0001 0200 ................
0000 000e 3139 322e 3136 382e 3135 302e ....192.168.150.
3100 0419 0000 003c afab cb00 0000 0022 1......<......."
0000 03e8 0000 0001 0000 0000 0000 0002 ................
0000 0008 526f 6f74 504f 4100 0000 000c ....RootPOA.....
4e61 6d65 5365 7276 6963 6500 0000 0003 NameService.....
4e43 3014 0000 0003 0000 0001 0000 0020 NC0............
0000 0000 0001 0001 0000 0002 0501 0001 ................
0001 0020 0001 0109 0000 0001 0001 0100 ... ............
0000 0026 0000 0002 0002 0000 0000 0003 ...&............
0000 0018 0000 0000 0000 000e 3139 322e ............192.
3136 382e 3135 302e 3100 041a           168.150.1...
omniORB: Scan for idle connections (1145516825,93000000)
omniORB: Scan for idle connections done (1145516825,93000000).
omniORB: Scan for idle connections (1145516830,93000000)
omniORB: Scan for idle connections done (1145516830,93000000).


....and so on...

You can see that the naming service responds a reference with a 
different IP address in this case (192.168.150.1 instead of 
172.16.1.150), but the behavior does not change if I turn the second IP 
address off on the server. If I do so, the response from orbd contains 
the same IP Address that was used by the client to establish the 
association (172.16.1.150), but the LOCATION_FORWARD and the assertion 
failure remain.
Connecting to the omniNames-service works fine.

Any help will be greatly appreciated!

Regards

Markus


-- 
=================================================================
Digithurst Bildverarbeitungssysteme GmbH & Co KG
Wasserrunzel 5
91186 Büchenbach
Fon: +49 (0)9171 / 9671 - 21
Fax: +49 (0)9171 / 9671 - 19
Mail: msabin at digithurst.de
Web: www.digithurst.de
=================================================================

*****************************************************************
Diese E-Mail und alle damit uebertragenen Dateien sind
vertraulich und nur fuer den Empfaenger bestimmt. Wenn
Sie diese E-Mail erhalten haben, sie aber nicht an Sie
gerichtet ist, informieren Sie bitte den Absender. Vielen Dank.
-----------------------------------------------------------------
This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom
they are addressed. If you have received this email in error
please notify the sender. Thank you.
*****************************************************************



-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20060421/e536b9b8/attachment-0001.htm


More information about the omniORB-list mailing list