[omniORB] _get_interface() crashes server

Claudio Scafuri claudio.scafuri at elettra.trieste.it
Mon May 26 15:00:32 BST 2003


Hi everybody.

I am trying to use some of the dynamic features of corba, nammely I
trying to discover
the interface description and signatures of an object at runtime. In
orderto do this I
call _get_interface(), but the server program crashes. 
Bot the name server and the interface repository are running and are
konwn to omniORB by means
of the default configuration file. The interface repository is that of
mico.

Client and server are compiled whit omniORB-4.0.1 on hpux-11.00. Clien
and server are compiled
with ENABLE_CLIENT_IR_SUPPORT tunrd on.
Some preliminary tests show that the _get_interface() problem is present
under linux also.

In the attechment document you will find the debugger stack trace of the
server and its output
with traceLevel=40.

Apart from the missing "introspection" capabilty, it is very dangeorous
that a legal call can crash your server!

Greetings.

Claudio Scafuri
-------------- next part --------------
2 notes: 
140.105.5.214:2809 is the address of omniNames

140.105.5.214:12220 is the address of the mico interface repository

Stack trace of program crashing when _get_interface() is called from client.

#0  0x7f39f8dc in $$dyncall_external+0 () from /usr/local/omniorb/lib/libomniORB4.sl.0
#1  0x7f465310 in omni::omni_interface_CallDesc::lcfn+0x48 () from /usr/local/omniorb/lib/libomniORB4.sl.0
#2  0x7f4112c8 in omniCallHandle::upcall+0x1c0 () from /usr/local/omniorb/lib/libomniORB4.sl.0
#3  0x7f3ed924 in omniServant::_dispatch+0x3a4 () from /usr/local/omniorb/lib/libomniORB4.sl.0
#4  0x7f3fd324 in omni::omniOrbPOA::dispatch+0x3b4 () from /usr/local/omniorb/lib/libomniORB4.sl.0
#5  0x7f3d8bb8 in omniLocalIdentity::dispatch+0x98 () from /usr/local/omniorb/lib/libomniORB4.sl.0
#6  0x7f436478 in omni::GIOP_S::handleRequest+0x1a8 () from /usr/local/omniorb/lib/libomniORB4.sl.0
#7  0x7f435e54 in omni::GIOP_S::dispatcher+0x1d4 () from /usr/local/omniorb/lib/libomniORB4.sl.0
#8  0x7f4336c0 in omni::giopWorker::real_execute+0x718 () from /usr/local/omniorb/lib/libomniORB4.sl.0
#9  0x7f432d1c in omni::giopWorkerInfo::run+0x44 () from /usr/local/omniorb/lib/libomniORB4.sl.0
#10 0x7f432e58 in omni::giopWorker::execute+0x38 () from /usr/local/omniorb/lib/libomniORB4.sl.0
#11 0x7f3cc5e4 in omniAsyncWorkerInfo::run+0x304 () from /usr/local/omniorb/lib/libomniORB4.sl.0
#12 0x7f3cd260 in omniAsyncWorker::run+0x38 () from /usr/local/omniorb/lib/libomniORB4.sl.0
#13 0x7f4bf764 in omni_thread_wrapper+0x7c () from /usr/local/omniorb/lib/libomnithread.sl.3
#14 0x7f4cef60 in __pthread_create_system+0x420 () from /usr/lib/libpthread.1

output of same progrma with traceLevel 40:

