Summary: | Tomcat Acceptor Thread goes into wait() and it will never come back | ||
---|---|---|---|
Product: | Tomcat 6 | Reporter: | Harshad Kamat <hnkamat> |
Component: | Catalina | Assignee: | Tomcat Developers Mailing List <dev> |
Status: | RESOLVED FIXED | ||
Severity: | major | ||
Priority: | P2 | ||
Version: | 6.0.18 | ||
Target Milestone: | default | ||
Hardware: | All | ||
OS: | All | ||
Attachments: |
2010-04-02_tc6_bug48843.patch
2010-04-02_tc55_bug48843.patch 2010-06-04_tc55_bug48843_c8.patch |
Description
Harshad Kamat
2010-03-02 17:43:49 UTC
Thanks for the report and the associated analysis. This issue appears to only affect 6.0.x. The issue had already been fixed in the NIO connector so I have proposed the same fox for the BIO and APR connectors. > This issue appears to only affect 6.0.x.
The above phrase means only that it does not affect trunk. That is because Workers are not used there anymore. This issue does affect TC 5.5.x
Created attachment 25225 [details]
2010-04-02_tc6_bug48843.patch
Created attachment 25226 [details]
2010-04-02_tc55_bug48843.patch
The above patches were proposed for 6.0 and 5.5. The patch was applied to 5.5 in r934922, will be in 5.5.30 onwards. The patch was applied to 6.0 in r950341, will be in 6.0.27 onwards. Fixed a similar issue with AprEndpoint.Poller, AprEndpoint.Sendfile in trunk in r950851 Backport proposed for 6.0. The 5.5 code is similar, but I have not prepared the patch for it yet. Reopening the issue to track this additional fix for AprEndpoint. Created attachment 25529 [details] 2010-06-04_tc55_bug48843_c8.patch This patch is a backport of r950851 to tc5.5.x. It will be proposed for 5.5. Regarding AprEndpoint.Poller, AprEndpoint.Sendfile fix (comment 8 and below, r950851 and attachment 25529 [details]): It is not a deadlock there. It is a missed wakeup in add queue in AprEndpoint.Poller.add() and AprEndpoint.Sendfile.add(). Tomcat does not stop processing requests and the next request will wake up the queue. The fix also changes handling of unexpected errors when processing the add queue in AprEndpoint.Poller.run() and AprEndpoint.Sendfile.run(), by zeroing the addCount variable. The AprEndpoint.Poller & Sendfile fix applied to 6.0 in r953010 and will be in 6.0.27 onwards. The second issue has been fixed in 5.5.x and will also be included in 5.5.30 onwards. |