[Ace-users] process hangs on windows

AvinashKodikal avinashkodikal at gmail.com
Tue Dec 11 09:03:02 CST 2007


Hi all,

ACE VERSION: 5.4.7

HOST MACHINE and OPERATING SYSTEM:
        Windows 2000 SP4
        Winsock 2.0

TARGET MACHINE and OPERATING SYSTEM, if different from HOST: N/A

COMPILER NAME AND VERSION (AND PATCHLEVEL):
    Microsoft Visual C++ .NET 2003
    Compiler Options: /Ox /I ".." /D "ACE_BUILD_DLL" /D "NDEBUG" /D
"WIN32" /D "_WINDOWS" /D "ACE_HAS_ACE_TOKEN" /D "ACE_HAS_ACE_SVCCONF" /
D "_WINDLL" /FD /EHsc /MD /GS /Gy /Zc:forScope /GR /Fo"Release\ACE/" /
Fd"Release\ACE/vc70.pdb" /W3 /nologo /c /Zi /TP

DOES THE PROBLEM AFFECT:
        EXECUTION Application is affected

SYNOPSIS:
	process hangs while thread exiting

DESCRIPTION:
	We have a application which makes heavy use of ACE.  The code is
functioning properly up to the point where we try and exit the
application. We have several background threads which are spawned to
do various things - like database access, file operartions etc.  We
call a number of cleanup functions at the end of which the
ace_os_object_manager is destroyed. All of the threads except one
appear to be exiting as they should, but the ACE::fini call ends up
hanging with the following stack trace:

ChildEBP RetAddr  Args to Child
0012fc8c 7c59a030 00000574 00000000 00000000 NTDLL!
ZwWaitForSingleObject+0xb (FPO: [3,0,0])
0012fcb4 7c57b3db 00000574 ffffffff 00000000 KERNEL32!
WaitForSingleObjectEx+0x71 (FPO: [Non-Fpo])
*** WARNING: Unable to verify checksum for ace.dll
*** ERROR: Symbol file could not be found.  Defaulted to export
symbols for ace.dll -
0012fcc4 0027aadd 00000574 ffffffff 0012fd20 KERNEL32!
WaitForSingleObject+0xf (FPO: [2,0,0])
WARNING: Stack unwind information not available. Following frames may
be wrong.
0012fce8 0027b610 00000000 021914b0 00000000 ace!ACE_OS::cond_wait
+0x3d
0012fd30 0027600a 00000001 00000000 02195a00 ace!ACE_OS::thr_create
+0x380
*** WARNING: Unable to verify checksum for ice.dll
*** ERROR: Symbol file could not be found.  Defaulted to export
symbols for ice.dll -
0012fd64 02e70610 02195a00 0012fd94 02e7002f ace!
ACE_Object_Manager::fini+0x6a
0012fddc 77f8806c 02e60000 00000000 00000001 ice!ICEOS::select+0x1f0
0012fe64 7c596a0f 00000000 00000001 7ffdf000 NTDLL!LdrpCallInitRoutine
+0x14
0012ff28 00348d03 00000000 003476c9 00000000 KERNEL32!ExitProcess+0x51
(FPO: [Non-Fpo])
0012ff30 003476c8 00000000 00000000 00000000 msvcr71!__crtExitProcess
+0x2e (FPO: [1,0,0])
0012ff60 00348d11 00000000 00000000 00000000 msvcr71!_cinit+0x108
(FPO: [Non-Fpo])
*** WARNING: Unable to verify checksum for pmdtm.exe
*** ERROR: Module load completed but symbols could not be loaded for
pmdtm.exe
0012ff70 0040152e 00000000 01d5ed58 00000004 msvcr71!exit+0xd (FPO:
[1,0,0])
0012ffc0 7c598989 01d5ed58 00000004 7ffdf000 pmdtm+0x152e
0012fff0 00000000 004013d7 00000000 000000c8 KERNEL32!BaseProcessStart
+0x3d (FPO: [Non-Fpo])


REPEAT BY:
	The issue is highly imtermittent. It occurs when several processes
are scheduled to run simulatneously. One or two process hangs after
some time.

SAMPLE FIX/WORKAROUND:
	N/A

Can anyone please help me on this issue?


More information about the Ace-users mailing list