Symptom: SEGV in httpd while in function fcgi_util_get_sessionid_by_cookie().
Diagnosis: Some less than robust handling leaves a pointer off in never never land. This seems to be caused by some particular client (browser) behavior that I cannot reproduce.
Solution: I have rewritten the function. I think now complete boundary checking as well as an inverted approach to pointer tracking should make it faster and problem free. I also modified the ap_table usage so that cookie handling should conform to the maximally proper method.
Symptom: Bad distribution of clients to processes especially when there are only 2.
Diagnosis: The algorithm added the numeric version of the SA cookie repeadly while incrementing the character pointer. If the length of the number string is even, then the result will always be even. Any even number modulus 2 will result in 0. I thought this was a funny thing.
Solution: Instead of adding the shortening text number to itself, it now adds the numeric value of each character in the SA cookie. Still a stable hash, but no modulus 2 harmonic.