We're still seeing this problem. I did a quick diff between 2.4.5 and 2.5c, and only had a question about the new check on line 134 inside get_line function (in the new code):

if(buf[i] == '\0') {
   n_read = i;
   continue;
}

What is it suppose to achieve? Why put "continue", as this is the final statement of the for loop (for(i = n_read; i < bufsize; i++) {)? Also, the value of the n_read is only important if "i<bufsize", which is the next if statement right after the loop. I was thinking this was written to handle the NULL character on a line, but nothing really happens, except changing the value of n_read.

I can't see how this would cause the problem with pound using up 100% of CPU. I pretty certain one of the threads is stuck in a loop, and thats why was looking at this piece specifically.


Dave Steinberg wrote:
Robert Segall wrote:
This is to announce the release of Pound v2.5c. This is an experimental
version - the third in the 2.5 series (and incidentally also the first
release candidate for 2.5). Changes since version 2.5b:

Enhancements:
  - added support for HTTPS backends (with or without a client
    certificate. No back-end checking is done.

Bug fixes:
  - fixed problem with sub-patterns in session parameters. This allows
    the usage of parentheses in ID patterns.

The software is at version 2.5c (beta quality). Further testing
(especially under heavy loads), improvements and suggestions are
welcome.

I finally hit a problem with 2.5c today. I didn't have a ton of time toe investigate (I was running this in production), but pound's cpu usage shot up to 100% and I was getting lots of messages about too long cookie lines, i.e:

Oct 29 12:42:52 jetti02 pound: (84881000) line too long: Cookie: sid=9709a55a57490f3e559ee094495c9199; mybb[threadread]=<a whole pile of urlencoded data>

I've reverted back to 2.4.5 and things are happy again.

Regards,


--
To unsubscribe send an email with subject unsubscribe to [email protected].
Please contact [email protected] for questions.

Reply via email to