]> git.ipfire.org Git - thirdparty/squid.git/commit - src/client_side.cc
Fixed comm.cc:377: "fd_table[fd].halfClosedReader != NULL" assertion
authorAlex Rousskov <rousskov@measurement-factory.com>
Thu, 22 Jul 2010 14:25:36 +0000 (08:25 -0600)
committerAlex Rousskov <rousskov@measurement-factory.com>
Thu, 22 Jul 2010 14:25:36 +0000 (08:25 -0600)
commitf84dd7eb35e869bbebe51c5da7ac6eee95c07948
treec370d27124afbf62b60ef27b2a23b7bb4ac4827c
parent0954cf81efd6dd43361ebe47a0ef020357dd8488
Fixed comm.cc:377: "fd_table[fd].halfClosedReader != NULL" assertion

Client side must stop reading when switching to a tunnel mode. The old code
called low-level commSetSelect to stop reading, but that left Comm tables in
an inconsistent state, with the client side reader callback still scheduled.
Squid would assert when the tunnel called comm_read with its own callback.

The bug is unrelated to half-closed connections despite halfClosedReader
mentioned in the assertion text. The assertion means "no more than one active
reader per FD".
src/client_side.cc
src/client_side.h
src/client_side_request.cc
src/tunnel.cc