[
https://issues.apache.org/jira/browse/TS-3191?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14220958#comment-14220958
]
ASF GitHub Bot commented on TS-3191:
------------------------------------
Github user shinrich commented on the pull request:
https://github.com/apache/trafficserver/pull/145#issuecomment-63975572
We ended up leaving in the kill_tunnel in HttpSM::kill_this(). TS-1527 is
fixed by this addition as well as the issue I was seeing here. The possibility
of double do_io_closes() is disturbing, but that seems to happen elsewhere as
well. If it is in the same invocation stream it is safe (just resetting the
close flag). Should be investigated in more depth though. Based on what we
were seeing in production and the little bit of gdb investigation that Alan
did, the keep_alive connections are not affected, but again, we should
investigate in more detail and perhaps add a test case to the integration test
set to verify that shutting down the SM does not destroy the keep alive
connections.
> Confusion with HTTP_TUNNEL_STATIC_PRODUCER
> ------------------------------------------
>
> Key: TS-3191
> URL: https://issues.apache.org/jira/browse/TS-3191
> Project: Traffic Server
> Issue Type: Bug
> Reporter: Susan Hinrichs
> Assignee: Susan Hinrichs
> Fix For: 5.2.0
>
>
> In the HttpTunnel processing, normally a producer has a VC associated with
> it. The VC is used to lookup the producer via the HttpTunnel::get_producer
> method out of the HttpTunnel producer array.
> All is well and good, but in the case of a static producer, there is no vc.
> Rather the constant HTTP_TUNNEL_STATIC_PRODUCER is used in lieu of the vc.
> If there is only only one static producer all is still well, get_producer
> will return the one producer associated with HTTP_TUNNEL_STATIC_PRODUCER.
> But if there is more than one static producer involved with the tunnel,
> get_producer() will only return one producer. Both static consumers will
> only interact with one of the static producers and things will go down hill
> from here.
> I ran into this case while chasing down crashes via TS-3105, so this
> situation does come up in the wild.
> I fixed it by clearing out the tunnel before starting a static producer and
> making some other checks along the way.
> We could also avoid some calls to get_producer since it many cases, the
> caller already has the producer in question, but the callee ends up looking
> up that value again via the VC.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)