Control: fixed -1 squid3/3.3.8-1.1 Control: tags -1 + patch
On Wed, Jun 19, 2013 at 12:36:53PM +0200, Helmut Grohne wrote: > The bug contains a non-invasive patch > http://bugs.squid-cache.org/attachment.cgi?id=2276 I intend to NMU squid3 fixing this bug. I am testing the attached .debdiff on a wheezy/amd64 production system and am no longer seeing abortions. > Most likely the unstable package is not affected. Can this issue be > considered for the next stable point release? The patch is indeed applied in sid, see: http://sources.debian.net/src/squid3/3.3.8-1.1/src/comm.cc#L1147 Helmut
diff -Nru squid3-3.1.20/debian/changelog squid3-3.1.20/debian/changelog --- squid3-3.1.20/debian/changelog 2013-02-23 15:07:26.000000000 +0100 +++ squid3-3.1.20/debian/changelog 2014-06-12 23:21:22.000000000 +0200 @@ -1,3 +1,11 @@ +squid3 (3.1.20-2.2+deb7u1) stable-proposed-updates; urgency=medium + + * Non-maintainer upload. + * Add fix-712754-assertion-failure-commHandleRead.patch. Fix sporadic + assertion failure under high load. (Closes: #712754) + + -- Helmut Grohne <hel...@subdivi.de> Thu, 12 Jun 2014 23:02:19 +0200 + squid3 (3.1.20-2.2) unstable; urgency=low * Non-maintainer upload. diff -Nru squid3-3.1.20/debian/patches/fix-712754-assertion-failure-commHandleRead.patch squid3-3.1.20/debian/patches/fix-712754-assertion-failure-commHandleRead.patch --- squid3-3.1.20/debian/patches/fix-712754-assertion-failure-commHandleRead.patch 1970-01-01 01:00:00.000000000 +0100 +++ squid3-3.1.20/debian/patches/fix-712754-assertion-failure-commHandleRead.patch 2014-06-12 22:59:34.000000000 +0200 @@ -0,0 +1,36 @@ +Description: fix assertion failure in commHandleRead +Origin: upstream, http://bugs.squid-cache.org/attachment.cgi?id=2276 +Bug: http://bugs.squid-cache.org/show_bug.cgi?id=3048 +Bug-Debian: http://bugs.debian.org/712754 +Author: Alex Rousskov +Last-Update: 2014-06-12 +Applied-Upstream: yes + +Fix for comm.cc:322 "commio_has_callback(fd, IOCB_READ, ccb)" assertion +may also be applicable to a similar IOCB_WITE assertion. + +When we start closing a descriptor, we call commio_finish_callback() to remove +I/O callbacks. If this is not done from commHandleRead or commHandleWrite, +then select(2) structures may still have our descriptor registration and will +call Comm back to read or write before the descriptor is closed for good. This +will trigger a commio_has_callback() assertion. + +=== modified file 'src/comm.cc' +--- a/src/comm.cc 2010-05-06 05:01:14 +0000 ++++ b/src/comm.cc 2010-05-09 21:32:23 +0000 +@@ -1635,11 +1635,13 @@ + commStopHalfClosedMonitor(fd); + commSetTimeout(fd, -1, NULL, NULL); + +- // notify read/write handlers ++ // notify read/write handlers after canceling select reservations, if any + if (commio_has_callback(fd, IOCB_WRITE, COMMIO_FD_WRITECB(fd))) { ++ commSetSelect(fd, COMM_SELECT_WRITE, NULL, NULL, 0); + commio_finish_callback(fd, COMMIO_FD_WRITECB(fd), COMM_ERR_CLOSING, errno); + } + if (commio_has_callback(fd, IOCB_READ, COMMIO_FD_READCB(fd))) { ++ commSetSelect(fd, COMM_SELECT_READ, NULL, NULL, 0); + commio_finish_callback(fd, COMMIO_FD_READCB(fd), COMM_ERR_CLOSING, errno); + } + + diff -Nru squid3-3.1.20/debian/patches/series squid3-3.1.20/debian/patches/series --- squid3-3.1.20/debian/patches/series 2013-02-23 15:07:26.000000000 +0100 +++ squid3-3.1.20/debian/patches/series 2014-06-12 22:56:57.000000000 +0200 @@ -4,3 +4,4 @@ 20-ipv6-fix 30-CVE-2012-5643-CVE-2013-0189.patch fix-701123-regression-in-cachemgr.patch +fix-712754-assertion-failure-commHandleRead.patch