[omniORB] omni::giopRope::match() crash

Michael Teske subscribe at teskor.de
Wed Apr 8 07:59:47 BST 2015


Hi,

sorry for all the spam, but I found something more.

Am 08.04.15 um 08:13 I wrote:	

>> At the moment it seems reproducible, maybe I can test some more?
>> If I add
>> -ORBtraceLevel 25 -ORBtraceThreadId 1 -ORBtraceTime 1
>> to the start parameters, it doesn't crash. Missing mutex somewhere?

I got it to crash with these parameters. These are the last relevant lines of stderr:


omniORB: (88) 2015-04-08 08:19:43.588799: sendChunk: to giop:tcp:[::ffff:192.168.68.54]:57103 106 bytes
omniORB: (1) 2015-04-08 08:19:43.824401: SocketCollection idle. Sleeping.
omniORB: (12) 2015-04-08 08:19:44.386665: Creating ref to remote: key<ExchangeAgent>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id:
omniORB: (12) 2015-04-08 08:19:44.386716: Resolve name 'tqa1'...
omniORB: (12) 2015-04-08 08:19:44.386831: Name 'tqa1' resolved to 192.168.68.54
omniORB: (12) 2015-04-08 08:19:44.386869: Client attempt to connect to giop:tcp:192.168.68.54:15377
omniORB: (12) 2015-04-08 08:19:44.386950: Failed to connect (no peer name): 192.168.68.54:15377
omniORB: (12) 2015-04-08 08:19:44.386979: Switch rope to use address giop:tcp:192.168.68.54:15377
omniORB: (12) 2015-04-08 08:19:44.386992: Unable to open new connection: giop:tcp:192.168.68.54:15377
omniORB: (12) 2015-04-08 08:19:44.387003: throw giopStream::CommFailure from giopStream.cc:1235(0,NO,TRANSIENT_ConnectFailed)
omniORB: (12) 2015-04-08 08:19:44.387077: throw TRANSIENT from omniObjRef.cc:723 (NO,TRANSIENT_ConnectFailed)
omniORB: (12) 2015-04-08 08:19:44.387141: omniRemoteIdentity deleted.
omniORB: (12) 2015-04-08 08:19:44.387156: ObjRef() -- deleted.
omniORB: (27) 2015-04-08 08:19:44.391452: Creating ref to remote: key<ExchangeAgent>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id:
omniORB: (27) 2015-04-08 08:19:44.391487: Resolve name 'localhost'...
omniORB: (27) 2015-04-08 08:19:44.391561: Name 'localhost' resolved to 127.0.0.1
omniORB: (27) 2015-04-08 08:19:44.391594: Client attempt to connect to giop:tcp:127.0.0.1:5571
omniORB: (27) 2015-04-08 08:19:44.391638: Failed to connect (no peer name): 127.0.0.1:5571
omniORB: (27) 2015-04-08 08:19:44.391680: Switch rope to use address giop:tcp:127.0.0.1:5571
omniORB: (27) 2015-04-08 08:19:44.391692: Unable to open new connection: giop:tcp:127.0.0.1:5571
omniORB: (27) 2015-04-08 08:19:44.391704: throw giopStream::CommFailure from giopStream.cc:1235(0,NO,TRANSIENT_ConnectFailed)
omniORB: (27) 2015-04-08 08:19:44.391764: throw TRANSIENT from omniObjRef.cc:723 (NO,TRANSIENT_ConnectFailed)
omniORB: (27) 2015-04-08 08:19:44.391825: omniRemoteIdentity deleted.
omniORB: (27) 2015-04-08 08:19:44.391840: ObjRef() -- deleted.
omniORB: (7) 2015-04-08 08:19:44.400603: Creating ref to remote: key<ExchangeAgent>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id:
omniORB: (7) 2015-04-08 08:19:44.400640: Resolve name 'tqa1'...
omniORB: (7) 2015-04-08 08:19:44.400746: Name 'tqa1' resolved to 192.168.68.54
omniORB: (7) 2015-04-08 08:19:44.400779: Client attempt to connect to giop:tcp:192.168.68.54:15588
omniORB: (7) 2015-04-08 08:19:44.400840: Failed to connect (no peer name): 192.168.68.54:15588
omniORB: (7) 2015-04-08 08:19:44.400864: Switch rope to use address giop:tcp:192.168.68.54:15588
omniORB: (7) 2015-04-08 08:19:44.400878: Unable to open new connection: giop:tcp:192.168.68.54:15588
omniORB: (7) 2015-04-08 08:19:44.400889: throw giopStream::CommFailure from giopStream.cc:1235(0,NO,TRANSIENT_ConnectFailed)
omniORB: (7) 2015-04-08 08:19:44.400952: throw TRANSIENT from omniObjRef.cc:723 (NO,TRANSIENT_ConnectFailed)
omniORB: (7) 2015-04-08 08:19:44.401015: omniRemoteIdentity deleted.
omniORB: (7) 2015-04-08 08:19:44.401030: ObjRef() -- deleted.
omniORB: (9) 2015-04-08 08:19:44.401122: Creating ref to remote: key<ExchangeAgent>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id:
omniORB: (9) 2015-04-08 08:19:44.401142: Resolve name 'tqa1'...
omniORB: (9) 2015-04-08 08:19:44.401205: Name 'tqa1' resolved to 192.168.68.54
omniORB: (9) 2015-04-08 08:19:44.401232: Client attempt to connect to giop:tcp:192.168.68.54:8600
omniORB: (9) 2015-04-08 08:19:44.401273: Failed to connect (no peer name): 192.168.68.54:8600
omniORB: (9) 2015-04-08 08:19:44.401293: Switch rope to use address giop:tcp:192.168.68.54:8600
omniORB: (9) 2015-04-08 08:19:44.401306: Unable to open new connection: giop:tcp:192.168.68.54:8600
omniORB: (9) 2015-04-08 08:19:44.401317: throw giopStream::CommFailure from giopStream.cc:1235(0,NO,TRANSIENT_ConnectFailed)
omniORB: (9) 2015-04-08 08:19:44.401367: throw TRANSIENT from omniObjRef.cc:723 (NO,TRANSIENT_ConnectFailed)
omniORB: (9) 2015-04-08 08:19:44.401424: omniRemoteIdentity deleted.
omniORB: (9) 2015-04-08 08:19:44.401438: ObjRef() -- deleted.
omniORB: (11) 2015-04-08 08:19:44.402396: Creating ref to remote: key<ExchangeAgent>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id:
omniORB: (11) 2015-04-08 08:19:44.402422: Resolve name 'tqa1'...
omniORB: (11) 2015-04-08 08:19:44.402492: Name 'tqa1' resolved to 192.168.68.54
omniORB: (11) 2015-04-08 08:19:44.402518: Client attempt to connect to giop:tcp:192.168.68.54:15688
omniORB: (11) 2015-04-08 08:19:44.402559: Failed to connect (no peer name): 192.168.68.54:15688
omniORB: (11) 2015-04-08 08:19:44.402580: Switch rope to use address giop:tcp:192.168.68.54:15688
omniORB: (11) 2015-04-08 08:19:44.402592: Unable to open new connection: giop:tcp:192.168.68.54:15688
omniORB: (11) 2015-04-08 08:19:44.402604: throw giopStream::CommFailure from giopStream.cc:1235(0,NO,TRANSIENT_ConnectFailed)
omniORB: (11) 2015-04-08 08:19:44.402656: throw TRANSIENT from omniObjRef.cc:723 (NO,TRANSIENT_ConnectFailed)
omniORB: (11) 2015-04-08 08:19:44.402713: omniRemoteIdentity deleted.
omniORB: (11) 2015-04-08 08:19:44.402727: ObjRef() -- deleted.
omniORB: (5) 2015-04-08 08:19:44.405588: Creating ref to remote: key<ExchangeAgent>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id:
omniORB: (5) 2015-04-08 08:19:44.405615: Resolve name 'tqa1'...
omniORB: (5) 2015-04-08 08:19:44.405684: Name 'tqa1' resolved to 192.168.68.54
omniORB: (5) 2015-04-08 08:19:44.405711: Client attempt to connect to giop:tcp:192.168.68.54:15577
omniORB: (5) 2015-04-08 08:19:44.405781: Failed to connect (no peer name): 192.168.68.54:15577
omniORB: (5) 2015-04-08 08:19:44.405802: Switch rope to use address giop:tcp:192.168.68.54:15577
omniORB: (5) 2015-04-08 08:19:44.405815: Unable to open new connection: giop:tcp:192.168.68.54:15577
omniORB: (5) 2015-04-08 08:19:44.405826: throw giopStream::CommFailure from giopStream.cc:1235(0,NO,TRANSIENT_ConnectFailed)
omniORB: (5) 2015-04-08 08:19:44.405877: throw TRANSIENT from omniObjRef.cc:723 (NO,TRANSIENT_ConnectFailed)
omniORB: (5) 2015-04-08 08:19:44.405934: omniRemoteIdentity deleted.
omniORB: (5) 2015-04-08 08:19:44.405948: ObjRef() -- deleted.
omniORB: (20) 2015-04-08 08:19:44.517509: Creating ref to remote: key<ExchangeAgent>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id:
omniORB: (20) 2015-04-08 08:19:44.517551: Resolve name 'sbz1'...
omniORB: (22) 2015-04-08 08:19:44.518363: Creating ref to remote: key<ExchangeAgent>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id:
omniORB: (22) 2015-04-08 08:19:44.518391: Resolve name 'sbz1'...
omniORB: (20) 2015-04-08 08:19:44.518551: Name 'sbz1' resolved to 192.168.68.194
omniORB: (19) 2015-04-08 08:19:44.518559: Creating ref to remote: key<ExchangeAgent>
 target id      : IDL:omg.org/CORBA/Object:1.0
 most derived id:

