Susan Hinrichs created TS-3191:
----------------------------------
Summary: 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
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)