See <http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/1680/changes>
Changes:
[Christos Tsantilas] author: Martin Huter <mhuter_at_barracuda.com>, Alex Rousskov <rousskov_at_measurement-factory.com>, Christos Tsantilas <chtsanti_at_users.sourceforge.net>
Bug 2619: Excessive RAM growth due to unlimited adapted body data consumption
If the client does not read from the open connection (i.e. the user does not
confirm the browsers download-message-box in microsofts IE), squid keeps on
reading data from the ICAP server into the store entry, while no more data
can be delivered to the client.
Thus the store entry in memory is growing and squid may - in worst case -
consume memory up to the size of the users download.
This patch add API to StoreEntry to call the producer back when released
memory/space from the StoreEntry and add code to the ICAP client code to not
consume body data comes from the ICAP server when there is not available space
in the store entry.
[Christos Tsantilas] Fill access log's %error_detail when responding with
ERR_SECURE_CONNECT_FAIL.
This is a Measurement Factory project
------------------------------------------
[...truncated 7385 lines...]
Testing ../../src/HttpHdrScTarget.h ...Ok.
Testing ../../src/HttpHeader.h ...Ok.
Testing ../../src/HttpHeaderMask.h ...Ok.
Testing ../../src/HttpHeaderRange.h ...Ok.
Testing ../../src/HttpMsg.h ...Ok.
Testing ../../src/HttpParser.h ...Ok.
Testing ../../src/HttpReply.h ...Ok.
Testing ../../src/HttpRequest.h ...Ok.
Testing ../../src/HttpRequestMethod.h ...Ok.
Testing ../../src/HttpStatusCode.h ...Ok.
Testing ../../src/HttpStatusLine.h ...Ok.
Testing ../../src/HttpVersion.h ...Ok.
Testing ../../src/ICP.h ...Ok.
Testing ../../src/icp_opcode.h ...Ok.
Testing ../../src/ipcache.h ...Ok.
Testing ../../src/LeakFinder.h ...Ok.
Testing ../../src/LoadableModule.h ...Ok.
Testing ../../src/LoadableModules.h ...Ok.
Testing ../../src/lookup_t.h ...Ok.
Testing ../../src/MemBlob.h ...Ok.
Testing ../../src/MemBuf.h ...Ok.
Testing ../../src/Mem.h ...Ok.
Testing ../../src/mem_node.h ...Ok.
Testing ../../src/MemObject.h ...Ok.
Testing ../../src/MemStore.h ...Ok.
Testing ../../src/NullDelayId.h ...Ok.
Testing ../../src/Packer.h ...Ok.
Testing ../../src/Parsing.h ...Ok.
Testing ../../src/pconn.h ...Ok.
Testing ../../src/PeerDigest.h ...Ok.
Testing ../../src/PeerSelectState.h ...Ok.
Testing ../../src/PingData.h ...Ok.
Testing ../../src/ProtoPort.h ...Ok.
Testing ../../src/protos.h ...Ok.
Testing ../../src/RemovalPolicy.h ...Ok.
Testing ../../src/Server.h ...Ok.
Testing ../../src/snmp_core.h ...Ok.
Testing ../../src/squid.h ...Ok.
Testing ../../src/SquidMath.h ...Ok.
Testing ../../src/SquidString.h ...Ok.
Testing ../../src/SquidTime.h ...Ok.
Testing ../../src/stmem.h ...Ok.
Testing ../../src/StoreClient.h ...Ok.
Testing ../../src/StoreEntryStream.h ...Ok.
Testing ../../src/StoreFileSystem.h ...Ok.
Testing ../../src/Store.h ...Ok.
Testing ../../src/StoreHashIndex.h ...Ok.
Testing ../../src/StoreIOBuffer.h ...Ok.
Testing ../../src/StoreIOState.h ...Ok.
Testing ../../src/StoreMeta.h ...Ok.
Testing ../../src/StoreMetaMD5.h ...Ok.
Testing ../../src/StoreMetaObjSize.h ...Ok.
Testing ../../src/StoreMetaSTD.h ...Ok.
Testing ../../src/StoreMetaSTDLFS.h ...Ok.
Testing ../../src/StoreMetaUnpacker.h ...Ok.
Testing ../../src/StoreMetaURL.h ...Ok.
Testing ../../src/StoreMetaVary.h ...Ok.
Testing ../../src/StoreSearch.h ...Ok.
Testing ../../src/StoreStats.h ...Ok.
Testing ../../src/StoreSwapLogData.h ...Ok.
Testing ../../src/structs.h ...Ok.
Testing ../../src/SwapDir.h ...Ok.
Testing ../../src/swap_log_op.h ...Ok.
Testing ../../src/TimeOrTag.h ...Ok.
Testing ../../src/typedefs.h ...Ok.
Testing ../../src/URL.h ...Ok.
Testing ../../src/URLScheme.h ...Ok.
Testing ../../src/wordlist.h ...Ok.
Testing ../../src/DiskIO/DiskFile.h ...Ok.
Testing ../../src/DiskIO/DiskIOModule.h ...Ok.
Testing ../../src/DiskIO/DiskIOStrategy.h ...Ok.
Testing ../../src/DiskIO/IORequestor.h ...Ok.
Testing ../../src/DiskIO/ReadRequest.h ...Ok.
Testing ../../src/DiskIO/WriteRequest.h ...Ok.
Testing ../../src/DiskIO/AIO/AIODiskFile.h ...Ok.
Testing ../../src/DiskIO/AIO/AIODiskIOModule.h ...Ok.
Testing ../../src/DiskIO/AIO/AIODiskIOStrategy.h ...Ok.
Testing ../../src/DiskIO/AIO/aio_win32.h ...Ok.
Testing ../../src/DiskIO/AIO/async_io.h ...Ok.
Testing ../../src/DiskIO/Blocking/BlockingDiskIOModule.h ...Ok.
Testing ../../src/DiskIO/Blocking/BlockingFile.h ...Ok.
Testing ../../src/DiskIO/Blocking/BlockingIOStrategy.h ...Ok.
Testing ../../src/DiskIO/DiskDaemon/diomsg.h ...Ok.
Testing ../../src/DiskIO/DiskDaemon/DiskdAction.h ...Ok.
Testing ../../src/DiskIO/DiskDaemon/DiskDaemonDiskIOModule.h ...Ok.
Testing ../../src/DiskIO/DiskDaemon/DiskdFile.h ...Ok.
Testing ../../src/DiskIO/DiskDaemon/DiskdIOStrategy.h ...Ok.
Testing ../../src/DiskIO/DiskThreads/DiskThreadsDiskFile.h ...Ok.
Testing ../../src/DiskIO/DiskThreads/DiskThreadsDiskIOModule.h ...Ok.
Testing ../../src/DiskIO/DiskThreads/DiskThreads.h ...Ok.
Testing ../../src/DiskIO/DiskThreads/DiskThreadsIOStrategy.h ...Ok.
Testing ../../src/DiskIO/IpcIo/IpcIoDiskIOModule.h ...Ok.
Testing ../../src/DiskIO/IpcIo/IpcIoFile.h ...Ok.
Testing ../../src/DiskIO/IpcIo/IpcIoIOStrategy.h ...Ok.
Testing ../../src/DiskIO/Mmapped/MmappedDiskIOModule.h ...Ok.
Testing ../../src/DiskIO/Mmapped/MmappedFile.h ...Ok.
Testing ../../src/DiskIO/Mmapped/MmappedIOStrategy.h ...Ok.
..
OK (2)
PASS: tests/testACLMaxUserIP
.
OK (1)
PASS: tests/testBoilerplate
..
OK (2)
PASS: tests/testCacheManager
.
OK (1)
PASS: tests/testDiskIO
..Actual Text:
Last event to run: last event
Operation \tNext Execution \tWeight\tCallback Valid?
test event \t0.000 sec\t 0\t N/A
test event2 \t0.000 sec\t 0\t N/A
....
OK (6)
PASS: tests/testEvent
...
OK (3)
PASS: tests/testEventLoop
PASS: tests/test_http_range
.
OK (1)
PASS: tests/testHttpParser
.
OK (1)
PASS: tests/testHttpReply
.............
OK (13)
PASS: tests/testHttpRequest
Not implementedNot implementedNot implementedNot implementedNot implementedNot implementedNot implementedNot implementedNot implementedNot implementedNot implementedNot implementedNot implementedNot implementedNot implementedNot implementedNot implementedNot implementedNot implementedNot implementedNot implementedNot implementedNot implementedNot implementedNot implementedNot implemented...........
OK (11)
PASS: tests/testStore
....
OK (4)
PASS: tests/testString
stub time| persistent connection module initialized
..........
OK (10)
PASS: tests/testURL
.
OK (1)
PASS: tests/testConfigParser
Not implementedNot implementedNot implementedNot implementedNot implementedNot implementedNot implementedNot implementedNot implementedNot implementedNot implementedNot implementedNot implementedNot implementedNot implementedNot implementedNot implementedNot implementedNot implemented..
OK (2)
PASS: tests/testRock
Not implementedNot implemented..
OK (2)
PASS: tests/testUfs
PASS: testHeaders
===================
All 17 tests passed
===================
make[5]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/src'>
make[4]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/src'>
make[3]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/src'>
make[2]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/src'>
Making check in tools
make[2]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/tools'>
Making check in purge
make[3]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/tools/purge'>
make
make[4]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/tools/purge'>
make[4]: Nothing to be done for `all'.
make[4]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/tools/purge'>
make check-TESTS
make[4]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/tools/purge'>
make[4]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/tools/purge'>
make[3]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/tools/purge'>
make[3]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/tools'>
make
make[4]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/tools'>
Making all in purge
make[5]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/tools/purge'>
make[5]: Nothing to be done for `all'.
make[5]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/tools/purge'>
make[5]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/tools'>
make[5]: Nothing to be done for `all-am'.
make[5]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/tools'>
make[4]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/tools'>
make check-TESTS
make[4]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/tools'>
make[4]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/tools'>
make[3]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/tools'>
make[2]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/tools'>
Making check in test-suite
make[2]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/test-suite'>
make debug MemPoolTest mem_node_test mem_hdr_test refcount splay StackTest syntheticoperators VirtualDeleteOperator
make[3]: Entering directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/test-suite'>
depbase=`echo debug.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`; \
if g++ -DHAVE_CONFIG_H -I../.. -I../../include -I../../lib -I../../src -I../include -I../../test-suite -Wall -Wpointer-arith -Wwrite-strings -Wcomments -Werror -pipe -D_REENTRANT -g -O2 -MT debug.o -MD -MP -MF "$depbase.Tpo" -c -o debug.o ../../test-suite/debug.cc; \
then mv -f "$depbase.Tpo" "$depbase.Po"; else rm -f "$depbase.Tpo"; exit 1; fi
depbase=`echo test_tools.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`; \
if g++ -DHAVE_CONFIG_H -I../.. -I../../include -I../../lib -I../../src -I../include -I../../test-suite -Wall -Wpointer-arith -Wwrite-strings -Wcomments -Werror -pipe -D_REENTRANT -g -O2 -MT test_tools.o -MD -MP -MF "$depbase.Tpo" -c -o test_tools.o ../../test-suite/test_tools.cc; \
then mv -f "$depbase.Tpo" "$depbase.Po"; else rm -f "$depbase.Tpo"; exit 1; fi
depbase=`echo stub_debug.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`; \
if g++ -DHAVE_CONFIG_H -I../.. -I../../include -I../../lib -I../../src -I../include -I../../test-suite -Wall -Wpointer-arith -Wwrite-strings -Wcomments -Werror -pipe -D_REENTRANT -g -O2 -MT stub_debug.o -MD -MP -MF "$depbase.Tpo" -c -o stub_debug.o ../../test-suite/stub_debug.cc; \
then mv -f "$depbase.Tpo" "$depbase.Po"; else rm -f "$depbase.Tpo"; exit 1; fi
depbase=`echo MemPoolTest.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`; \
if g++ -DHAVE_CONFIG_H -I../.. -I../../include -I../../lib -I../../src -I../include -I../../test-suite -Wall -Wpointer-arith -Wwrite-strings -Wcomments -Werror -pipe -D_REENTRANT -g -O2 -MT MemPoolTest.o -MD -MP -MF "$depbase.Tpo" -c -o MemPoolTest.o ../../test-suite/MemPoolTest.cc; \
then mv -f "$depbase.Tpo" "$depbase.Po"; else rm -f "$depbase.Tpo"; exit 1; fi
depbase=`echo mem_node_test.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`; \
if g++ -DHAVE_CONFIG_H -I../.. -I../../include -I../../lib -I../../src -I../include -I../../test-suite -Wall -Wpointer-arith -Wwrite-strings -Wcomments -Werror -pipe -D_REENTRANT -g -O2 -MT mem_node_test.o -MD -MP -MF "$depbase.Tpo" -c -o mem_node_test.o ../../test-suite/mem_node_test.cc; \
then mv -f "$depbase.Tpo" "$depbase.Po"; else rm -f "$depbase.Tpo"; exit 1; fi
depbase=`echo mem_hdr_test.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`; \
if g++ -DHAVE_CONFIG_H -I../.. -I../../include -I../../lib -I../../src -I../include -I../../test-suite -Wall -Wpointer-arith -Wwrite-strings -Wcomments -Werror -pipe -D_REENTRANT -g -O2 -MT mem_hdr_test.o -MD -MP -MF "$depbase.Tpo" -c -o mem_hdr_test.o ../../test-suite/mem_hdr_test.cc; \
then mv -f "$depbase.Tpo" "$depbase.Po"; else rm -f "$depbase.Tpo"; exit 1; fi
depbase=`echo refcount.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`; \
if g++ -DHAVE_CONFIG_H -I../.. -I../../include -I../../lib -I../../src -I../include -I../../test-suite -Wall -Wpointer-arith -Wwrite-strings -Wcomments -Werror -pipe -D_REENTRANT -g -O2 -MT refcount.o -MD -MP -MF "$depbase.Tpo" -c -o refcount.o ../../test-suite/refcount.cc; \
then mv -f "$depbase.Tpo" "$depbase.Po"; else rm -f "$depbase.Tpo"; exit 1; fi
../../test-suite/mem_hdr_test.cc: In function ‘void testLowAndHigh()’:
../../test-suite/mem_hdr_test.cc:60: error: call of overloaded ‘StoreIOBuffer(int, int, NULL)’ is ambiguous
../../src/StoreIOBuffer.h:62: note: candidates are: StoreIOBuffer::StoreIOBuffer(MemBuf*, int64_t, size_t)
../../src/StoreIOBuffer.h:48: note: StoreIOBuffer::StoreIOBuffer(size_t, int64_t, char*)
make[3]: *** [mem_hdr_test.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/test-suite'>
make[2]: *** [check-am] Error 2
make[2]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/_build/test-suite'>
make[1]: *** [check-recursive] Error 1
make[1]: Leaving directory `<http://build.squid-cache.org/job/3.HEAD-amd64-CentOS-5.3/ws/btlayer-00-default/squid-3.HEAD-BZR/_build'>
make: *** [distcheck] Error 2
buildtest.sh result is 2
BUILD: .././test-suite/buildtests/layer-00-default.opts
configure: BUILD LIBRARIES:
configure: BUILD EXTRA LIBRARIES: -lm -lnsl -lresolv -lrt -ldl -ldl
configure: BUILD OBJECTS:
configure: BUILD EXTRA OBJECTS:
configure: BUILD C FLAGS:
configure: BUILD EXTRA C FLAGS: -Wall -Wpointer-arith -Wwrite-strings -Wmissing-prototypes -Wmissing-declarations -Wcomments -Werror -pipe -D_REENTRANT
configure: BUILD C++ FLAGS: -g -O2
configure: BUILD EXTRA C++ FLAGS: -Wall -Wpointer-arith -Wwrite-strings -Wcomments -Werror -pipe -D_REENTRANT
configure: BUILD LIBRARIES:
configure: BUILD EXTRA LIBRARIES: -lm -lnsl -lresolv -lrt -ldl -ldl
configure: BUILD OBJECTS:
configure: BUILD EXTRA OBJECTS:
configure: BUILD C FLAGS:
configure: BUILD EXTRA C FLAGS: -Wall -Wpointer-arith -Wwrite-strings -Wmissing-prototypes -Wmissing-declarations -Wcomments -Werror -pipe -D_REENTRANT
configure: BUILD C++ FLAGS: -g -O2
configure: BUILD EXTRA C++ FLAGS: -Wall -Wpointer-arith -Wwrite-strings -Wcomments -Werror -pipe -D_REENTRANT
../../test-suite/mem_hdr_test.cc:60: error: call of overloaded ‘StoreIOBuffer(int, int, NULL)’ is ambiguous
make[3]: *** [mem_hdr_test.o] Error 1
make[2]: *** [check-am] Error 2
make[1]: *** [check-recursive] Error 1
make: *** [distcheck] Error 2
Build FAILED.
Build step 'Execute shell' marked build as failure
Received on Fri Nov 18 2011 - 17:28:26 MST
This archive was generated by hypermail 2.2.0 : Sat Nov 19 2011 - 12:00:06 MST