omniORB: Read from configuration file "/etc/omniORB.cfg".
omniORB: Distribution date: Fri Mar 14 11:27:17 GMT 2003 dgrisby
omniORB: My addresses are: 
omniORB: 140.105.5.214
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) 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: Information: the omniDynamic library is not linked.
omniORB: Current configuration is as follows:
omniORB:   400132f0
omniORB:   40013318
omniORB:   4003bf78
omniORB:   4000c700
omniORB:   40013340
omniORB:   40013368
omniORB:   400151a0
omniORB:   40013390
omniORB:   400151d0
omniORB:   40019d38
omniORB:   40019d70
omniORB:   400133b8
omniORB:   400133e0
omniORB:   40013408
omniORB:   40013430
omniORB:   40015200
omniORB:   40015230
omniORB:   40012690
omniORB:   40015260
omniORB:   40014e90
omniORB:   40019da8
omniORB:   40013458
omniORB:   4002c280
omniORB:   4002c300
omniORB:   40019de0
omniORB:   40015290
omniORB:   40013480
omniORB:   400152c0
omniORB:   400134a8
omniORB:   40019e18
omniORB:   400134d0
omniORB:   400152f0
omniORB:   40019e50
omniORB:   40015320
omniORB:   400126b0
omniORB:   40015350
omniORB:   40019e88
omniORB:   40019ec0
omniORB:   400126d0
omniORB:   400134f8
omniORB:   400126f0
omniORB:   40013520
omniORB:   40012710
omniORB:   4002c340
omniORB:   40015380
omniORB:   4002c380
omniORB:   400153b0
omniORB:   40013548
omniORB:   40013570
omniORB:   40012730
omniORB:   40019ef8
omniORB:   40019f30
omniORB:   40013598
omniORB:   400153e0
omniORB: Initialising incoming endpoints.
omniORB: Bind to address 40012730.
omniORB: Starting serving incoming endpoints.
omniORB: AsyncInvoker: thread id = 1 has started. Total threads = 1
omniORB: giopRendezvouser task execute for giop:tcp:140.105.5.214:49383
omniORB: Adding root/Elettra<ElettraBench> (activating) to object table.
omniORB: State root/Elettra<ElettraBench> (activating) -> active
*** Server started at Mon May 26 13:04:57 2003
omniORB: Creating ref to local: root/Elettra<ElettraBench>
 target id      : IDL:Elettra/Bench:1.0
 most derived id: IDL:Elettra/Bench:1.0
omniORB: Creating ref to remote: key<0x4e616d6553657276696365>
 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: Scavenger task execute.
omniORB: Client opened connection to giop:tcp:140.105.5.214:2809
omniORB: sendChunk: to giop:tcp:140.105.5.214:2809 100 bytes
omniORB: 
4749 4f50 0100 0000 0000 0058 0000 0000 GIOP.......X....
0000 0002 0100 0000 0000 000b 4e61 6d65 ............Name
5365 7276 6963 6500 0000 0006 5f69 735f Service....._is_
6100 0000 0000 0000 0000 0028 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:140.105.5.214:2809 25 bytes
omniORB: 
4749 4f50 0100 0001 0000 000d 0000 0000 GIOP............
0000 0002 0000 0000 01                  .........
omniORB: Creating ref to remote: key<0x4e616d6553657276696365>
 target id      : IDL:omg.org/CosNaming/NamingContext:1.0
 most derived id: 
