Updated Branches: refs/heads/3.0.x 9dde9dc23 -> 6f8c3d33f
TS-1158: race in UnixNetVConnection::mainEvent(), Review: jplevyak, zym, zwoop, Backport: briang Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/6f8c3d33 Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/6f8c3d33 Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/6f8c3d33 Branch: refs/heads/3.0.x Commit: 6f8c3d33f005fa114b339b90d00932ef099a59d7 Parents: 9dde9dc Author: Brian Geffon <[email protected]> Authored: Thu Apr 12 15:57:01 2012 -0700 Committer: Brian Geffon <[email protected]> Committed: Thu Apr 12 15:57:01 2012 -0700 ---------------------------------------------------------------------- CHANGES | 3 +++ STATUS | 6 ------ iocore/net/UnixNetVConnection.cc | 4 +++- 3 files changed, 6 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/trafficserver/blob/6f8c3d33/CHANGES ---------------------------------------------------------------------- diff --git a/CHANGES b/CHANGES index b5eb5d2..2419ac0 100644 --- a/CHANGES +++ b/CHANGES @@ -1,5 +1,8 @@ -*- coding: utf-8 -*- Changes with Apache Traffic Server 3.0.5 + *) [TS-1158] race condition UnixNetVConnection::mainEvent() when handling + an inactivity timeout + *) [TS-1114] crash from access to CacheVC::write_vector without vol lock. Changes with Apache Traffic Server 3.0.4 http://git-wip-us.apache.org/repos/asf/trafficserver/blob/6f8c3d33/STATUS ---------------------------------------------------------------------- diff --git a/STATUS b/STATUS index bf69bb0..0486e53 100644 --- a/STATUS +++ b/STATUS @@ -41,12 +41,6 @@ A list of all bugs open for the next v3.0.4 release can be found at PATCHES ACCEPTED TO BACKPORT FROM TRUNK: - *) race condition UnixNetVConnection::mainEvent() when handling - an inactivity timeout - master SHA: b1f2e984379d6dc11cb70136ba33d46527a317d3 - Jira: https://issues.apache.org/jira/browse/TS-1158 - +1: jplevyak, zym, zwoop - *) race condition UnixNetVConnection::do_io_close() master SHA: 2731f6bfabfb983af3ddb8a48cde537d7503f283 Jira: https://issues.apache.org/jira/browse/TS-857 http://git-wip-us.apache.org/repos/asf/trafficserver/blob/6f8c3d33/iocore/net/UnixNetVConnection.cc ---------------------------------------------------------------------- diff --git a/iocore/net/UnixNetVConnection.cc b/iocore/net/UnixNetVConnection.cc index ac80aca..8b290d0 100644 --- a/iocore/net/UnixNetVConnection.cc +++ b/iocore/net/UnixNetVConnection.cc @@ -966,7 +966,9 @@ UnixNetVConnection::mainEvent(int event, Event *e) MUTEX_TRY_LOCK(rlock, read.vio.mutex ? (ProxyMutex *) read.vio.mutex : (ProxyMutex *) e->ethread->mutex, e->ethread); MUTEX_TRY_LOCK(wlock, write.vio.mutex ? (ProxyMutex *) write.vio.mutex : (ProxyMutex *) e->ethread->mutex, e->ethread); - if (!hlock || !rlock || !wlock) { + if (!hlock || !rlock || !wlock || + (read.vio.mutex.m_ptr && rlock.m.m_ptr != read.vio.mutex.m_ptr) || + (write.vio.mutex.m_ptr && wlock.m.m_ptr != write.vio.mutex.m_ptr)) { #ifndef INACTIVITY_TIMEOUT if (e == active_timeout) #endif
