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.