[omniORB] Multiple IP Addresses Problem Naming Service

Steven King stevenk at eminence.com.au
Wed Sep 28 15:42:03 BST 2005


Hi all,

We are running a naming server (omni names 4.0.6) and a number of CORBA 
services (omni ORB 4.0.6) which publish their interfaces with the naming 
service on the same virtual server.  The virtual server's address is 
192.168.6.14 and the machine on which the virtual server is running is 
192.168.6.12.

The CORBA services fail to start if the naming service has started from 
any previous history (i.e omninames-<hostname>.log file exists).  The 
CORBA services fail when trying to resolve the NamingContext with (calls 
throw giopStream::CommFailure from 
giopStream.cc:1076(1,NO,TRANSIENT_ConnectFailed ) thrown from the 
omniOrb core. This appears to be the case because its switched the rope 
to another address 192.168.6.12 (which is invalid in the virtual server 
- hence the connection problem).  We can see why this may be a fallback 
address, but we don't want it to be one and cannot work out how to 
configure omniOrb/omni name to remove it.

We have set the endPoint = giop:tcp:192.168.6.14: in /etc/omniORB4.cfg.  
This makes the naming service bind to the correct address and port 
(192.168.6.14:2809).  as well as the clients

The logs for the failed connection is shown below:

Runing as uid: 106
omniORB: Distribution date: Thu Apr 14 17:19:57 BST 2005 dgrisby
omniORB: My addresses are:
omniORB: 127.0.0.1
omniORB: 192.168.6.12
omniORB: 192.168.6.16
omniORB: 192.168.6.15
omniORB: 192.168.6.14
omniORB: Maximum supported GIOP version is 1.2
omniORB: Native char code sets: ISO-8859-1 UTF-8.
omniORB: Transmission char code sets: ISO-8859-1(1.2) ISO-8859-1(1.1) 
ISO-8859-1(1.0) UTF-8(1.2) UTF-8(1.1).
omniORB: Native wide char code sets: UTF-16.
omniORB: Transmission wide char code sets: UTF-16(1.2).
omniORB: Information: the omniDynamic library is not linked.
omniORB: Current configuration is as follows:
omniORB:   DefaultInitRef (file) = corbaloc::
omniORB:   DefaultInitRef (args) =
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:192.168.6.14:
omniORB:   endPointPublishAllIFs = 0
omniORB:   giopMaxMsgSize = 2097152
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 = 1
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: Explicit bind to host 192.168.6.14.
omniORB: Bind to address 192.168.6.14.
omniORB: Starting serving incoming endpoints.
omniORB: Trying to resolve initial reference `NameService'
 with configuration file default `corbaloc::/NameService'
omniORB: Creating ref to remote: key<NameService>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id:
omniORB: Initial reference `NameService' resolved with configuration 
file ORBDefaultInitRef prefix.
omniORB: Client attempt to connect to giop:tcp:localhost:2809
omniORB: Client opened connection to giop:tcp:192.168.6.14:2809
omniORB: sendChunk: to giop:tcp:192.168.6.14:2809 100 bytes
omniORB:
4749 4f50 0100 0100 5800 0000 0000 0000 GIOP....X.......
0200 0000 0161 6e47 0b00 0000 4e61 6d65 .....anG....Name
5365 7276 6963 656f 0600 0000 5f69 735f Serviceo...._is_
6100 7365 0000 0000 2800 0000 4944 4c3a a.se....(...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: AsyncInvoker: thread id = 1 has started. Total threads = 2
omniORB: giopRendezvouser task execute for giop:tcp:192.168.6.14:33167
omniORB: inputMessage: from giop:tcp:192.168.6.14:2809 25 bytes
omniORB:
4749 4f50 0100 0101 0d00 0000 0000 0000 GIOP............
0200 0000 0000 0000 01                  .........
omniORB: Creating ref to remote: key<NameService>
 target id      : IDL:omg.org/CosNaming/NamingContext:1.0
 most derived id:
Cleaner thread started.
omniORB: sendChunk: to giop:tcp:192.168.6.14:2809 101 bytes
omniORB:
4749 4f50 0100 0100 5900 0000 0000 0000 GIOP....Y.......
0400 0000 0161 6e47 0b00 0000 4e61 6d65 .....anG....Name
5365 7276 6963 656f 1100 0000 6269 6e64 Serviceo....bind
5f6e 6577 5f63 6f6e 7465 7874 0044 4c3a _new_context.DL:
0000 0000 0100 0000 0900 0000 5365 7276 ............Serv
6963 6573 0069 6e67 0900 0000 4e69 6768 ices.ing....Nigh
744f 776c 00                            tOwl.
omniORB: inputMessage: from giop:tcp:192.168.6.14:2809 81 bytes
omniORB:
4749 4f50 0100 0101 4500 0000 0000 0000 GIOP....E.......
0400 0000 0100 0000 3500 0000 4944 4c3a ........5...IDL:
6f6d 672e 6f72 672f 436f 734e 616d 696e omg.org/CosNamin
672f 4e61 6d69 6e67 436f 6e74 6578 742f g/NamingContext/
416c 7265 6164 7942 6f75 6e64 3a31 2e30 AlreadyBound:1.0
00                                      .
omniORB: sendChunk: to giop:tcp:192.168.6.14:2809 89 bytes
omniORB:
4749 4f50 0100 0100 4d00 0000 0000 0000 GIOP....M.......
0600 0000 0161 6e47 0b00 0000 4e61 6d65 .....anG....Name
5365 7276 6963 656f 0800 0000 7265 736f Serviceo....reso
6c76 6500 0000 0000 0100 0000 0900 0000 lve.............
5365 7276 6963 6573 0000 0000 0900 0000 Services........
4e69 6768 744f 776c 00                  NightOwl.
omniORB:
4749 4f50 0100 0101 cc00 0000 0000 0000 GIOP............
0600 0000 0000 0000 2b00 0000 4944 4c3a ........+...IDL:
6f6d 672e 6f72 672f 436f 734e 616d 696e omg.org/CosNamin
672f 4e61 6d69 6e67 436f 6e74 6578 7445 g/NamingContextE
7874 3a31 2e30 0042 0100 0000 0000 0000 xt:1.0.B........
8400 0000 0101 0200 0d00 0000 3139 322e ............192.
3136 382e 362e 3134 0000 7281 0e00 0000 168.6.14..r.....
ff00 51f0 3943 0100 1677 0000 0000 0000 ..Q.9C...w......
0300 0000 0000 0000 0800 0000 0100 0000 ................
0054 5441 0100 0000 1c00 0000 0100 0000 .TTA............
0100 0100 0100 0000 0100 0105 0901 0100 ................
0100 0000 0901 0100 0300 0000 1800 0000 ................
0100 0000 0d00 0000 3139 322e 3136 382e ........192.168.
362e 3132 0000 f90a                     6.12....
omniORB: Creating ref to remote: root/<51f0394301001677/0>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id: IDL:omg.org/CosNaming/NamingContextExt:1.0
omniORB: Adding root<0> (activating) to object table.
omniORB: State root<0> (activating) -> active
omniORB: Creating ref to local: root<0>
 target id      : IDL:DomExtra/DomFactory:1.0
 most derived id: IDL:DomExtra/DomFactory:1.0
Binding Services.NightOwl/DomFactory.Object
omniORB: LocateRequest to remote: root/<51f0394301001677/0>
omniORB: Client attempt to connect to giop:tcp:192.168.6.14:33138
omniORB: Switch rope to use address giop:tcp:192.168.6.12:2809*
omniORB: throw giopStream::CommFailure from 
giopStream.cc:1076(1,NO,TRANSIENT_ConnectFailed)*
omniORB: LocateRequest to remote: root/<51f0394301001677/0>
omniORB: Client attempt to connect to giop:tcp:192.168.6.12:2809
omniORB: Switch rope to use address giop:tcp:192.168.6.14:33138*
omniORB: throw giopStream::CommFailure from 
giopStream.cc:1076(0,NO,TRANSIENT_ConnectFailed)*
omniORB: Preparing to shutdown ORB.
omniORB: Destroying POA(RootPOA).
omniORB: Deactivating all POA(RootPOA)'s objects.
omniORB: State root<0> (active) -> deactivating (OA destruction)
omniORB: Waiting for requests to complete on POA(RootPOA).
omniORB: Requests on POA(RootPOA) completed.
omniORB: State root<0> (deactivating OA) -> etherealising
omniORB: Etherealising POA(RootPOA)'s objects.
omniORB: Removing root<0> (etherealising) from object table
omniORB: Stopping serving incoming endpoints.
omniORB: giopServer waits for completion of rendezvousers and workers
omniORB: AsyncInvoker: thread id = 2 has started. Total threads = 2
omniORB: Scavenger task execute.
omniORB: giopServer back from waiting.
omniORB: Destruction of POA(RootPOA) complete.
omniORB: Shutting-down all incoming endpoints.
omniORB: TCP endpoint shut down.
omniORB: Disable ObjRef(IDL:DomExtra/DomFactory:1.0) root<0>
omniORB: Object table entry root<0> (dead) deleted.
omniORB: Disable ObjRef(IDL:omg.org/CosNaming/NamingContextExt:1.0) 
root/<51f0394301001677/0>
omniORB: omniRemoteIdentity deleted.
omniORB: Disable ObjRef() key<NameService>
omniORB: Disable ObjRef() key<NameService>
omniORB: omniRemoteIdentity deleted.
omniORB: 4 object references present at ORB shutdown.
omniORB: ORB shutdown is complete.
omniORB: ObjRef() -- deleted.
omniORB: Shutdown close connection to giop:tcp:localhost:2809
omniORB: Client connection refcount (forced) = 0
omniORB: Client close connection to giop:tcp:192.168.6.14:2809
omniORB: 0 remaining bidir ropes deleted.
omniORB: 1 remaining rope deleted.
omniORB: Clear endPoint options.
omniORB: AsyncInvoker: thread id = 1 has exited. Total threads = 2
omniORB: Scan for idle connections (1127870838,565834000)
omniORB: Scan for idle connections done (1127870838,565834000).
omniORB: AsyncInvoker: thread id = 2 has exited. Total threads = 1
omniORB: AsyncInvoker: deleted.
omniORB: ObjRef() -- deleted.
omniORB: ObjRef(IDL:omg.org/CosNaming/NamingContextExt:1.0) -- deleted.
omniORB: No more references to the ORB -- deleted.
Caught exception: Caught a CORBA::SystemExceptionwhile using the naming 
service.
omniORB: Final clean-up
omniORB: Deleted 4 nil object references and 0 other tracked objects.
omniORB: Final clean-up completed.

The trace for omniNames when this happens looks like:

omniORB: Server accepted connection from giop:tcp:127.0.0.1:33237
omniORB: AsyncInvoker: thread id = 3 has started. Total threads = 4
omniORB: Scavenger task execute.
omniORB: AsyncInvoker: thread id = 4 has started. Total threads = 4
omniORB: giopWorker task execute.
omniORB: Accepted connection from giop:tcp:127.0.0.1:33237 because of 
this rule: "* unix,ssl,tcp"
omniORB: inputMessage: from giop:tcp:127.0.0.1:33237 100 bytes
omniORB:
4749 4f50 0100 0100 5800 0000 0000 0000 GIOP....X.......
0200 0000 0161 6e47 0b00 0000 4e61 6d65 .....anG....Name
5365 7276 6963 656f 0600 0000 5f69 735f Serviceo...._is_
6100 7365 0000 0000 2800 0000 4944 4c3a a.se....(...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: sendChunk: to giop:tcp:127.0.0.1:33237 25 bytes
omniORB:
4749 4f50 0100 0101 0d00 0000 0000 0000 GIOP............
0200 0000 0000 0000 01                  .........
omniORB: inputMessage: from giop:tcp:127.0.0.1:33237 101 bytes
omniORB:
4749 4f50 0100 0100 5900 0000 0000 0000 GIOP....Y.......
0400 0000 0161 6e47 0b00 0000 4e61 6d65 .....anG....Name
5365 7276 6963 656f 1100 0000 6269 6e64 Serviceo....bind
5f6e 6577 5f63 6f6e 7465 7874 0044 4c3a _new_context.DL:
0000 0000 0100 0000 0900 0000 5365 7276 ............Serv
6963 6573 0069 6e67 0900 0000 4e69 6768 ices.ing....Nigh
744f 776c 00                            tOwl.
omniORB: Creating ref to in process: root/<eb1c3a4301001977/0>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id: IDL:omg.org/CosNaming/NamingContext:1.0
omniORB: Adding root/<eb1c3a4301001977/0> (activating) to object table.
omniORB: State root/<eb1c3a4301001977/0> (activating) -> active
omniORB: Creating ref to local: root/<eb1c3a4301001977/0>
 target id      : IDL:omg.org/CosNaming/NamingContextExt:1.0
 most derived id: IDL:omg.org/CosNaming/NamingContextExt:1.0
omniORB: ObjRef(IDL:omg.org/CosNaming/NamingContext:1.0) -- deleted.
omniORB: State root/<eb1c3a4301001977/0> (active) -> deactivating
omniORB: Object is still busy -- etherealise later.
omniORB: POA() etherealising object root/<eb1c3a4301001977/0> 
(deactivating).
 id: IDL:omg.org/CosNaming/NamingContextExt:1.0
omniORB: State root/<eb1c3a4301001977/0> (deactivating) -> etherealising
omniORB: Removing root/<eb1c3a4301001977/0> (etherealising) from object 
table
omniORB: RefCountServantBase has zero ref count -- deleted.
omniORB: Object table entry root/<eb1c3a4301001977/0> (dead) deleted.
omniORB: ObjRef(IDL:omg.org/CosNaming/NamingContextExt:1.0) -- deleted.
omniORB: sendChunk: to giop:tcp:127.0.0.1:33237 81 bytes
omniORB:
4749 4f50 0100 0101 4500 0000 0000 0000 GIOP....E.......
0400 0000 0100 0000 3500 0000 4944 4c3a ........5...IDL:
6f6d 672e 6f72 672f 436f 734e 616d 696e omg.org/CosNamin
672f 4e61 6d69 6e67 436f 6e74 6578 742f g/NamingContext/
416c 7265 6164 7942 6f75 6e64 3a31 2e30 AlreadyBound:1.0
00                                      .
omniORB: inputMessage: from giop:tcp:127.0.0.1:33237 89 bytes
omniORB:
4749 4f50 0100 0100 4d00 0000 0000 0000 GIOP....M.......
0600 0000 0161 6e47 0b00 0000 4e61 6d65 .....anG....Name
5365 7276 6963 656f 0800 0000 7265 736f Serviceo....reso
6c76 6500 0000 0000 0100 0000 0900 0000 lve.............
5365 7276 6963 6573 0000 0000 0900 0000 Services........
4e69 6768 744f 776c 00                  NightOwl.
omniORB: sendChunk: to giop:tcp:127.0.0.1:33237 216 bytes
omniORB:
4749 4f50 0100 0101 cc00 0000 0000 0000 GIOP............
0600 0000 0000 0000 2b00 0000 4944 4c3a ........+...IDL:
6f6d 672e 6f72 672f 436f 734e 616d 696e omg.org/CosNamin
672f 4e61 6d69 6e67 436f 6e74 6578 7445 g/NamingContextE
7874 3a31 2e30 0042 0100 0000 0000 0000 xt:1.0.B........
8400 0000 0101 0200 0d00 0000 3139 322e ............192.
3136 382e 362e 3134 0000 c681 0e00 0000 168.6.14........
ff00 d61c 3a43 0100 1959 0000 0000 0000 ....:C...Y......
0300 0000 0000 0000 0800 0000 0100 0000 ................
0054 5441 0100 0000 1c00 0000 0100 0000 .TTA............
0100 0100 0100 0000 0100 0105 0901 0100 ................
0100 0000 0901 0100 0300 0000 1800 0000 ................
0100 0000 0d00 0000 3139 322e 3136 382e ........192.168.
362e 3132 0000 f90a                     6.12....
omniORB: throw giopStream::CommFailure from 
giopStream.cc:834(0,NO,COMM_FAILURE_UnMarshalArguments)
omniORB: Server connection refcount = 1
omniORB: Server connection refcount = 0
omniORB: Server close connection from giop:tcp:127.0.0.1:33237
omniORB: Scan for idle connections (1127881975,882716000)
omniORB: Scan for idle connections done (1127881975,882716000).
omniORB: Scan for idle connections (1127881980,883895000)
omniORB: Scan for idle connections done (1127881980,883895000).
omniORB: AsyncInvoker: thread id = 4 has exited. Total threads = 4

I looked through the source, particularly at finding out what IP 
addresses get sent to the creating of a new rope but no luck.

Thanks,

Steven King

-- 

<http://www.eminence.com.au/> Eminence Technology Pty Ltd
PO Box 118, Moorooka QLD 4105
Web: www.eminence.com.au <http://www.eminence.com.au/>
Ph: +61-7-3277-4100
Fax: +61-7-3105-7484




More information about the omniORB-list mailing list