]> git.ipfire.org Git - thirdparty/squid.git/commit
Fixed mgr query handoff from the original recipient to Coordinator.
authorAlex Rousskov <rousskov@measurement-factory.com>
Sat, 24 Jun 2017 00:01:51 +0000 (18:01 -0600)
committerAlex Rousskov <rousskov@measurement-factory.com>
Sat, 24 Jun 2017 00:01:51 +0000 (18:01 -0600)
commit9e9301158034cc1e06283b303f8e1ebc25fff4ec
tree0872477d658b8d7752f635fe068186b04647b48e
parenta7ba2ec1d8ee27707b7c8628ecf001318daef62e
Fixed mgr query handoff from the original recipient to Coordinator.

This bug has already been fixed once, in trunk r11164.1.61, but that fix
was accidentally undone shortly after, during significant cross-branch
merging activity combined with the Forwarder class split. The final
merge importing the associated code (trunk r11730) was buggy.

The bug (explained in r11164.1.61) leads to a race condition between

* Store notifying Server classes about the entry completion (which might
  trigger a bogus error message sent to the cache manager client while
  Coordinator sends its own valid response on the same connection!) and

* post-cleanup() connection closure handlers of Server classes silently
  closing everything (and leaving Coordinator the only responding
  process on that shared connection).

The bug probably was not noticed for so long because, evidently, the
latter actions tend to win in the current code.
src/ipc/Forwarder.h
src/mgr/Forwarder.cc
src/mgr/Forwarder.h
src/tests/stub_libmgr.cc