]> git.ipfire.org Git - thirdparty/squid.git/commit
Mark requests on re-pinned connections to avoid them being pconnPush()ed
authorAlex Rousskov <rousskov@measurement-factory.com>
Sat, 25 Feb 2012 16:44:36 +0000 (09:44 -0700)
committerAlex Rousskov <rousskov@measurement-factory.com>
Sat, 25 Feb 2012 16:44:36 +0000 (09:44 -0700)
commita44e5bbffcf240cd3a857b1fb176cbaf9fd756dc
tree7a99eca4b7874f93431a765bdec30c4b9123b954
parentb4ab7b43c6720a5fae6d730c8c34e6cec4cb3eea
Mark requests on re-pinned connections to avoid them being pconnPush()ed
causing "fd_table[conn->fd].halfClosedReader != NULL" comm assertions later.

Forward.cc comments imply that request->flags.pinned is set by ConnStateData
but that is a lie. The flag is set by forward.cc itself. It was set for PINNED
peers having a valid pinned connection only. When we retry a pinned pconn
race, we still have a PINNED peer but the failed connection prevents us from
setting the flag. If we successfuly re-pin later, we must set the flag.

request->flags.pinned essentially means "the connection is or should be
pinned".
src/forward.cc