[omniORB] omniOrb4 - codeset intialisation exception?
Stephen Crawley
crawley@dstc.edu.au
Wed, 25 Jul 2001 10:41:10 +1000
Duncan & Mac,
I wrote:
> I hacked a "solution" which involved explicitly instantiating
> the codeset classes in my mainline code before calling ORB_init.
This doesn't work because it causes each codeset to be registered twice.
When a codeset is registered twice, the codeset lists end up with a
cycle which causes omniCodeSet::logCodeSets() to loop forever if I
set -ORBtraceLevel >= 15.
> But I'm running into other problems which might be a consequence
> of my hackery.
I think they are unrelated. Does the following stack trace look
familiar to anyone? It looks like the giopRope object has not been
correctly initialised. Is this a known problem?
Program terminated with signal 9, Killed.
...
#0 0x2fa12c in omni::giopRope::acquireClient (this=0x5207b0, ior=0x519930,
key=0x51fbf0 "", keysize=50, calldesc=0xffbef0e8) at giopRope.cc:216
216 giopStrand* s = new giopStrand(pd_addresses[pd_addresses_order[pd_address_in_use]]);
(gdb) where
#0 0x2fa12c in omni::giopRope::acquireClient (this=0x5207b0, ior=0x519930,
key=0x51fbf0 "", keysize=50, calldesc=0xffbef0e8) at giopRope.cc:216
#1 0x2f4ff4 in omni::IOP_C_Holder::IOP_C_Holder (this=0xffbeefc8,
ior=0x519930, key=0x51fbf0 "", keysize=50, rope=0x5207b0,
calldesc=0xffbef0e8) at omniTransport.cc:59
#2 0x2ec290 in omniRemoteIdentity::dispatch (this=0x51fbc0,
call_desc=@0xffbef0e8) at remoteIdentity.cc:142
#3 0x2d1d18 in omniObjRef::_invoke (this=0x51fc40, call_desc=@0xffbef0e8,
do_assert=true) at omniObjRef.cc:553
#4 0x264bb0 in Repository::_objref_BaseRepository::contents (this=0x51fc6c)
at RepositorySK.cxx:497
#5 0x1937c8 in locate_schema (
ior_file=0xffbef4a0 "/home/crawley/iors/dmof_steve.ior",
path=0x430818 "DEFAULT", new_schema=0, replace_schema=0) at main.cxx:346
#6 0x194954 in main (argc=5, argv=0xffbef2dc) at main.cxx:546
(gdb) print pd_addresses
$1 = {start = 0x0, finish = 0x0, end_of_storage = 0x0}
(gdb) print pd_addresses_order
$2 = {start = 0x0, finish = 0x0, end_of_storage = 0x0}
(gdb) print pd_address_in_use
$3 = 0
(gdb)
I'm uploading the latest sources from the CVS repository to see if this
fixes my problems ...
-- Steve