As expected, my code wasn't perfect. We had a few DoS attacks ( defined as more than 20 page requests in 2 seconds from 1 individual ) which caused an unexplained termination of the stats server.
First time it happened, it took the whole site down with it. I recoded a few things so that if the stats server died, the site continues to run without it.
Simplified several parts of code, traced the program execution, and recreated the scenario. At first I didn't realize why it was exiting at a dprintf() point.
Uploaded patch ss-0.3 which ran until the next DoS attack. Crashed again, but this time the site stayed up.
Looked over the code again... and noticed dprintf() was being called twice, but was requested only once. Added a return value to the function that might call dprintf to report if it did so I don't call it the second time.
Hopefully this is the last time I have to deal with it....
Still worried about the simplified while loops tho. They have a possibility of going infinite. I'll know by tomorrow if the code is solid.