------------------------------------------------------------ revno: 14000 revision-id: chtsanti@users.sourceforge.net-20160302091210-z6na5qq51cknovnd parent: chtsanti@users.sourceforge.net-20160229200651-tmdlq21xvhql4fqr committer: Christos Tsantilas branch nick: 3.5 timestamp: Wed 2016-03-02 11:12:10 +0200 message: Squid crashes on shutdown while cleaning up idle ICAP connections. The global Adaptation::Icap::TheConfig object is automatically destroyed when Squid exits. Its destructor destroys Icap::ServiceRep objects that, in turn, close all open connections in the idle connections pool. Since this happens after comm_exit has destroyed all Comm structures associated with those connections, Squid crases. This is a Measurement Factory project. ------------------------------------------------------------ # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: chtsanti@users.sourceforge.net-20160302091210-\ # z6na5qq51cknovnd # target_branch: http://bzr.squid-cache.org/bzr/squid3/3.5 # testament_sha1: be34535833b568500f7b7e6935e1aaba26d1006f # timestamp: 2016-03-02 09:50:56 +0000 # source_branch: http://bzr.squid-cache.org/bzr/squid3/3.5 # base_revision_id: chtsanti@users.sourceforge.net-20160229200651-\ # tmdlq21xvhql4fqr # # Begin patch === modified file 'src/main.cc' --- src/main.cc 2016-01-01 00:14:27 +0000 +++ src/main.cc 2016-03-02 09:12:10 +0000 @@ -1899,6 +1899,9 @@ WIN32_svcstatusupdate(SERVICE_STOP_PENDING, 10000); #endif +#if ICAP_CLIENT + Adaptation::Icap::TheConfig.freeService(); +#endif Store::Root().sync(); /* Flush pending object writes/unlinks */