(gdb) where
#0  0xf7e82d47 in omni::giopRope::match (this=0xebb1fca0, addrlist=..., info=0x9d09778) at giopRope.cc:647
#1  0xf7e83ef4 in omni::giopRope::selectRope (addrlist=..., info=0x9d09778, rope=@0xf41fcc4c, is_local=@0xf41fcc47) at giopRope.cc:588
#2  0xf7e44e4a in omni::createIdentity (ior=0x9cfbee0, target=0xf7ed6465 "IDL:omg.org/CORBA/Object:1.0", locked=false) at omniInternal.cc:734
#3  0xf7e46b09 in omni::createObjRef (targetRepoId=0xf7ed6465 "IDL:omg.org/CORBA/Object:1.0", ior=0x9cfbee0, locked=false, id=0x0) at omniInternal.cc:810
#4  0xf7e75933 in omni::corbalocURIHandler::locToObject (c=@0xf41fd01c, cycles=0, def_key=0x0) at uri.cc:889
#5  0xf7e76c86 in omni::corbalocURIHandler::toObject (this=0xf7f2ed34, uri=0x9c4917c "corbaloc::sbz1:5571/ExchangeAgent", cycles=0) at uri.cc:488
#6  0xf7e742f4 in omni::omniURI::stringToObject (uri=0x9c4917c "corbaloc::sbz1:5571/ExchangeAgent", cycles=0) at uri.cc:277
#7  0xf7e15be1 in omniOrbORB::string_to_object (this=0x9c2ed50, uri=0x9c4917c "corbaloc::sbz1:5571/ExchangeAgent") at corbaOrb.cc:426
#8  0x0807b4da in UsedEA::run (this=0x9c491a8) at /home/build/Builds/Trader-build857/Trader/src/LoginServer/EAInfo.cpp:500
#9  0x0808215e in tools::P0Hook<UsedEA>::run (this=0x9c492b8) at /home/build/Builds/Trader-build857/Trader/include/tools/ThreadHook.hpp:41
#10 0x081c54d8 in omniJTCThread::entrance_hook (this=0x9c492b8) at /home/build/Builds/Trader-build857/Trader/src/libomniJTC/Thread.cpp:772
#11 0x081c5612 in lsf_thread_adapter (arg=0x9c492b8) at /home/build/Builds/Trader-build857/Trader/src/libomniJTC/Thread.cpp:85
#12 0xf7f33edc in omni_thread_wrapper (ptr=0x9c49560) at posix.cc:447
#13 0x0036e912 in start_thread () from /lib/libpthread.so.0
#14 0x002ad7ce in clone () from /lib/libc.so.6
(gdb) p addrlist
$1 = (const omni::giopAddressList &) @0x9d0977c: {
  start = 0x9c6faa0,
  finish = 0x9c6faa4,
  end_of_storage = 0x9c6faa4
}
(gdb) p i
$2 = (omni::giopAddress * const *) 0x9c6faa0
(gdb) p *(*i)
$3 = (omni::tcpAddress) {
  <omni::giopAddress> = {
    _vptr.giopAddress = 0xf7f2a788
  },
  members of omni::tcpAddress:
  pd_address = {
    host = {
      _ptr = 0x9cfc090 "sbz1"
    },
    port = 5571
  },
  pd_address_string = {
    _data = 0x9cfc0a0 "giop:tcp:sbz1:5571"
  }
}

