https://bz.apache.org/bugzilla/show_bug.cgi?id=59334

--- Comment #5 from Murilo <murilo.v.andre...@gmail.com> ---
Here's what's going on:

First callstack is:

00 00000000`10b7deb8 00000000`76ff9f20 ntdll!ZwWaitForSingleObject+0xa 
01 00000000`10b7dec0 00000001`8001b178 kernel32!WaitForSingleObjectEx+0x9c 
02 00000000`10b7df80 000007fe`fb7e1c9b isapi_redirect!HttpFilterProc+0x148
[c:\workplace\tomcat-connectors-1.2.40-src\native\iis\jk_isapi_plugin.c @ 2172]
03 00000000`10b7e400 000007fe`fb7e1f2d
filter!W3_FILTER_CONTEXT::NotifyFilters+0x149
<snip>

This thread owns the critical section blocking everyone else.

Looking at source code we see that we’re stuck here:


            if (!is_mapread) {
                WaitForSingleObject(init_cs, INFINITE);
                if (!is_mapread)
                    is_mapread = init_jk(serverName);
                ReleaseMutex(init_cs);
            }


We're stuck on that WaitForSingleObject line.  This code waits for “init_cs”
which is a Named Mutex to be released.  But this Named Mutex is currently
owned:

Handle 0000000000000278
  Type                   Mutant
  Attributes         0
  GrantedAccess 0x1f0001:
         Delete,ReadControl,WriteDac,WriteOwner,Synch
         QueryState
  HandleCount  4
  PointerCount   8
  Name        
\BaseNamedObjects\JK_C__PROGRAM_FILES_APACHE_SOFTWARE_FOUNDATION_JAKARTA_ISAPI_REDIRECTOR_BIN_ISAPI_REDIRECT_MUTEX
  Object specific information
    Mutex is Owned
    Mutant Owner 3048.2198


Note the owner is a thread inside this same process.  Owner PID is 0x3048
(decimal 12360 which is PID of this same process).  Thread 0x2198 is thread 3.

This is thread 3 in this same dump shows that the Named Mutex has leaked as its
callstack shows an idle thread not doing anything and with this callstack will
never release anything.


0:003> k
# Child-SP          RetAddr           Call Site
00 00000000`022efa08 00000000`76fedfbc ntdll!ZwRemoveIoCompletion+0xa
01 00000000`022efa10 000007fe`f76f2b0e kernel32!GetQueuedCompletionStatus+0x48
02 00000000`022efa70 000007fe`f76f1b95
w3tp!THREAD_POOL_DATA::ThreadPoolThread+0x56
03 00000000`022efad0 00000000`76fea4bd
w3tp!THREAD_MANAGER::ThreadManagerThread+0x5d
04 00000000`022efb00 00000000`77356461 kernel32!BaseThreadInitThunk+0xd
05 00000000`022efb30 00000000`00000000 ntdll!RtlUserThreadStart+0x1d


Some code ran on this thread (inside Jakarta) that took ownership of the Named
Mutex and then something happened and that code did not release that Named
Mutex… so now this whole process is stuck.

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to