On Tue, Apr 20, 2010 at 11:17 AM, Joe Gooch <[email protected]> wrote: > Hmm, if it's sessionless then the memory leak I found shouldn't occur. > > I checked the headers code and it looks right to me... Not sure what else it > might be then. > > Joe
After more careful examination, I think it's safe to say that this is not actually a memory leak. I'm sorry for the alarmist OP. My naive understanding for anyone who sees this on their own box: Pound runs on a thread-per-concurrent-connection model, but doesn't allocate the space for all thread stacks right on startup. So memory usage rises in sync with threadcount. The part that I was missing was that it *does not* return memory used by a defunct thread back to the OS. Instead, that space is reused for future threads until you hit your high watermark and need to claim more memory for additional thread stacks. The increased memory usage I was seeing was because my traffic was growing. The increased stack size for 64-bit FreeBSD (http://www.apsis.ch/pound/pound_list/archive/2010/2010-03/1268259652000#1268259652000) naturally doubled the rate of memory growth, which should have been expected but still managed to catch me off guard. Maybe this is all common knowledge to someone more familiar with pthreads and BSD memory management, but it was news to me. Thanks for the help, though. -HKS > >> -----Original Message----- >> From: (private) HKS [mailto:[email protected]] >> Sent: Monday, April 19, 2010 6:34 PM >> To: [email protected] >> Subject: Re: [Pound Mailing List] Memory leaks in Pound 2.5? >> >> On Mon, Apr 19, 2010 at 2:41 PM, Joe Gooch <[email protected]> >> wrote: >> > I discovered an issue with freeing session memory last month and >> Robert integrated the fix, but we haven't had a 2.5.1 yet so it's still >> present in your version. >> > >> > Try replacing your svc.c with this one: >> > https://users.k12system.com/mrwizard/pound/svc-leakfix_unofficial.c >> > >> > And let us know if you have any problems. >> >> Ah, I was aware of this but discounted it because it's happening even >> in the "sessionless" configuration above. Presumably there is still >> some internal session tracking? I'll give this a shot. >> >> >> > For that matter, did you try the base64 patch from 2/15 and how did >> that work for you? >> >> I did not. I ran into some other issues with OpenBSD around that time >> and made moving to FreeBSD my top priority. Since it's still happening >> on this new platform, I'll give it a shot and get back to you. Sorry >> for the delay there. >> >> -HKS >> >> > Joe >> > >> >> -----Original Message----- >> >> From: (private) HKS [mailto:[email protected]] >> >> Sent: Monday, April 19, 2010 2:29 PM >> >> To: [email protected] >> >> Subject: [Pound Mailing List] Memory leaks in Pound 2.5? >> >> >> >> Since upgrading from 2.4.5 to 2.5, I've noticed Pound gradually >> >> consuming more and more memory until it has to be restarted lest it >> >> consume all my RAM. I've observed this on both OpenBSD 4.6 i386 and >> >> FreeBSD 8 x64. >> >> >> >> For example, an instance that's been around for about a week now is >> >> eating up 154MB. This instance is running a pretty limited >> >> configuration (basically just serving as SSL termination and header >> >> sanitization for a different app) that I've pasted below. There are >> >> only two things I can think of that are even noteworthy: >> >> >> >> - Configuration flag --with-maxbuf 384 >> >> - The SSL certificate is a wildcard cert and I'm serving about 2000 >> >> matching subdomains >> >> >> >> Any idea what's going on or what I can look at? >> >> >> >> -HKS >> >> >> >> >> >> >> >> >> >> >> >> User "pound" >> >> Group "pound" >> >> Control "/var/run/pound-se-ctl.socket" >> >> LogFacility daemon >> >> LogLevel 5 >> >> Alive 30 >> >> Client 30 >> >> ConnTO 5 >> >> TimeOut 30 >> >> Grace 30 >> >> >> >> ListenHTTP >> >> Address 10.2.1.83 >> >> Port 80 >> >> RewriteLocation 0 >> >> >> >> HeadRemove "X-Forwarded-For" >> >> AddHeader "X-Forwarded-By: pound" >> >> HeadRemove "X-SSL" >> >> End >> >> >> >> ListenHTTPS >> >> Address 10.2.1.83 >> >> Port 443 >> >> Cert "/usr/local/etc/pound/private/se.pem" >> >> RewriteLocation 0 >> >> >> >> HeadRemove "X-Forwarded-For" >> >> AddHeader "X-Forwarded-By: pound" >> >> HeadRemove "X-SSL" >> >> AddHeader "X-SSL: yes" >> >> End >> >> >> >> Service >> >> Backend >> >> Address 127.0.0.1 >> >> Port 9083 >> >> End >> >> End >> >> >> >> -- >> >> To unsubscribe send an email with subject unsubscribe to >> >> [email protected]. >> >> Please contact [email protected] for questions. >> > >> > -- >> > To unsubscribe send an email with subject unsubscribe to >> [email protected]. >> > Please contact [email protected] for questions. >> > >> >> -- >> To unsubscribe send an email with subject unsubscribe to >> [email protected]. >> Please contact [email protected] for questions. > > -- > To unsubscribe send an email with subject unsubscribe to [email protected]. > Please contact [email protected] for questions. > -- To unsubscribe send an email with subject unsubscribe to [email protected]. Please contact [email protected] for questions.
