Apologies if I'm in the wrong bug reporting area for this. I didn't see anything for flood specifically, but http://httpd.apache.org/test/flood/ says it's part of the http server project, and I saw ApacheBench bugs in this component. Using http://svn.apache.org/repos/asf/httpd/test/trunk/flood revision 449338, I'm trying to post- process <report>relative_times</report> output. But my processor is reporting corruption, and it's definitely right: 1159070508122258 122 453 490 547 OK 1094719808 http://localhost/manual/install.html 1159070507911233 126 217090 217134 217186 OK 1126189376 http://localhost/manual/ anual/install.html 1159070508367336 358 751 777 831 OK 1168148800 http://localhost/manual/ 1159070508368204 122 458 496 552 OK 1168148800 http://localhost/manual/install.html I found a suspicious area of report_relative_times.c: /* FIXME: this call may need to be in a critical section */ #if APR_HAS_THREADS apr_file_printf(local_stdout, "%s %ld %s\n", buf, apr_os_thread_current(), req->uri); #else apr_file_printf(local_stdout, "%s %d %s\n", buf, getpid(), req->uri); #endif but it's eluding my attempts at a fix. I'll attach my awkward patch - mutex, flock within it, flush while both are held - that still doesn't work. Not sure what's going on...
Created attachment 18902 [details] Unsuccessful attempt to fix this
I would tag this as PatchAvailable, but I'm unclear what the attached patch seeks to accomplish, if it works as written, and why it's attached to this particular bug. But I'm happy to commit if you explain how it improves things ;-/
This is a patch for diagnosis/discussion of this bug which definitely should *NOT* be committed. The bug appears to be that one line appears in the middle of another, so I thought tried out the FIXME that producing that line should be in a critical section. The patch locks as thoroughly as I could imagine doing - mutex, flock, and flush within those - but still doesn't help the problem. If not using threads, it deliberately fails to compile, as I was checking if this was inconsistently defined or something.