GitHub user jpeach opened a pull request:
https://github.com/apache/trafficserver/pull/1096
TS-4955: Remove the global mutex from the plugin session acceptor.
``plugin_http_accept`` has a global mutex which can be contended by
protocol plugins. We don't require locking on ``HttpSessionAccept`` objects and
the normal server port accept objects are not locked.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/jpeach/trafficserver fix/4955
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/trafficserver/pull/1096.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #1096
commit 733c6113790fd5eb26492e1df3a14447118c6e40
Author: James Peach
Date: 2016-10-11T19:07:59Z
TS-4955: Assign the Plugin VC acceptor at allocation time.
Since we always require a continuation to receive the accept event,
just require it at allocation time, rather than requiring the caller to
remember to call an additional function.
commit c5906cae914787c4c6acf14f590a736b1eff9984
Author: James Peach
Date: 2016-10-11T20:44:42Z
TS-4955: Allow Plugin VC accept continuation to be unlocked.
We never need to hold the continuation lock when delivering
NET_EVENT_ACCEPT, so allow a NULL continuation mutex in PluginVC to
prevent lock contention on the plugin_http_accept object. We still hold
the lock if it is present since in the intercept cases, the continuation
can come from plugins that may be expecting us to lock.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---