(gdb) p pd_addresses
$4 = {
  start = 0xebb1fd28,
  finish = 0xebb1fd30,
  end_of_storage = 0xebb1fd30
}

(gdb) p j
$5 = (omni::giopAddress * const *) 0xebb06160
(gdb) p *(*j)
Cannot access memory at address 0x1

(gdb) p *(*(pd_addresses.start))
$9 = (omni::tcpAddress) {
  <omni::giopAddress> = {
    _vptr.giopAddress = 0xf7f2a788
  },
  members of omni::tcpAddress:
  pd_address = {
    host = {
      _ptr = 0xebb01130 "sbz1"
    },
    port = 46036
  },
  pd_address_string = {
    _data = 0xebb00618 "giop:tcp:sbz1:46036"
  }
}

(gdb) p *(*(pd_addresses.start+1))
$8 = (omni::tcpAddress) {
  <omni::giopAddress> = {
    _vptr.giopAddress = 0xf7f2a788
  },
  members of omni::tcpAddress:
  pd_address = {
    host = {
      _ptr = 0xebb07118 "192.168.68.194"
    },
    port = 46036
  },
  pd_address_string = {
    _data = 0xebb06e88 "giop:tcp:192.168.68.194:46036"
  }
}


(gdb) p *this
$10 = (omni::giopRope) {
  <omni::Rope> = {
    _vptr.Rope = 0xf7f250c8,
    pd_strands = {
      next = 0xebb1fca4,
      prev = 0xebb1fca4
    }
  },
  <omni::RopeLink> = {
    next = 0xf461782c,
    prev = 0x9cf55e4
  },
  members of omni::giopRope:
  pd_refcount = 1,
  pd_addresses = {
    start = 0xebb1fd28,
    finish = 0xebb1fd30,
    end_of_storage = 0xebb1fd30
  },
  pd_ior_addr_size = 1,
  pd_addresses_order = {
    start = 0xebb06160,
    finish = 0xebb06164,
    end_of_storage = 0xebb06164
  },
  pd_address_in_use = 0,
  pd_maxStrands = 5,
  pd_oneCallPerConnection = true,
  pd_nwaiting = 0,
  pd_cond = {
    <omni_condition> = {
      mutex = 0x9c2e1e0,
      posix_cond = {
        __data = {
          __lock = 0,
          __futex = 0,
          __total_seq = 0,
          __wakeup_seq = 0,
          __woken_seq = 0,
          __mutex = 0x0,
          __nwaiters = 0,
          __broadcast_seq = 0
        },
        __size = '\000' <repeats 44 times>, "!\000\000",
        __align = 0
      }
    }, <No data fields>},
  pd_flags = 0,
  pd_ior_flags = 0,
  pd_offerBiDir = false,
  pd_addrs_filtered = false,
  pd_filtering = true,
  static ropes = {
    next = 0x9c53f5c,
    prev = 0xeae3b804
  }
}

Greetings,
  Michael






More information about the omniORB-list mailing list