[
https://issues.apache.org/jira/browse/TS-4539?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15333670#comment-15333670
]
Oknet Xu commented on TS-4539:
------------------------------
Client_vc->mutex is alloced in NetAccept by {code}vc->mutex =
new_ProxyMutex();{code}
and
Server_vc->mutex is set to {code}vc->mutex = cont->mutex;{code} in
UnixNetProcessor::connect_re_internal().
the connect_re_internal() is called by NetProcessor::connect_re().
{code}
if (scheme_to_use == URL_WKSIDX_HTTPS) {
DebugSM("http", "calling sslNetProcessor.connect_re");
int len = 0;
const char *host = t_state.hdr_info.server_request.host_get(&len);
if (host && len > 0)
opt.set_sni_servername(host, len);
connect_action_handle = sslNetProcessor.connect_re(this,
// state machine
&t_state.current.server->dst_addr.sa, // addr + port
&opt);
} else {
if (t_state.method != HTTP_WKSIDX_CONNECT) {
DebugSM("http", "calling netProcessor.connect_re");
connect_action_handle = netProcessor.connect_re(this,
// state machine
&t_state.current.server->dst_addr.sa, // addr + port
&opt);
} else {
{code}
acroding the above code in HttpSM::do_http_server_open(), the cont is HttpSM.
the Server_vc->mutex is set to HttpSM->mutex.
the Server_vc->mutex is not set to EThread->mutex as your said.
> the mutex of server_vc is not set while server_session reuse.
> -------------------------------------------------------------
>
> Key: TS-4539
> URL: https://issues.apache.org/jira/browse/TS-4539
> Project: Traffic Server
> Issue Type: Bug
> Components: HTTP
> Reporter: Oknet Xu
>
> NetAccept got a client_vc and call new_ProxyMutex() to assign a mutex.
> And the HttpClientSession, HttpSM, HttpServerSession, server_vc also share
> the same mutex.
> The HttpServerSession and server_vc will put into ServerSessionPool and may
> assign to next new client_vc.
> The HttpSM::attach_server_session() only set the mutex of HttpServerSession
> to the mutex of HttpSM after get a HttpServerSession from ServerSessionPool.
> But it forget to set the mutex of server_vc to the mutex of HttpSM.
>
> {code}
> void
> HttpSM::attach_server_session(HttpServerSession *s)
> {
> hsm_release_assert(server_session == NULL);
> hsm_release_assert(server_entry == NULL);
> hsm_release_assert(s->state == HSS_ACTIVE);
> server_session = s;
> server_session->transact_count++;
> // Set the mutex so that we have something to update
> // stats with
> server_session->mutex = this->mutex;
> {code}
> But I can not found any issue, Is it by design?
> Or it is hard to locate the problem, due to my limited knowedge on HttpSM.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)