Bug 2942 - Crash when loading both DiffServPolicy.dll and PortableGroup.dll in VC8 build.
Summary: Crash when loading both DiffServPolicy.dll and PortableGroup.dll in VC8 build.
Status: NEW
Alias: None
Product: TAO
Classification: Unclassified
Component: ORB (show other bugs)
Version: 1.5.8
Hardware: x86 Windows XP
: P3 normal
Assignee: vridosh
URL:
Depends on: 2995
Blocks:
  Show dependency tree
 
Reported: 2007-05-24 07:06 CDT by vridosh
Modified: 2007-07-24 11:05 CDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description vridosh 2007-05-24 07:06:44 CDT
I worked on Bug2925 when discovered that on WinXP VC8 (build WinXP_VC8_FULL) there is a crash that didn't occur on any other system (2925 test easily reproduce this bug, so I don't add one). This crash seem to be not related to 2925 fix.

After a deeper investigation I found that when loading DiffServ dll ORBInitializer_Registry is initialized and added to ACE_Service_Repository::service_vector_. This happens before PortableGroup.dll is loaded. Later when svc.conf is processed and the PortableGroup dll is finally loaded the services from that dll are added after ORBInitializer_Registry. Also while loading the dll several TAO_PortableGroup_ORBInitializer objects from PortableGroup are added to ORBInitializer_Registry. Then the test works fine and when it comes to finishing the services from ACE_Service_Repository are deleted in the reverse order (along with unloading unnecessary dlls), at the moment when ORBInitializer_Registry needs to be deleted PortableGroup.dll is already unloaded and objects in ORBInitializer_Registry cannot find their desctructors. Here we have an ACCESS VIOLATION.

Strange enough on VC71 the crash doesn't happen. In this build PortableGroup.dll is loaded before DiffServPolicy.dll and even before svc.conf is processed thus finalization of the test goes fine. I checked that in the debugger.
Comment 1 Johnny Willemsen 2007-07-18 07:36:40 CDT
could maybe related to 2995, maybe we have multiple instances of the ORBInitializerRegistry
Comment 2 Johnny Willemsen 2007-07-24 02:21:33 CDT
added depends
Comment 3 Johnny Willemsen 2007-07-24 08:39:20 CDT
to reporter, can you make a regression test for this one?
Comment 4 vridosh 2007-07-24 10:09:09 CDT
Test for 2925 reproduces this issues on VC8 (as well as any other setup with other services loaded from dlls). Do you want me to copy the same test or need another one?
Comment 5 Simon McQueen 2007-07-24 10:38:16 CDT
Hi Johnny - we have no funding for investigation of problems on this platform which we do not support. We simply wish to record that the problem exists in case funding becomes available for someone who is interested in it.

Also the failure of bug #2925 regression on this platform is an example of the problem as the ticket states.
Comment 6 Johnny Willemsen 2007-07-24 10:40:35 CDT
So, when bug 2925 regression works perfect on all platforms we can then consider this one as fixed also?
Comment 7 Simon McQueen 2007-07-24 11:05:57 CDT
I guess when it passes on VC8 Full then you can consider that the job's done.