[omniORB] Access violation when application exits

Ivan Ivanov Ivan.Ivanov@trema.com
Wed, 30 Jan 2002 15:15:03 +0100


Hi,
I had similar problem, have you tried _etit(code) instead of exit(code)
- in my case this helped. The _exit(...) function bypasses the standard 
handler which might be a cause of a crash.

Cheers,
Ivan



-----Original Message-----
From: owner-omniorb-list@uk.research.att.com
[mailto:owner-omniorb-list@uk.research.att.com] On Behalf Of
jon.kristensen@kongsberg-simrad.com
Sent: Wednesday, January 30, 2002 11:05 AM
To: omniorb-list@uk.research.att.com
Subject: [omniORB] Access violation when application exits

Hi,

I get an access violation error when my omniORB 4 application exits.

VC60 on Win2k.

omni_rmutex::~omni_rmutex()
{
  OMNIORB_ASSERT(!pd_holder);
}

The error occurs within the above ASSERT macro in rmutex.cc

Seems that this mutex has been destructed already,and that a second
attempt fails.

Here is my stack trace:

omni_rmutex::~omni_rmutex() line 43 + 3 bytes
omni_rmutex::`scalar deleting destructor'(unsigned int 0x00000001) + 15
bytes
omni::omniOrbPOA::~omniOrbPOA() line 459 + 34 bytes
omni::omniOrbPOA::`scalar deleting destructor'(unsigned int 0x00000001)
+ 15 bytes
_omniFinalCleanup::~_omniFinalCleanup() line 1447 + 32 bytes
$E9() + 13 bytes
_CRT_INIT(void * 0x67d70000, unsigned long 0x00000000, void *
0x00000001) line 236
_DllMainCRTStartup(void * 0x67d70000, unsigned long 0x00000000, void *
0x00000001) line 289 + 17 bytes
NTDLL! 77f82fc9()
NTDLL! 77f8de04()
KERNEL32! 77e98fe9()
doexit(int 0x00000000, int 0x00000000, int 0x00000000) line 392
exit(int 0x00000000) line 279 + 13 bytes
mainCRTStartup() line 345


Any clues?

Thanks,
Jon.

--------------
Jon Kristensen
Principal Engineer, SW Embedded Systems
Kongsberg Simrad AS, Horten, Norway
email:    jon.kristensen@kongsberg-simrad.com