> And which version of debian on which platform is showing the busted > behaviour? >
Dell i386 Kernels 2.6.18-4 thru 2.6.22-2 libstdc6 with g++ 4.1 thru 4.3 All the debian setups I have had to test with basically since I first found it. Amos > > On Fri, Feb 08, 2008, Amos Jeffries wrote: >> > >> > On Thu, 2008-02-07 at 12:21 +0900, Adrian Chadd wrote: >> >> >> >> Well, I haven't removed the temporary malloc/free pair, whatever its >> >> called; >> >> I've just removed Amos' workaround in src/comm.cc so it doesn't leak >> >> on my >> >> system whilst I profile. >> >> >> >> Still, this is one of those "death of a thousand cuts" method of >> >> killing performance.. >> > >> > Right, I haven't seen the commit; care to mail the diff? >> > >> >> >> Here you go. >> " >> --- src/comm.cc 2008-01-19 20:50:42.000000000 +1300 >> +++ src/comm.cc-2 2008-02-08 09:56:11.000000000 +1300 >> @@ -1381,7 +1381,7 @@ >> >> } >> >> -#ifdef _SQUID_LINUX_ >> +#ifdef 0 // _SQUID_LINUX_ >> /* 2007-11-27: >> * Linux Debian replaces our allocated AI pointer with garbage when >> * connect() fails. This leads to segmentation faults deallocating >> " >> >> >> In reply to your last few emails Adrian. >> >> re: can we join up on IRC? >> >> I may not be able to for the next few days, too much else on. >> >> >> re: Why are you trying to allocate the structure on invocation of >> GetAddrInfo() ? >> >> The design was to follow the well-known structure of the kernel call >> getaddrinfo(), which fills kernel-managed memory in a thread-safe way >> down a dynamic structure. The addrinfo structs are too nasty to use >> naked for anything like the amount of comm usage squid has. They are not >> an object per-se, but the root of a pointer tree to various types of >> node, which depend on the flags for their memory sizes. >> We could make a variant of the call which takes an addrinfo object and >> sets it up to point at the IPAddress internals correctly. BUT the bug we >> are looking at would then cause the IPAddress to become garbage, maybe >> have the kernel free'ing stack memory, etc. >> >> >> re: Argh, this temporary malloc/free pair is peppered throughout the >> codebase! Grr. >> >> You already know there are naked comm calls everywhere. :-( Most of >> them >> calls addrinfo was desgined for use in. >> >> >> re: I've removed that hack, and things work fine for me. Ubuntu 7.01 >> here, >> x86_64. >> >> Yes, I found no problem on ubuntu also. I simply could not (after very >> little searching) find a #if test that would only work for Debian. >> >> >> Amos >> > > -- > - Xenion - http://www.xenion.com.au/ - VPS Hosting - Commercial Squid > Support - > - $25/pm entry-level VPSes w/ capped bandwidth charges available in WA - >