Re: Squid 3.1.0.5 uses memory without bounds

From: Steinar H. Gunderson <sgunderson_at_bigfoot.com>
Date: Fri, 13 Feb 2009 11:55:28 +0100

On Fri, Feb 13, 2009 at 09:01:35PM +1300, Amos Jeffries wrote:
> A few things are still a little hidden due to the compiler optimizations
> and valgrind behavior, would it be possible that you rebuild squid with
> --disable-optimizations and also make sure that --enable-valgrind is
> used. Then generate a new valgrind trace from the rebuild Squid?

Here's a new run. I only let it run for a few minutes, though, so the numbers
are pretty small (and their relative sizes may not be representable for a
long-running Squid):

  ==26729== Syscall param write(buf) points to uninitialised byte(s)
  ==26729== at 0x4E33720: __write_nocancel (in /lib/libpthread-2.7.so)
  ==26729== by 0x50F7BC: default_write_method(int, char const*, int) (fd.cc:167)
  ==26729== by 0x5CB5F2: UFSCleanLog::write(StoreEntry const&) (store_dir_ufs.cc:941)
  ==26729== by 0x593778: storeDirWriteCleanLogs (store_dir.cc:475)
  ==26729== by 0x5595DD: SquidShutdown() (main.cc:1686)
  ==26729== by 0x55B259: SquidMain(int, char**) (main.cc:1352)
  ==26729== by 0x55B3D8: SquidMainSafe(int, char**) (main.cc:1110)
  ==26729== by 0x55B4D1: main (main.cc:1103)
  ==26729== Address 0xcd71201 is 1 bytes inside a block of size 16,384 alloc'd
  ==26729== at 0x4C206F4: calloc (vg_replace_malloc.c:397)
  ==26729== by 0x619727: xcalloc (util.c:688)
  ==26729== by 0x5CC26C: UFSSwapDir::writeCleanStart() (store_dir_ufs.cc:883)
  ==26729== by 0x593591: storeDirWriteCleanLogs (store_dir.cc:445)
  ==26729== by 0x5595DD: SquidShutdown() (main.cc:1686)
  ==26729== by 0x55B259: SquidMain(int, char**) (main.cc:1352)
  ==26729== by 0x55B3D8: SquidMainSafe(int, char**) (main.cc:1110)
  ==26729== by 0x55B4D1: main (main.cc:1103)
  ==26729==
  ==26729== Syscall param write(buf) points to uninitialised byte(s)
  ==26729== at 0x4E33720: __write_nocancel (in /lib/libpthread-2.7.so)
  ==26729== by 0x50F7BC: default_write_method(int, char const*, int) (fd.cc:167)
  ==26729== by 0x5CB88B: UFSSwapDir::writeCleanDone() (store_dir_ufs.cc:971)
  ==26729== by 0x593892: storeDirWriteCleanLogs (store_dir.cc:487)
  ==26729== by 0x5595DD: SquidShutdown() (main.cc:1686)
  ==26729== by 0x55B259: SquidMain(int, char**) (main.cc:1352)
  ==26729== by 0x55B3D8: SquidMainSafe(int, char**) (main.cc:1110)
  ==26729== by 0x55B4D1: main (main.cc:1103)
  ==26729== Address 0xcd71201 is 1 bytes inside a block of size 16,384 alloc'd
  ==26729== at 0x4C206F4: calloc (vg_replace_malloc.c:397)
  ==26729== by 0x619727: xcalloc (util.c:688)
  ==26729== by 0x5CC26C: UFSSwapDir::writeCleanStart() (store_dir_ufs.cc:883)
  ==26729== by 0x593591: storeDirWriteCleanLogs (store_dir.cc:445)
  ==26729== by 0x5595DD: SquidShutdown() (main.cc:1686)
  ==26729== by 0x55B259: SquidMain(int, char**) (main.cc:1352)
  ==26729== by 0x55B3D8: SquidMainSafe(int, char**) (main.cc:1110)
  ==26729== by 0x55B4D1: main (main.cc:1103)
  ==26729==
  ==26729== Invalid read of size 1
  ==26729== at 0x5B0F6B: isOpen(int) (comm.cc:284)
  ==26729== by 0x5B1D0A: comm_remove_close_handler(int, RefCount<AsyncCall>&) (comm.cc:1704)
  ==26729== by 0x5B1E15: DeferredReadManager::popHead(CbDataListContainer<DeferredRead>&) (comm.cc:2521)
  ==26729== by 0x5B1EE0: DeferredReadManager::flushReads() (comm.cc:2557)
  ==26729== by 0x5B1F97: DeferredReadManager::~DeferredReadManager() (comm.cc:2479)
  ==26729== by 0x55FCD8: MemObject::~MemObject() (MemObject.cc:129)
  ==26729== by 0x58900F: StoreEntry::destroyMemObject() (store.cc:376)
  ==26729== by 0x589765: destroyStoreEntry(void*) (store.cc:389)
  ==26729== by 0x612AE6: hashFreeItems (hash.c:308)
  ==26729== by 0x591E53: StoreHashIndex::~StoreHashIndex() (store_dir.cc:718)
  ==26729== by 0x593F0A: RefCount<StoreHashIndex>::dereference(StoreHashIndex const*) (RefCount.h:100)
  ==26729== by 0x593F27: RefCount<StoreHashIndex>::~RefCount() (RefCount.h:52)
  ==26729== Address 0x70d8 is not stack'd, malloc'd or (recently) free'd
  ==26729==
  ==26729== Process terminating with default action of signal 11 (SIGSEGV)
  ==26729== Access not within mapped region at address 0x70D8
  ==26729== at 0x5B0F6B: isOpen(int) (comm.cc:284)
  ==26729== by 0x5B1D0A: comm_remove_close_handler(int, RefCount<AsyncCall>&) (comm.cc:1704)
  ==26729== by 0x5B1E15: DeferredReadManager::popHead(CbDataListContainer<DeferredRead>&) (comm.cc:2521)
  ==26729== by 0x5B1EE0: DeferredReadManager::flushReads() (comm.cc:2557)
  ==26729== by 0x5B1F97: DeferredReadManager::~DeferredReadManager() (comm.cc:2479)
  ==26729== by 0x55FCD8: MemObject::~MemObject() (MemObject.cc:129)
  ==26729== by 0x58900F: StoreEntry::destroyMemObject() (store.cc:376)
  ==26729== by 0x589765: destroyStoreEntry(void*) (store.cc:389)
  ==26729== by 0x612AE6: hashFreeItems (hash.c:308)
  ==26729== by 0x591E53: StoreHashIndex::~StoreHashIndex() (store_dir.cc:718)
  ==26729== by 0x593F0A: RefCount<StoreHashIndex>::dereference(StoreHashIndex const*) (RefCount.h:100)
  ==26729== by 0x593F27: RefCount<StoreHashIndex>::~RefCount() (RefCount.h:52)
  ==26729== If you believe this happened as a result of a stack overflow in your
  ==26729== program's main thread (unlikely but possible), you can try to increase
  ==26729== the size of the main thread stack using the --main-stacksize= flag.
  ==26729== The main thread stack size used in this run was 8388608.
  ==26729==
  ==26729== ERROR SUMMARY: 220 errors from 4 contexts (suppressed: 36 from 3)
  ==26729== malloc/free: in use at exit: 74,689,978 bytes in 253,625 blocks.
  ==26729== malloc/free: 1,012,742 allocs, 759,117 frees, 150,985,269 bytes allocated.
  ==26729== For counts of detected errors, rerun with: -v
  ==26729== Use --track-origins=yes to see where uninitialised values come from
  ==26729== searching for pointers to 253,625 not-freed blocks.
  ==26729== checked 70,536,448 bytes.
  ==26729==
  ==26729==
  ==26729== 32 bytes in 1 blocks are still reachable in loss record 1 of 29
  ==26729== at 0x4C206F4: calloc (vg_replace_malloc.c:397)
  ==26729== by 0x6102548: (within /lib/libc-2.7.so)
  ==26729== by 0x6104272: (within /lib/libc-2.7.so)
  ==26729== by 0x610431F: (within /lib/libc-2.7.so)
  ==26729== by 0x6104708: (within /lib/libc-2.7.so)
  ==26729== by 0x61060E2: regcomp (in /lib/libc-2.7.so)
  ==26729== by 0x561F1A: mimeInit (mime.cc:461)
  ==26729== by 0x55A66E: mainInitialize() (main.cc:971)
  ==26729== by 0x55B198: SquidMain(int, char**) (main.cc:1313)
  ==26729== by 0x55B3D8: SquidMainSafe(int, char**) (main.cc:1110)
  ==26729== by 0x55B4D1: main (main.cc:1103)
  ==26729==
  ==26729==
  ==26729== 536 (104 direct, 432 indirect) bytes in 2 blocks are definitely lost in loss record 2 of 29
  ==26729== at 0x4C2291E: malloc (vg_replace_malloc.c:207)
  ==26729== by 0x612E52F: (within /lib/libc-2.7.so)
  ==26729== by 0x612ED06: __nss_database_lookup (in /lib/libc-2.7.so)
  ==26729== by 0x69B131F: ???
  ==26729== by 0x69B23D6: ???
  ==26729== by 0x60ECEA2: getpwnam_r (in /lib/libc-2.7.so)
  ==26729== by 0x60EC85F: getpwnam (in /lib/libc-2.7.so)
  ==26729== by 0x4BCF61: configDoConfigure() (cache_cf.cc:622)
  ==26729== by 0x4C4934: parseConfigFile(char const*) (cache_cf.cc:401)
  ==26729== by 0x55AFA4: SquidMain(int, char**) (main.cc:1232)
  ==26729== by 0x55B3D8: SquidMainSafe(int, char**) (main.cc:1110)
  ==26729== by 0x55B4D1: main (main.cc:1103)
  ==26729==
  ==26729==
  ==26729== 144 bytes in 9 blocks are indirectly lost in loss record 3 of 29
  ==26729== at 0x4C2291E: malloc (vg_replace_malloc.c:207)
  ==26729== by 0x612E119: __nss_lookup_function (in /lib/libc-2.7.so)
  ==26729== by 0x69B133A: ???
  ==26729== by 0x69B23D6: ???
  ==26729== by 0x60ECEA2: getpwnam_r (in /lib/libc-2.7.so)
  ==26729== by 0x60EC85F: getpwnam (in /lib/libc-2.7.so)
  ==26729== by 0x4BCF61: configDoConfigure() (cache_cf.cc:622)
  ==26729== by 0x4C4934: parseConfigFile(char const*) (cache_cf.cc:401)
  ==26729== by 0x55AFA4: SquidMain(int, char**) (main.cc:1232)
  ==26729== by 0x55B3D8: SquidMainSafe(int, char**) (main.cc:1110)
  ==26729== by 0x55B4D1: main (main.cc:1103)
  ==26729==
  ==26729==
  ==26729== 288 bytes in 9 blocks are indirectly lost in loss record 4 of 29
  ==26729== at 0x4C2291E: malloc (vg_replace_malloc.c:207)
  ==26729== by 0x611DEC3: tsearch (in /lib/libc-2.7.so)
  ==26729== by 0x612E0B9: __nss_lookup_function (in /lib/libc-2.7.so)
  ==26729== by 0x69B133A: ???
  ==26729== by 0x69B23D6: ???
  ==26729== by 0x60ECEA2: getpwnam_r (in /lib/libc-2.7.so)
  ==26729== by 0x60EC85F: getpwnam (in /lib/libc-2.7.so)
  ==26729== by 0x4BCF61: configDoConfigure() (cache_cf.cc:622)
  ==26729== by 0x4C4934: parseConfigFile(char const*) (cache_cf.cc:401)
  ==26729== by 0x55AFA4: SquidMain(int, char**) (main.cc:1232)
  ==26729== by 0x55B3D8: SquidMainSafe(int, char**) (main.cc:1110)
  ==26729== by 0x55B4D1: main (main.cc:1103)
  ==26729==
  ==26729==
  ==26729== 568 bytes in 1 blocks are still reachable in loss record 5 of 29
  ==26729== at 0x4C2291E: malloc (vg_replace_malloc.c:207)
  ==26729== by 0x60B4749: (within /lib/libc-2.7.so)
  ==26729== by 0x4EFF07: debugOpenLog(char const*) (debug.cc:264)
  ==26729== by 0x4F0836: _db_init (debug.cc:461)
  ==26729== by 0x55A4AB: mainInitialize() (main.cc:868)
  ==26729== by 0x55B198: SquidMain(int, char**) (main.cc:1313)
  ==26729== by 0x55B3D8: SquidMainSafe(int, char**) (main.cc:1110)
  ==26729== by 0x55B4D1: main (main.cc:1103)
  ==26729==
  ==26729==
  ==26729== 608 bytes in 2 blocks are still reachable in loss record 6 of 29
  ==26729== at 0x4C22A51: realloc (vg_replace_malloc.c:429)
  ==26729== by 0x61968C: xrealloc (util.c:631)
  ==26729== by 0x5867E5: storeReplAdd (store.cc:1714)
  ==26729== by 0x5AF9B3: storeReplSetup (repl_modules.cc:12)
  ==26729== by 0x586853: storeFsInit (store.cc:1697)
  ==26729== by 0x55AF65: SquidMain(int, char**) (main.cc:1221)
  ==26729== by 0x55B3D8: SquidMainSafe(int, char**) (main.cc:1110)
  ==26729== by 0x55B4D1: main (main.cc:1103)
  ==26729==
  ==26729==
  ==26729== 756 bytes in 189 blocks are still reachable in loss record 7 of 29
  ==26729== at 0x4C2291E: malloc (vg_replace_malloc.c:207)
  ==26729== by 0x60F6E19: (within /lib/libc-2.7.so)
  ==26729== by 0x60F634B: (within /lib/libc-2.7.so)
  ==26729== by 0x61048EC: (within /lib/libc-2.7.so)
  ==26729== by 0x61060E2: regcomp (in /lib/libc-2.7.so)
  ==26729== by 0x561F1A: mimeInit (mime.cc:461)
  ==26729== by 0x55A66E: mainInitialize() (main.cc:971)
  ==26729== by 0x55B198: SquidMain(int, char**) (main.cc:1313)
  ==26729== by 0x55B3D8: SquidMainSafe(int, char**) (main.cc:1110)
  ==26729== by 0x55B4D1: main (main.cc:1103)
  ==26729==
  ==26729==
  ==26729== 1,008 bytes in 63 blocks are still reachable in loss record 8 of 29
  ==26729== at 0x4C2291E: malloc (vg_replace_malloc.c:207)
  ==26729== by 0x60FB1CB: (within /lib/libc-2.7.so)
  ==26729== by 0x6104CF7: (within /lib/libc-2.7.so)
  ==26729== by 0x61060E2: regcomp (in /lib/libc-2.7.so)
  ==26729== by 0x561F1A: mimeInit (mime.cc:461)
  ==26729== by 0x55A66E: mainInitialize() (main.cc:971)
  ==26729== by 0x55B198: SquidMain(int, char**) (main.cc:1313)
  ==26729== by 0x55B3D8: SquidMainSafe(int, char**) (main.cc:1110)
  ==26729== by 0x55B4D1: main (main.cc:1103)
  ==26729==
  ==26729==
  ==26729== 1,672 bytes in 292 blocks are still reachable in loss record 9 of 29
  ==26729== at 0x4C2291E: malloc (vg_replace_malloc.c:207)
  ==26729== by 0x60F8356: (within /lib/libc-2.7.so)
  ==26729== by 0x60FAF96: (within /lib/libc-2.7.so)
  ==26729== by 0x6104CF7: (within /lib/libc-2.7.so)
  ==26729== by 0x61060E2: regcomp (in /lib/libc-2.7.so)
  ==26729== by 0x4BEC6B: parse_refreshpattern(_refresh_t**) (cache_cf.cc:2314)
  ==26729== by 0x4C1EB5: parse_line(char*) (cf_parser.h:1042)
  ==26729== by 0x4C4773: parseOneConfigFile(char const*, unsigned int) (cache_cf.cc:357)
  ==26729== by 0x4C4927: parseConfigFile(char const*) (cache_cf.cc:392)
  ==26729== by 0x55AFA4: SquidMain(int, char**) (main.cc:1232)
  ==26729== by 0x55B3D8: SquidMainSafe(int, char**) (main.cc:1110)
  ==26729== by 0x55B4D1: main (main.cc:1103)
  ==26729==
  ==26729==
  ==26729== 1,968 bytes in 15 blocks are still reachable in loss record 10 of 29
  ==26729== at 0x4C22A51: realloc (vg_replace_malloc.c:429)
  ==26729== by 0x60F892A: (within /lib/libc-2.7.so)
  ==26729== by 0x60F89D7: (within /lib/libc-2.7.so)
  ==26729== by 0x60F8CDD: (within /lib/libc-2.7.so)
  ==26729== by 0x60F8F3E: (within /lib/libc-2.7.so)
  ==26729== by 0x6104957: (within /lib/libc-2.7.so)
  ==26729== by 0x61060E2: regcomp (in /lib/libc-2.7.so)
  ==26729== by 0x561F1A: mimeInit (mime.cc:461)
  ==26729== by 0x55A66E: mainInitialize() (main.cc:971)
  ==26729== by 0x55B198: SquidMain(int, char**) (main.cc:1313)
  ==26729== by 0x55B3D8: SquidMainSafe(int, char**) (main.cc:1110)
  ==26729== by 0x55B4D1: main (main.cc:1103)
  ==26729==
  ==26729==
  ==26729== 3,120 bytes in 3 blocks are still reachable in loss record 11 of 29
  ==26729== at 0x4C206F4: calloc (vg_replace_malloc.c:397)
  ==26729== by 0x6084B87: (within /lib/libc-2.7.so)
  ==26729== by 0x6084C60: __cxa_atexit (in /lib/libc-2.7.so)
  ==26729== by 0x5D6615: __static_initialization_and_destruction_0(int, int) (iostream:77)
  ==26729== by 0x5D662A: global constructors keyed to _ZN12BlockingFile19CBDATA_BlockingFileE (BlockingFile.cc:232)
  ==26729== by 0x61E0B5: (within /usr/local/squid3/sbin/squid)
  ==26729== by 0x49A0C2: (within /usr/local/squid3/sbin/squid)
  ==26729==
  ==26729==
  ==26729== 4,104 bytes in 3 blocks are possibly lost in loss record 12 of 29
  ==26729== at 0x4C2291E: malloc (vg_replace_malloc.c:207)
  ==26729== by 0x6195C3: xmalloc (util.c:506)
  ==26729== by 0x579EB0: operator new[](unsigned long) (SquidNew.h:56)
  ==26729== by 0x5496A7: httpHeaderBuildFieldsInfo (HttpHeaderTools.cc:53)
  ==26729== by 0x548282: httpHeaderInitModule (HttpHeader.cc:288)
  ==26729== by 0x55A61C: mainInitialize() (main.cc:936)
  ==26729== by 0x55B198: SquidMain(int, char**) (main.cc:1313)
  ==26729== by 0x55B3D8: SquidMainSafe(int, char**) (main.cc:1110)
  ==26729== by 0x55B4D1: main (main.cc:1103)
  ==26729==
  ==26729==
  ==26729== 4,632 bytes in 162 blocks are still reachable in loss record 13 of 29
  ==26729== at 0x4C2291E: malloc (vg_replace_malloc.c:207)
  ==26729== by 0x6104774: (within /lib/libc-2.7.so)
  ==26729== by 0x61060E2: regcomp (in /lib/libc-2.7.so)
  ==26729== by 0x4BEC6B: parse_refreshpattern(_refresh_t**) (cache_cf.cc:2314)
  ==26729== by 0x4C1EB5: parse_line(char*) (cf_parser.h:1042)
  ==26729== by 0x4C4773: parseOneConfigFile(char const*, unsigned int) (cache_cf.cc:357)
  ==26729== by 0x4C4927: parseConfigFile(char const*) (cache_cf.cc:392)
  ==26729== by 0x55AFA4: SquidMain(int, char**) (main.cc:1232)
  ==26729== by 0x55B3D8: SquidMainSafe(int, char**) (main.cc:1110)
  ==26729== by 0x55B4D1: main (main.cc:1103)
  ==26729==
  ==26729==
  ==26729== 7,396 bytes in 1,657 blocks are still reachable in loss record 14 of 29
  ==26729== at 0x4C2291E: malloc (vg_replace_malloc.c:207)
  ==26729== by 0x60F6DDC: (within /lib/libc-2.7.so)
  ==26729== by 0x60F8D92: (within /lib/libc-2.7.so)
  ==26729== by 0x6104957: (within /lib/libc-2.7.so)
  ==26729== by 0x61060E2: regcomp (in /lib/libc-2.7.so)
  ==26729== by 0x4BEC6B: parse_refreshpattern(_refresh_t**) (cache_cf.cc:2314)
  ==26729== by 0x4C1EB5: parse_line(char*) (cf_parser.h:1042)
  ==26729== by 0x4C4773: parseOneConfigFile(char const*, unsigned int) (cache_cf.cc:357)
  ==26729== by 0x4C4927: parseConfigFile(char const*) (cache_cf.cc:392)
  ==26729== by 0x55AFA4: SquidMain(int, char**) (main.cc:1232)
  ==26729== by 0x55B3D8: SquidMainSafe(int, char**) (main.cc:1110)
  ==26729== by 0x55B4D1: main (main.cc:1103)
  ==26729==
  ==26729==
  ==26729== 7,872 bytes in 15 blocks are still reachable in loss record 15 of 29
  ==26729== at 0x4C22A51: realloc (vg_replace_malloc.c:429)
  ==26729== by 0x60F8957: (within /lib/libc-2.7.so)
  ==26729== by 0x60F89D7: (within /lib/libc-2.7.so)
  ==26729== by 0x60F8CDD: (within /lib/libc-2.7.so)
  ==26729== by 0x60F8F3E: (within /lib/libc-2.7.so)
  ==26729== by 0x6104957: (within /lib/libc-2.7.so)
  ==26729== by 0x61060E2: regcomp (in /lib/libc-2.7.so)
  ==26729== by 0x561F1A: mimeInit (mime.cc:461)
  ==26729== by 0x55A66E: mainInitialize() (main.cc:971)
  ==26729== by 0x55B198: SquidMain(int, char**) (main.cc:1313)
  ==26729== by 0x55B3D8: SquidMainSafe(int, char**) (main.cc:1110)
  ==26729== by 0x55B4D1: main (main.cc:1103)
  ==26729==
  ==26729==
  ==26729== 7,872 bytes in 15 blocks are still reachable in loss record 16 of 29
  ==26729== at 0x4C22A51: realloc (vg_replace_malloc.c:429)
  ==26729== by 0x60F8948: (within /lib/libc-2.7.so)
  ==26729== by 0x60F89D7: (within /lib/libc-2.7.so)
  ==26729== by 0x60F8CDD: (within /lib/libc-2.7.so)
  ==26729== by 0x60F8F3E: (within /lib/libc-2.7.so)
  ==26729== by 0x6104957: (within /lib/libc-2.7.so)
  ==26729== by 0x61060E2: regcomp (in /lib/libc-2.7.so)
  ==26729== by 0x561F1A: mimeInit (mime.cc:461)
  ==26729== by 0x55A66E: mainInitialize() (main.cc:971)
  ==26729== by 0x55B198: SquidMain(int, char**) (main.cc:1313)
  ==26729== by 0x55B3D8: SquidMainSafe(int, char**) (main.cc:1110)
  ==26729== by 0x55B4D1: main (main.cc:1103)
  ==26729==
  ==26729==
  ==26729== 7,872 bytes in 15 blocks are still reachable in loss record 17 of 29
  ==26729== at 0x4C22A51: realloc (vg_replace_malloc.c:429)
  ==26729== by 0x60F8911: (within /lib/libc-2.7.so)
  ==26729== by 0x60F89D7: (within /lib/libc-2.7.so)
  ==26729== by 0x60F8CDD: (within /lib/libc-2.7.so)
  ==26729== by 0x60F8F3E: (within /lib/libc-2.7.so)
  ==26729== by 0x6104957: (within /lib/libc-2.7.so)
  ==26729== by 0x61060E2: regcomp (in /lib/libc-2.7.so)
  ==26729== by 0x561F1A: mimeInit (mime.cc:461)
  ==26729== by 0x55A66E: mainInitialize() (main.cc:971)
  ==26729== by 0x55B198: SquidMain(int, char**) (main.cc:1313)
  ==26729== by 0x55B3D8: SquidMainSafe(int, char**) (main.cc:1110)
  ==26729== by 0x55B4D1: main (main.cc:1103)
  ==26729==
  ==26729==
  ==26729== 10,240 bytes in 5 blocks are still reachable in loss record 18 of 29
  ==26729== at 0x4C206F4: calloc (vg_replace_malloc.c:397)
  ==26729== by 0x60FEE09: (within /lib/libc-2.7.so)
  ==26729== by 0x61002D9: (within /lib/libc-2.7.so)
  ==26729== by 0x610118D: regexec (in /lib/libc-2.7.so)
  ==26729== by 0x560DA4: mimeGetEntry(char const*, int) (mime.cc:236)
  ==26729== by 0x560F89: mimeGetContentType (mime.cc:324)
  ==26729== by 0x5614D7: MimeIcon::load() (mime.cc:523)
  ==26729== by 0x562165: mimeInit (mime.cc:497)
  ==26729== by 0x55A66E: mainInitialize() (main.cc:971)
  ==26729== by 0x55B198: SquidMain(int, char**) (main.cc:1313)
  ==26729== by 0x55B3D8: SquidMainSafe(int, char**) (main.cc:1110)
  ==26729== by 0x55B4D1: main (main.cc:1103)
  ==26729==
  ==26729==
  ==26729== 18,528 bytes in 162 blocks are still reachable in loss record 19 of 29
  ==26729== at 0x4C2291E: malloc (vg_replace_malloc.c:207)
  ==26729== by 0x61047AD: (within /lib/libc-2.7.so)
  ==26729== by 0x61060E2: regcomp (in /lib/libc-2.7.so)
  ==26729== by 0x4BEC6B: parse_refreshpattern(_refresh_t**) (cache_cf.cc:2314)
  ==26729== by 0x4C1EB5: parse_line(char*) (cf_parser.h:1042)
  ==26729== by 0x4C4773: parseOneConfigFile(char const*, unsigned int) (cache_cf.cc:357)
  ==26729== by 0x4C4927: parseConfigFile(char const*) (cache_cf.cc:392)
  ==26729== by 0x55AFA4: SquidMain(int, char**) (main.cc:1232)
  ==26729== by 0x55B3D8: SquidMainSafe(int, char**) (main.cc:1110)
  ==26729== by 0x55B4D1: main (main.cc:1103)
  ==26729==
  ==26729==
  ==26729== 18,528 bytes in 162 blocks are still reachable in loss record 20 of 29
  ==26729== at 0x4C2291E: malloc (vg_replace_malloc.c:207)
  ==26729== by 0x610479A: (within /lib/libc-2.7.so)
  ==26729== by 0x61060E2: regcomp (in /lib/libc-2.7.so)
  ==26729== by 0x4BEC6B: parse_refreshpattern(_refresh_t**) (cache_cf.cc:2314)
  ==26729== by 0x4C1EB5: parse_line(char*) (cf_parser.h:1042)
  ==26729== by 0x4C4773: parseOneConfigFile(char const*, unsigned int) (cache_cf.cc:357)
  ==26729== by 0x4C4927: parseConfigFile(char const*) (cache_cf.cc:392)
  ==26729== by 0x55AFA4: SquidMain(int, char**) (main.cc:1232)
  ==26729== by 0x55B3D8: SquidMainSafe(int, char**) (main.cc:1110)
  ==26729== by 0x55B4D1: main (main.cc:1103)
  ==26729==
  ==26729==
  ==26729== 18,528 bytes in 162 blocks are still reachable in loss record 21 of 29
  ==26729== at 0x4C2291E: malloc (vg_replace_malloc.c:207)
  ==26729== by 0x6104494: (within /lib/libc-2.7.so)
  ==26729== by 0x61060E2: regcomp (in /lib/libc-2.7.so)
  ==26729== by 0x4BEC6B: parse_refreshpattern(_refresh_t**) (cache_cf.cc:2314)
  ==26729== by 0x4C1EB5: parse_line(char*) (cf_parser.h:1042)
  ==26729== by 0x4C4773: parseOneConfigFile(char const*, unsigned int) (cache_cf.cc:357)
  ==26729== by 0x4C4927: parseConfigFile(char const*) (cache_cf.cc:392)
  ==26729== by 0x55AFA4: SquidMain(int, char**) (main.cc:1232)
  ==26729== by 0x55B3D8: SquidMainSafe(int, char**) (main.cc:1110)
  ==26729== by 0x55B4D1: main (main.cc:1103)
  ==26729==
  ==26729==
  ==26729== 19,552 bytes in 188 blocks are indirectly lost in loss record 22 of 29
  ==26729== at 0x4C2291E: malloc (vg_replace_malloc.c:207)
  ==26729== by 0x6195C3: xmalloc (util.c:506)
  ==26729== by 0x579EE3: operator new(unsigned long) (SquidNew.h:48)
  ==26729== by 0x5BB7BE: CommCbFunPtrCallT<CommCloseCbPtrFun>* commCbCall<CommCloseCbPtrFun>(int, int, char const*, CommCloseCbPtrFun const&) (CommCalls.h:279)
  ==26729== by 0x5B2204: DeferredReadManager::delayRead(DeferredRead const&) (comm.cc:2499)
  ==26729== by 0x55F0C3: MemObject::delayRead(DeferredRead const&) (MemObject.cc:405)
  ==26729== by 0x589C11: StoreEntry::delayAwareRead(int, char*, int, RefCount<AsyncCall>) (store.cc:241)
  ==26729== by 0x5370E5: HttpStateData::maybeReadVirginBody() (http.cc:1332)
  ==26729== by 0x5382C8: HttpStateData::processReplyBody() (http.cc:1301)
  ==26729== by 0x538F74: HttpStateData::readReply(CommIoCbParams const&) (http.cc:1107)
  ==26729== by 0x53BBF5: CommCbMemFunT<HttpStateData, CommIoCbParams>::doDial() (CommCalls.h:163)
  ==26729== by 0x5BE82E: JobDialer::dial(AsyncCall&) (AsyncJob.cc:215)
  ==26729==
  ==26729==
  ==26729== 20,152 bytes in 229 blocks are still reachable in loss record 23 of 29
  ==26729== at 0x4C206F4: calloc (vg_replace_malloc.c:397)
  ==26729== by 0x60FAF76: (within /lib/libc-2.7.so)
  ==26729== by 0x6104CF7: (within /lib/libc-2.7.so)
  ==26729== by 0x61060E2: regcomp (in /lib/libc-2.7.so)
  ==26729== by 0x4BEC6B: parse_refreshpattern(_refresh_t**) (cache_cf.cc:2314)
  ==26729== by 0x4C1EB5: parse_line(char*) (cf_parser.h:1042)
  ==26729== by 0x4C4773: parseOneConfigFile(char const*, unsigned int) (cache_cf.cc:357)
  ==26729== by 0x4C4927: parseConfigFile(char const*) (cache_cf.cc:392)
  ==26729== by 0x55AFA4: SquidMain(int, char**) (main.cc:1232)
  ==26729== by 0x55B3D8: SquidMainSafe(int, char**) (main.cc:1110)
  ==26729== by 0x55B4D1: main (main.cc:1103)
  ==26729==
  ==26729==
  ==26729== 28,096 bytes in 177 blocks are still reachable in loss record 24 of 29
  ==26729== at 0x4C206F4: calloc (vg_replace_malloc.c:397)
  ==26729== by 0x61044C5: (within /lib/libc-2.7.so)
  ==26729== by 0x61060E2: regcomp (in /lib/libc-2.7.so)
  ==26729== by 0x4BEC6B: parse_refreshpattern(_refresh_t**) (cache_cf.cc:2314)
  ==26729== by 0x4C1EB5: parse_line(char*) (cf_parser.h:1042)
  ==26729== by 0x4C4773: parseOneConfigFile(char const*, unsigned int) (cache_cf.cc:357)
  ==26729== by 0x4C4927: parseConfigFile(char const*) (cache_cf.cc:392)
  ==26729== by 0x55AFA4: SquidMain(int, char**) (main.cc:1232)
  ==26729== by 0x55B3D8: SquidMainSafe(int, char**) (main.cc:1110)
  ==26729== by 0x55B4D1: main (main.cc:1103)
  ==26729==
  ==26729==
  ==26729== 34,496 (14,944 direct, 19,552 indirect) bytes in 110 blocks are definitely lost in loss record 25 of 29
  ==26729== at 0x4C2291E: malloc (vg_replace_malloc.c:207)
  ==26729== by 0x6195C3: xmalloc (util.c:506)
  ==26729== by 0x579EE3: operator new(unsigned long) (SquidNew.h:48)
  ==26729== by 0x4DA40A: AsyncCall* asyncCall<CommCbMemFunT<ConnStateData, CommCloseCbParams> >(int, int, char const*, CommCbMemFunT<ConnStateData, CommCloseCbParams> const&) (AsyncCall.h:140)
  ==26729== by 0x4D5862: httpAccept(int, int, ConnectionDetail*, comm_err_t, int, void*) (client_side.cc:2847)
  ==26729== by 0x5BCF27: CommAcceptCbPtrFun::dial() (CommCalls.cc:129)
  ==26729== by 0x5BCC2E: CommCbFunPtrCallT<CommAcceptCbPtrFun>::fire() (CommCalls.h:315)
  ==26729== by 0x4B6B43: AsyncCall::make() (AsyncCall.cc:34)
  ==26729== by 0x4B634E: AsyncCallQueue::fireNext() (AsyncCallQueue.cc:53)
  ==26729== by 0x4B642E: AsyncCallQueue::fire() (AsyncCallQueue.cc:39)
  ==26729== by 0x50A04A: EventLoop::dispatchCalls() (EventLoop.cc:154)
  ==26729== by 0x50A2FF: EventLoop::runOnce() (EventLoop.cc:131)
  ==26729==
  ==26729==
  ==26729== 43,296 bytes in 405 blocks are still reachable in loss record 26 of 29
  ==26729== at 0x4C2291E: malloc (vg_replace_malloc.c:207)
  ==26729== by 0x4C22AA7: realloc (vg_replace_malloc.c:429)
  ==26729== by 0x6105037: (within /lib/libc-2.7.so)
  ==26729== by 0x61060E2: regcomp (in /lib/libc-2.7.so)
  ==26729== by 0x4BEC6B: parse_refreshpattern(_refresh_t**) (cache_cf.cc:2314)
  ==26729== by 0x4C1EB5: parse_line(char*) (cf_parser.h:1042)
  ==26729== by 0x4C4773: parseOneConfigFile(char const*, unsigned int) (cache_cf.cc:357)
  ==26729== by 0x4C4927: parseConfigFile(char const*) (cache_cf.cc:392)
  ==26729== by 0x55AFA4: SquidMain(int, char**) (main.cc:1232)
  ==26729== by 0x55B3D8: SquidMainSafe(int, char**) (main.cc:1110)
  ==26729== by 0x55B4D1: main (main.cc:1103)
  ==26729==
  ==26729==
  ==26729== 45,312 bytes in 177 blocks are still reachable in loss record 27 of 29
  ==26729== at 0x4C2291E: malloc (vg_replace_malloc.c:207)
  ==26729== by 0x6106073: regcomp (in /lib/libc-2.7.so)
  ==26729== by 0x4BEC6B: parse_refreshpattern(_refresh_t**) (cache_cf.cc:2314)
  ==26729== by 0x4C1EB5: parse_line(char*) (cf_parser.h:1042)
  ==26729== by 0x4C4773: parseOneConfigFile(char const*, unsigned int) (cache_cf.cc:357)
  ==26729== by 0x4C4927: parseConfigFile(char const*) (cache_cf.cc:392)
  ==26729== by 0x55AFA4: SquidMain(int, char**) (main.cc:1232)
  ==26729== by 0x55B3D8: SquidMainSafe(int, char**) (main.cc:1110)
  ==26729== by 0x55B4D1: main (main.cc:1103)
  ==26729==
  ==26729==
  ==26729== 25,598,286 bytes in 245,783 blocks are still reachable in loss record 28 of 29
  ==26729== at 0x4C2291E: malloc (vg_replace_malloc.c:207)
  ==26729== by 0x6195C3: xmalloc (util.c:506)
  ==26729== by 0x579EE3: operator new(unsigned long) (SquidNew.h:48)
  ==26729== by 0x5F21DD: __static_initialization_and_destruction_0(int, int) (ICAPXaction.cc:15)
  ==26729== by 0x5F223E: global constructors keyed to ICAPXaction.cc (ICAPXaction.cc:464)
  ==26729== by 0x61E0B5: (within /usr/local/squid3/sbin/squid)
  ==26729== by 0x49A0C2: (within /usr/local/squid3/sbin/squid)
  ==26729==
  ==26729==
  ==26729== 48,804,500 bytes in 3,612 blocks are still reachable in loss record 29 of 29
  ==26729== at 0x4C206F4: calloc (vg_replace_malloc.c:397)
  ==26729== by 0x619727: xcalloc (util.c:688)
  ==26729== by 0x6125FF: hash_create (hash.c:147)
  ==26729== by 0x568B7D: PconnPool::PconnPool(char const*) (pconn.cc:236)
  ==26729== by 0x5F21F1: __static_initialization_and_destruction_0(int, int) (ICAPXaction.cc:15)
  ==26729== by 0x5F223E: global constructors keyed to ICAPXaction.cc (ICAPXaction.cc:464)
  ==26729== by 0x61E0B5: (within /usr/local/squid3/sbin/squid)
  ==26729== by 0x49A0C2: (within /usr/local/squid3/sbin/squid)
  ==26729==
  ==26729== LEAK SUMMARY:
  ==26729== definitely lost: 15,048 bytes in 112 blocks.
  ==26729== indirectly lost: 19,984 bytes in 206 blocks.
  ==26729== possibly lost: 4,104 bytes in 3 blocks.
  ==26729== still reachable: 74,650,842 bytes in 253,304 blocks.
  ==26729== suppressed: 0 bytes in 0 blocks.
  Segmentation fault
  pannekake:~/orig/squid-3.1.0.5#

/* Steinar */

-- 
Homepage: http://www.sesse.net/
Received on Fri Feb 13 2009 - 10:55:41 MST

This archive was generated by hypermail 2.2.0 : Sat Feb 14 2009 - 12:00:03 MST