[PATCH 0/8] reconfiguration leaks

From: Alex Rousskov <rousskov_at_measurement-factory.com>
Date: Thu, 24 Apr 2014 18:22:45 -0600

Hello,

    I am going to post several patches that fix various reconfiguration
leaks. The patches will be posted in no particular order. Here is a
Table of Contents:

  1. implicit ACLs,
  2. adaptation ACLs,
  3. TcpAcceptor job,
  4. Cache Manager menu items,
  5. [SSL] objects tied to http_port and https_port,
  6. fake SSL certificate context cache when reconfigure changes port,
  7. SSL ex_data for SSL state that survived reconfigure, a 12 y.o. bug!
  8. Excessive $HOME leak.

We fixed all reconfigure leaks we could reproduce and detect with
valgrind in one particular test environment, but we do not know whether
we fixed all the leaks. The production leaks that prompted these fixes
were huge (10s, perhaps 100s of MBs per reconfigure!), but we could not
reproduce leaks of similar magnitude. The key difference could be the
SSL certificates that Squid deals with, but we do not really know. More
work may be needed to make reconfiguration leak-free.

All of the patches were tested in production, albeit before they were
ported to the current trunk. At least one change (#5, the http_port
leak) may be considered controversial, but it also cures one of the
biggest leaks. Details are in the following emails.

The indentation in some of the patches was not fixed after adjusting the
surrounding code (on purpose, to show which code was preserved intact).
I hope I will not forget to fix that before committing any approved code.

I am posting the aggregate patch with this introductory email in case
you prefer to review all changes at once, but if you have any
change-specific comments or objections please respond to the
corresponding change-specific email instead of this one!

Those change-specific emails will have hand-edited portion of the
aggregate patch attached. I hope I got the hand-editing part right, but
you can consult the aggregate patch if anything is missing.

Thank you,

Alex.

Received on Fri Apr 25 2014 - 00:23:04 MDT

This archive was generated by hypermail 2.2.0 : Fri Apr 25 2014 - 12:00:16 MDT