[
https://issues.apache.org/jira/browse/TS-1007?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14198116#comment-14198116
]
Nick Kew commented on TS-1007:
------------------------------
Bah, can't log in to Jira. As usual.
It is a complex workaround. Keep a txn count on the ssn,
and if txn count > 0 on ssn_close event, just mark it as closing
and actually run cleanups it on the last txn_close. And don't
use ssn mutex, because the ssn_close kills it!
We now have the workaround, so I'd forgotten about this bug.
So I guess it's not actually critical here.
--
Nick Kew
> SSN Close called before TXN Close
> ---------------------------------
>
> Key: TS-1007
> URL: https://issues.apache.org/jira/browse/TS-1007
> Project: Traffic Server
> Issue Type: Bug
> Components: TS API
> Affects Versions: 3.0.1
> Reporter: Nick Kew
> Assignee: Sudheer Vinukonda
> Priority: Critical
> Fix For: 5.3.0
>
>
> Where a plugin implements both SSN_CLOSE_HOOK and TXN_CLOSE_HOOK, the
> SSN_CLOSE_HOOK is called first of the two. This messes up normal cleanups!
> Details:
> Register a SSN_START event globally
> In the SSN START, add a TXN_START and a SSN_CLOSE
> In the TXN START, add a TXN_CLOSE
> Stepping through, I see the order of events actually called, for the simple
> case of a one-off HTTP request with no keepalive:
> SSN_START
> TXN_START
> SSN_END
> TXN_END
> Whoops, SSN_END cleaned up the SSN context, leaving dangling pointers in the
> TXN!
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)