Bug 47628

Summary: isapi_redirect.dll as an extension hangs when restarting app pool
Product: Tomcat Connectors Reporter: Brett Prucha <bprucha>
Component: isapiAssignee: Tomcat Developers Mailing List <dev>
Status: RESOLVED FIXED    
Severity: normal    
Priority: P2    
Version: 1.2.28   
Target Milestone: ---   
Hardware: PC   
OS: Windows Server 2003   
Attachments: Patch to fix deadlock when using isapi_redirect as an extension
Slightly better code to fix deadlock

Description Brett Prucha 2009-08-03 12:58:16 UTC
When loading isapi_redirect.dll as an extension, not a filter, restarting of the app pool hangs.

You will see logs in the system log like the following:

A process serving application pool 'DefaultAppPool' exceeded time limits during shut down. The process id was '1676'.

A process serving application pool 'DefaultAppPool' failed to respond to a ping. The process id was '5516'.

A process serving application pool 'DefaultAppPool' suffered a fatal communication error with the World Wide Web Publishing Service. The process id was '6200'. The data field contains the error number. 

Attached is a Crash/Hang Analysis of a dump using Debug Diagnostics Tools from the IIS Debug Kit.
Comment 1 Mark Thomas 2009-08-03 15:16:01 UTC
Moving to connectors.

Some version information would be helpful.
Comment 2 Brett Prucha 2009-08-04 05:20:18 UTC
isapi_redirect 1.2.28, Windows Server 2003 R2 SP 2, IIS 6

Did the attachment go through, it also has version info?  I can't see it.
Comment 3 Brett Prucha 2009-08-04 12:34:56 UTC
Created attachment 24100 [details]
Patch to fix deadlock when using isapi_redirect as an extension
Comment 4 Brett Prucha 2009-08-11 12:04:52 UTC
Created attachment 24127 [details]
Slightly better code to fix deadlock
Comment 5 Mladen Turk 2009-08-11 22:52:59 UTC
Good catch!

Applied a slightly different patch
https://svn.apache.org/viewvc/tomcat/jk/trunk/native/iis/jk_isapi_plugin.c?r1=802231&r2=803365&diff_format=h
Comment 6 Rainer Jung 2010-02-23 02:51:08 UTC
Will be part of 1.2.29.