Summary: | Deadlock occurs while sending to a closing session | ||
---|---|---|---|
Product: | Tomcat 8 | Reporter: | Lorcan O'Toole <lorcan2> |
Component: | WebSocket | Assignee: | Tomcat Developers Mailing List <dev> |
Status: | RESOLVED FIXED | ||
Severity: | regression | ||
Priority: | P2 | ||
Version: | 8.0.33 | ||
Target Milestone: | ---- | ||
Hardware: | PC | ||
OS: | All | ||
Attachments: | Description in txt |
Description
Lorcan O'Toole
2017-06-13 16:25:12 UTC
Created attachment 35050 [details]
Description in txt
Call stacks and comments might be easier to read with .txt
The analysis looks to be spot on. The tricky part is likely to be fixing this without re-introducing the bugs those locks were put in place to fix. I spent a lot of time trying to avoid calling the callbacks with the lock held. In the end, I opted to refactor registerFuture(). Fixed in: - trunk for 9.0.0.M22 onwards - 8.5.x for 8.5.16 onwards - 8.0.x for 8.0.45 onwards - 7.0.x for 7.0.79 onwards Thanks Mark, I assume the refactoring of registerFuture involved avoiding stateLock. I would imagine this problem should be reproducible with the right test harness. Have you any view to when these patches will be made available? regards, Lorcan I'm building the 9.0.0.M22 release now. 8.5.x will follow shortly. Releases take 4-5 days, mainly because of the minimum 72 hour voting period and allowing 24 hours for the mirrors to sync. |