]> git.ipfire.org Git - thirdparty/squid.git/commit
Bug 4796: comm.cc !isOpen(conn->fd) assertion when rotating logs (#382)
authorAlex Rousskov <rousskov@measurement-factory.com>
Mon, 1 Apr 2019 16:58:36 +0000 (16:58 +0000)
committerSquid Anubis <squid-anubis@squid-cache.org>
Tue, 2 Apr 2019 06:14:59 +0000 (06:14 +0000)
commit2cd72a24f3beeb7dd88cd9fb5bdc1999d462a266
treec7ca4b00c29737846819804a7565f62afbab8e00
parent7701d1a03c628156d7bab3ca63253383d3e2941d
Bug 4796: comm.cc !isOpen(conn->fd) assertion when rotating logs (#382)

Squid abandoned cache.log file descriptor maintenance, calling fd_open()
but then closing the descriptor without fd_close(). If the original file
descriptor value was reused for another purpose, Squid would either hit
the reported assertion or log a "Closing open FD" WARNING (depending on
the new purpose). The cache.log file descriptor is closed on log
rotation and reconfiguration events.

This short-term solution avoids assertions and WARNINGs but sacrifices
cache.log listing in fd_table and, hence, mgr:filedescriptors reports.

The correct long-term solution is to properly maintain descriptor meta
information across cache.log closures/openings, but doing so from inside
of debug.cc is technically difficult due to linking boundaries/problems.
src/main.cc