Bug 40592 - flood: corrupt output with report_relative_times
Summary: flood: corrupt output with report_relative_times
Status: NEW
Alias: None
Product: Apache httpd-test
Classification: Unclassified
Component: flood (show other bugs)
Version: unspecified
Hardware: PC Linux
: P2 normal
Target Milestone: ---
Assignee: Apache HTTPD Bugs Mailing List
Depends on:
Reported: 2006-09-24 04:10 UTC by Scott Lamb
Modified: 2020-12-19 07:54 UTC (History)
0 users

Unsuccessful attempt to fix this (2.03 KB, patch)
2006-09-24 04:10 UTC, Scott Lamb
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Scott Lamb 2006-09-24 04:10:02 UTC
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/

    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 */
    apr_file_printf(local_stdout, "%s %ld %s\n", buf, apr_os_thread_current(), req->uri);
    apr_file_printf(local_stdout, "%s %d %s\n", buf, getpid(), req->uri);

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...
Comment 1 Scott Lamb 2006-09-24 04:10:39 UTC
Created attachment 18902 [details]
Unsuccessful attempt to fix this
Comment 2 William A. Rowe Jr. 2008-04-17 12:30:44 UTC
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 ;-/
Comment 3 Scott Lamb 2008-04-17 12:41:25 UTC
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.