Henrik Nordström's Squid work -> Squid Patches / Squid-2.3.STABLE
My patches to Squid-2.3.STABLE
NOTE: I have not tested the Squid-2.3 version as throughtfully as the Squid-2.2.STABLE5-hno releases (more like not at all), and it is known that for example async-io will not perform that well compared to 2.2.STABLE5-hno. Most of these patches have been incorporated into the main Squid distribution since Squid-2.4 and I no longer actively maintain this patchset.
Snapshots are jumbo patches containin all the listed patches + other patches mostly from the Squid-2.3 known bugs page. The Squid version number of these are the version the patch should be applied to.
Snapshots can be downloaded from the hno-stable section on the Squid SourceForge page.
You can also download a single patch with all my changes to Squid-2.3. This is automatically generated from the CVS repository on SourceForge. This patch applies to the "head" version of squid-2.3 downloadable from the main Squid-2.3 site
This are my current set of patches to the 2.3 release of Squid. Patches are listed in reverse order with the newest first, so if you have trouble applying a patch it is very likely that it depends on another patch further down in the list.
The Squid version number of the patch does not actually matter. All it indicates is what Squid version I used when I made the patch. All patches listed here applies to the Squid version indicated in the heading above.
-
Squid-2.3.STABLE1: Handle NULL characters in the server reply headers
Squid failed to detect the end of the servers HTTP headers if
the server wronly responds with headers containing a NULL character.
This could cause abnormal amount of used cache_mem during the request.
(the server in question was mp3 streaming, virtuallu unlimited in size)
-
Squid-2.2.STABLE5: Persistent POST's blocking memory
Persistent POST requests could block quite a bit of memory by
not releasing request state data until the client connection
was closed.
-
Squid-2.3.STABLE1: icons and auth_modules/SMB object directory
Installation of icons and auth_modules/SMB failed if building in
a separate object directory outside the sources.
-
Squid-2.3.STABLE1: myport and redirector_access
Added support for myport ACL to redirector_access
-
Squid-2.3.STABLE1: Configurable and corrected DNS retransmission interval
Added squid.conf parameters for DNS retransmissions, and fixed a
starvation lock situations where DNS requests hangs unless there
"continously" are new DNS requests made.
Also reload DNS definitions on reconfigure
-
Squid-2.2.STABLE5: pconn_timeout on client connections / disabling
Changed pconn_timeout to apply to client connections as well, and
added the rule that persistent connections will be disabled if
pconn_timeout is < 10 seconds.
-
Squid-2.3.DEVEL3: FTP log level adjustment for ignored "errors"
Use log level 3 on ignored read-"errors" like EAGAIN (was 1).
-
Squid-2.3.DEVEL3: Range request could cause bandwidth spikes
Range requests to servers/objects not supporting range requests could
cause bandwidth spikes and/or negative hit ratio.
-
Squid-2.2.DEVEL3: The last aclDomainCompare bugs squeezed
This patch fixes some remaining aclDomainCompare issues where
Squid gave more "is a subdomain of" warnings than it needed to.
-
Squid-2.2.STABLE5: ipc hello test fails on some platforms/compilers
A missing \0 string terminator could on some platforms/compilers cause
squid to fail the hello test used when starting child processes.
-
Squid-2.3.DEVEL2: ProgrammersGuide PS output to file, not printer
Send Programming-Guide postscript format to the intended destination file
instead of directly to the printer (or whatever configuered as default output
for dvips)
-
Squid-2.3.STABLE1: FreeBSD 3.3 statfs
FreeBSD requires sys/mount.h for statfs().
-
Squid-2.3.DEVEL3: HEAD and ftp://...
Support HEAD ftp://.. requests without fetching the whole object.
-
Squid-2.3.DEVEL2: Purge ipcache on reload/PURGE
Purge negatively cached ipcache entries on reload to allow
end users to quickly purge sporious errors, and have
the PURGE method also purge ipcache to allow the cache
administrator to manually purge important entries on DNS
updates.
-
Squid-2.3.DEVEL3: Restart helpers when rotating logs
Restart helper processes when rotating logs, to have cache.log
properly rotated.
-
Squid-2.2.STABLE4: helpers and open filedescriptors
Make sure all unneeded filedescriptors is properly closed
when starting helper processes.
-
Squid-2.3.STABLE1: Delay pid file removal until shutdown
Delay removal of the pid file until Squid is fully shut down. This
is to allow scripts to monitor the pid file waiting for Squid to shut
down.
-
Squid-2.3.DEVEL2: Release unused store entries during rebuild
Squid locked all "released" store entries in memory during the
rebuild procedure, even such entries not needed in the "LateRelease"
procedure. Also, during a dirty rebuild a lot of store entries
got locked up which never was queued for "LateRelease", causing a huge
memory leak.
-
Squid-2.3.DEVEL2: Free cache_mem objects during cache rebuild
Squid locked objects in cache_mem to no apparent reason other
than causing the cache_mem usage to grow huge during cache rebuilds.
-
Squid-2.3.DEVEL2: CONNECT was not under the control of miss_access
Adds miss_access control to CONNECT method.
-
Squid-2.2.STABLE4: Async-IO segfaults if AIO_PROPER_MUTEX isn't set
Async-IO on Linux segfaults in condition variables if given high
load and AIO_PROPER_MUTEX isn't set. This was seen on a SMP Alpha Linux
2.2.10-ac12 box. I knew there was a reason why I made the AIO_PROPER_MUTEX
code a long time ago..
-
Squid-2.2.STABLE3: Persistent connections request_timeout
Persistent connections used a hardcoded timeout of 15 seconds instead
of request_timeout as documented in squid.conf.
-
Squid-2.2.STABLE2: delay pools, large initial level
It is a bit to easy to get a integer overflow when using delay
pools for limiting daily download. This patch changes the initial
calculation to use floating point math, allowing a initial pool size of
up to 2^31-1.
-
Squid-2.2.STABLE2: Don't swap out objects > maximum_object_size
Don't start swapping out objects with a known size larger than
maximum_object_size. Previously Squid would swap out these objects and
mark it as private once maximum_object_size was hit.
-
Squid-2.2.DEVEL3: Don't allow netdb selection to bypass never_direct
Netdb selection could bypass never_direct and cause Squid to go direct
to an origin site even if never_direct allow was in effect.
-
Squid-2.3.DEVEL2: Improved TCP dead peer detection & failover
A major adjustment of how Squid detects a failing TCP peer
and how connections is retried when it fails to connect.
-
Squid-2.2.DEVEL3: Improved ICP dead peer detection
Some minor adjustments of ICP dead peer detection to make it
behave well on startup and low load servers. Also lessens the
amount of queries sent to dead peers.
Legend:
- Is committed to the main sources
- Waiting for confirmation from Duane
- Duane does not want this committed to Squid-2.3, but I think it belongs there.
© 1999-2000 Henrik Nordström <hno@squid-cache.org>.