omniORB: sendChunk: to giop:tcp:140.105.5.214:2809 89 bytes
omniORB: 
4749 4f50 0100 0000 0000 004d 0000 0000 GIOP.......M....
0000 0004 0100 0000 0000 000b 4e61 6d65 ............Name
5365 7276 6963 6500 0000 0011 6269 6e64 Service.....bind
5f6e 6577 5f63 6f6e 7465 7874 0044 4c3a _new_context.DL:
0000 0000 0000 0001 0000 0006 6265 6e63 ............benc
6800 4e61 0000 0001 00                  h.Na.....
omniORB: inputMessage: from giop:tcp:140.105.5.214:2809 81 bytes
omniORB: 
4749 4f50 0100 0001 0000 0045 0000 0000 GIOP.......E....
0000 0004 0000 0001 0000 0035 4944 4c3a ...........5IDL:
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:140.105.5.214:2809 77 bytes
omniORB: 
4749 4f50 0100 0000 0000 0041 0000 0000 GIOP.......A....
0000 0006 0100 0000 0000 000b 4e61 6d65 ............Name
5365 7276 6963 6500 0000 0008 7265 736f Service.....reso
6c76 6500 0000 0000 0000 0001 0000 0006 lve.............
6265 6e63 6800 0001 0000 0001 00        bench........
omniORB: inputMessage: from giop:tcp:140.105.5.214:2809 184 bytes
omniORB: 
4749 4f50 0100 0001 0000 00ac 0000 0000 GIOP............
0000 0006 0000 0000 0000 002b 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 0000 0001 0000 0000 xt:1.0.B........
0000 0064 0001 0200 0000 000e 3134 302e ...d........140.
3130 352e 352e 3231 3400 0af9 0000 000e 105.5.214.......
ff00 3eca 0257 2f25 0001 0000 0000 0000 ..>..W/%........
0000 0002 0000 0000 0000 0008 0000 0000 ................
4154 5400 0000 0001 0000 001c 0000 0000 ATT.............
0001 0001 0000 0001 0501 0001 0001 0109 ................
0000 0001 0001 0109                     ........
omniORB: Creating ref to remote: root/<...W........>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id: IDL:omg.org/CosNaming/NamingContextExt:1.0
omniORB: LocateRequest to remote: root/<...W........>
omniORB: Client opened connection to giop:tcp:140.105.5.214:2809
omniORB: sendChunk: to giop:tcp:140.105.5.214:2809 38 bytes
omniORB: 
4749 4f50 0102 0003 0000 001a 0000 0002 GIOP............
0000 3030 0000 000e ff00 3eca 0257 2f25 ..00......>..W/%
0001 0000 0000                          ......
omniORB: inputMessage: from giop:tcp:140.105.5.214:2809 20 bytes
omniORB: 
4749 4f50 0102 0004 0000 0008 0000 0002 GIOP............
0000 0001                               ....
omniORB:  send codeset service context: (ISO-8859-1,UTF-16)
omniORB: sendChunk: to giop:tcp:140.105.5.214:2809 260 bytes
omniORB: 
4749 4f50 0102 0000 0000 00f8 0000 0004 GIOP............
0300 0000 0000 000e 0000 000e ff00 3eca ..............>.
0257 2f25 0001 0000 0000 0a30 0000 0005 .W/%.......0....
6269 6e64 0030 3030 0000 0001 0000 0001 bind.000........
0000 000c 0000 0000 0001 0001 0001 0109 ................
0000 0001 0000 000d 456c 6574 7472 6162 ........Elettrab
656e 6368 0066 3664 0000 0001 0020 3666 ench.f6d..... 6f
0000 0016 4944 4c3a 456c 6574 7472 612f ....IDL:Elettra/
4265 6e63 683a 312e 3000 6520 0000 0001 Bench:1.0.e ....
0000 0000 0000 006c 0001 0200 0000 000e .......l........
3134 302e 3130 352e 352e 3231 3400 c0e7 140.105.5.214...
0000 0015 ff45 6c65 7474 7261 0045 6c65 .....Elettra.Ele
7474 7261 4265 6e63 6800 0000 0000 0002 ttraBench.......
0000 0000 0000 0008 0000 0000 4154 5400 ............ATT.
0000 0001 0000 001c 0000 0000 0001 0001 ................
0000 0001 0501 0001 0001 0109 0000 0001 ................
0001 0109                               ....
omniORB: inputMessage: from giop:tcp:140.105.5.214:2809 81 bytes
omniORB: 
4749 4f50 0102 0001 0000 0045 0000 0004 GIOP.......E....
0000 0001 0000 0000 0000 0035 4944 4c3a ...........5IDL:
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:140.105.5.214:2809 244 bytes
omniORB: 
4749 4f50 0102 0000 0000 00e8 0000 0006 GIOP............
0300 0000 0000 000e 0000 000e ff00 3eca ..............>.
0257 2f25 0001 0000 0000 0a30 0000 0007 .W/%.......0....
7265 6269 6e64 0030 0000 0000 0000 0001 rebind.0........
0000 0001 0000 000d 456c 6574 7472 6162 ........Elettrab
656e 6368 0000 000d 0000 0001 0072 6162 ench.........rab
0000 0016 4944 4c3a 456c 6574 7472 612f ....IDL:Elettra/
4265 6e63 683a 312e 3000 6574 0000 0001 Bench:1.0.et....
0000 0000 0000 006c 0001 0200 0000 000e .......l........
3134 302e 3130 352e 352e 3231 3400 c0e7 140.105.5.214...
0000 0015 ff45 6c65 7474 7261 0045 6c65 .....Elettra.Ele
7474 7261 4265 6e63 6800 0000 0000 0002 ttraBench.......
0000 0000 0000 0008 0000 0000 4154 5400 ............ATT.
0000 0001 0000 001c 0000 0000 0001 0001 ................
0000 0001 0501 0001 0001 0109 0000 0001 ................
0001 0109                               ....
omniORB: inputMessage: from giop:tcp:140.105.5.214:2809 24 bytes
omniORB: 
4749 4f50 0102 0001 0000 000c 0000 0006 GIOP............
0000 0000 0000 0000                     ........
omniORB: omniRemoteIdentity deleted.
omniORB: ObjRef(IDL:omg.org/CosNaming/NamingContextExt:1.0) -- deleted.
omniORB: ObjRef() -- deleted.
omniORB: Scan for idle connections (1053947102,607682000)
omniORB: Scavenger reduce idle count for strand 40035f80 to 23
omniORB: Scavenger reduce idle count for strand 40035e88 to 23
omniORB: Scan for idle connections done (1053947102,607682000).
omniORB: Server accepted connection from giop:tcp:140.105.5.214:49387
omniORB: AsyncInvoker: thread id = 3 has started. Total threads = 3
omniORB: giopWorker task execute.
omniORB: Accepted connection from giop:tcp:140.105.5.214:49387 because of this rule: "* unix,ssl,tcp"
omniORB: inputMessage: from giop:tcp:140.105.5.214:49387 96 bytes
omniORB: 
4749 4f50 0102 0000 0000 0054 0000 0002 GIOP.......T....
0300 0000 0000 0000 0000 0015 ff45 6c65 .............Ele
7474 7261 0045 6c65 7474 7261 4265 6e63 ttra.ElettraBenc
6800 0000 0000 000e 5f6e 6f6e 5f65 7869 h......._non_exi
7374 656e 7400 0000 0000 0001 0000 0001 stent...........
0000 000c 0000 0000 0001 0001 0001 0109 ................
omniORB:  recieve codeset service context and set TCS to (ISO-8859-1,UTF-16)
omniORB: sendChunk: to giop:tcp:140.105.5.214:49387 25 bytes
omniORB: 
4749 4f50 0102 0001 0000 000d 0000 0002 GIOP............
0000 0000 0000 0000 00                  .........
omniORB: inputMessage: from giop:tcp:140.105.5.214:49387 12 bytes
omniORB: 
4749 4f50 0102 0005 0000 0000           GIOP........
omniORB: throw giopStream::CommFailure from giopImpl12.cc:1242(0,NO,COMM_FAILURE_UnMarshalArguments)
omniORB: Server connection refcount = 1
omniORB: Server connection refcount = 0
omniORB: Server close connection from giop:tcp:140.105.5.214:49387
omniORB: Server accepted connection from giop:tcp:140.105.5.214:49389
omniORB: giopWorker task execute.
omniORB: Accepted connection from giop:tcp:140.105.5.214:49389 because of this rule: "* unix,ssl,tcp"
omniORB: inputMessage: from giop:tcp:140.105.5.214:49389 96 bytes
omniORB: 
4749 4f50 0102 0000 0000 0054 0000 0002 GIOP.......T....
0300 0000 0000 0000 0000 0015 ff45 6c65 .............Ele
7474 7261 0045 6c65 7474 7261 4265 6e63 ttra.ElettraBenc
6800 0000 0000 000e 5f6e 6f6e 5f65 7869 h......._non_exi
7374 656e 7400 0000 0000 0001 0000 0001 stent...........
0000 000c 0000 0000 0001 0001 0001 0109 ................
omniORB:  recieve codeset service context and set TCS to (ISO-8859-1,UTF-16)
omniORB: sendChunk: to giop:tcp:140.105.5.214:49389 25 bytes
omniORB: 
4749 4f50 0102 0001 0000 000d 0000 0002 GIOP............
0000 0000 0000 0000 00                  .........
omniORB: inputMessage: from giop:tcp:140.105.5.214:49389 72 bytes
omniORB: 
4749 4f50 0102 0000 0000 003c 0000 0004 GIOP.......<....
0300 0000 0000 0000 0000 0015 ff45 6c65 .............Ele
7474 7261 0045 6c65 7474 7261 4265 6e63 ttra.ElettraBenc
6800 0000 0000 000b 5f69 6e74 6572 6661 h......._interfa
6365 006e 0000 0000                     ce.n....
omniORB: Creating ref to remote: key<0x496e746572666163655265706f7369746f7279>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id: 
omniORB: Initial reference `InterfaceRepository' resolved from configuration file.
omniORB: LocateRequest to remote: key<0x496e746572666163655265706f7369746f7279>
omniORB: Client opened connection to giop:tcp:140.105.5.214:12220
omniORB: sendChunk: to giop:tcp:140.105.5.214:12220 39 bytes
omniORB: 
4749 4f50 0100 0003 0000 001b 0000 0002 GIOP............
0000 0013 496e 7465 7266 6163 6552 6570 ....InterfaceRep
6f73 6974 6f72 79                       ository
omniORB: inputMessage: from giop:tcp:140.105.5.214:12220 20 bytes
omniORB: 
4749 4f50 0100 0004 0000 0008 0000 0002 GIOP............
0000 0001                               ....
omniORB: sendChunk: to giop:tcp:140.105.5.214:12220 94 bytes
omniORB: 
4749 4f50 0100 0000 0000 0052 0000 0000 GIOP.......R....
0000 0004 016e 7465 0000 0013 496e 7465 .....nte....Inte
7266 6163 6552 6570 6f73 6974 6f72 7900 rfaceRepository.
0000 000a 6c6f 6f6b 7570 5f69 6400 0000 ....lookup_id...
0000 0000 0000 0016 4944 4c3a 456c 6574 ........IDL:Elet
7472 612f 4265 6e63 683a 312e 3000      tra/Bench:1.0.
omniORB: inputMessage: from giop:tcp:140.105.5.214:12220 188 bytes
omniORB: 
4749 4f50 0100 0001 0000 00b0 0000 0000 GIOP............
0000 0004 0000 0000 0000 0026 4944 4c3a ...........&IDL:
6f6d 672e 6f72 672f 434f 5242 412f 4578 omg.org/CORBA/Ex
7449 6e74 6572 6661 6365 4465 663a 312e tInterfaceDef:1.
3000 0000 0000 0002 0000 0000 0000 003e 0..............>
0001 0000 0000 001a 6c6f 7468 6172 2e65 ........lothar.e
6c65 7474 7261 2e74 7269 6573 7465 2e69 lettra.trieste.i
7400 2fbc 0000 0016 2f31 3438 382f 3130 t./...../1488/10
3533 3934 3632 3537 2f30 2f5f 3139 0000 53946257/0/_19..
0000 0001 0000 0024 0000 0000 0000 0001 .......$........
0000 0001 0000 0014 0000 0000 0001 0001 ................
0000 0000 0001 0109 0000 0000           ............
omniORB: Creating ref to remote: key<0x2f313438382f313035333934363235372f302f5f3139>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id: IDL:omg.org/CORBA/ExtInterfaceDef:1.0


More information about the omniORB-list mailing list