[PolyORB-users] Crash with naming_ior

Wright, Simon J simon.j.wright at amsjv.com
Wed Jan 12 15:34:10 CET 2005


POLYORB VERSION:

1.1r

HOST MACHINE and OPERATING SYSTEM:

Linux tiamat.pushface.org 2.4.18-6mdk #1 Fri Mar 15 02:59:08 CET 2002 i686
unknown

COMPILER VERSION

GNATLS Pro 5.02a1 (20040629) Copyright 1997-2003 Free Software Foundation,
Inc.
(NB this is NOT an AdaCore supported version! I must change that ident
string!)

DESCRIPTION:

With the following in polyorb.conf

[corba]
naming_ior=IOR:01494e472800000049444c3a6f6d672e6f72672f436f734e616d696e672f4
e616d696e67436f6e746578743a312e300001000000000000002c000000010102400a0000003
132372e302e302e3100f90a0e000000000000000000000131010deadc0d616d00000000

CORBA.ORB.Initialize crashes.

We put in a trace to show when modules are initialized:
initializing tasking.profiles.no_tasking.condition_variables
initializing scheduler
initializing corba
initializing tasking.profiles.no_tasking.threads
initializing tasking.profiles.no_tasking.mutexes
initializing tasking.profiles.no_tasking.calendar
initializing smart_pointers
initializing any
initializing exceptions.stack
initializing exceptions
initializing Callback.Helper
initializing sockets
initializing references.corbaloc
initializing protocols.giop.giop_1_0
initializing protocols.giop.giop_1_1
initializing protocols.giop.giop_1_2
initializing setup.diop
initializing protocols.giop.diop
initializing setup.iiop
initializing protocols.giop.iiop
initializing setup.uipmc
initializing protocols.giop.uipmc
initializing orb.no_tasking
initializing binding_data.iiop
initializing orb
initializing basic_poa
initializing Callback.Waste_Item_Callback.Helper
initializing polyorb.corba_p.initial_references
initializing corba.orb
polyorb.initialization: Initialization of corba.orb failed: Exception name:
CORB
A.BAD_PARAM
Message: `
Call stack traceback locations:
0x80b5612 0x80b5667 0x815bbea 0x815b50d 0x815c26d 0x80a8c61 0x80a8ee6
0x80a8f51 
0x815bc66 0x81f0827 0x804b077 0x4003d27e

and the traceback is

/opt/local/include/polyorb/corba/corba.adb:236
/opt/local/include/polyorb/corba/corba.adb:261
/opt/local/include/polyorb/corba/corba-orb.adb:489
/opt/local/include/polyorb/corba/corba-orb.adb:381
/opt/local/include/polyorb/corba/corba-orb.adb:619
/home/simon/pure-corba/po_patches/polyorb-initialization.adb:418
/home/simon/pure-corba/po_patches/polyorb-initialization.adb:447
/home/simon/pure-corba/po_patches/polyorb-initialization.adb:481
/opt/local/include/polyorb/corba/corba-orb.adb:514
/home/simon/pure-corba/server.adb:22
/home/simon/pure-corba/.build/b~server.adb:762

According to the trace, references.ior hasn't been initialized, presumably
because of the (elaboration-driven?) order in which modules are added to be
initialized?

REPEAT BY:

SAMPLE FIX/WORKAROUND:

Insert pragma Elaborate at the appropriate places in CORBA.ORB:

with PolyORB.References.IOR;
pragma Elaborate (PolyORB.References.IOR);
with PolyORB.References.Corbaloc;
pragma Elaborate (PolyORB.References.Corbaloc);


This seems rather fragile. Is there any way that Access Before
Initialization could be detected for modules?

-- 
Simon Wright                       Work Email: simon.j.wright at amsjv.com
AMS                                           Voice: +44(0)23-9251-5034
Integrated Systems Division                     FAX: +44(0)23-9251-5236

********************************************************************
This email and any attachments are confidential to the intended
recipient and may also be privileged. If you are not the intended
recipient please delete it from your system and notify the sender.
You should not copy it or use it for any purpose nor disclose or
distribute its contents to any other person.
********************************************************************


More information about the PolyORB-users mailing list