RESOLVED FIXED Bug 37794
new-run-webkit-tests --verbose shows ever-increasing #EOF lines
https://bugs.webkit.org/show_bug.cgi?id=37794
Summary new-run-webkit-tests --verbose shows ever-increasing #EOF lines
Eric Seidel (no email)
Reported 2010-04-19 03:05:09 PDT
new-run-webkit-tests --verbose shows ever-increasing #EOF lines 100419 03:02:32 dump_render_tree_thread.py:95 DEBUG Previous test output extra lines after dump: #EOF #EOF #EOF After every test, the number of #EOFs dumped there is larger. Eventually you just can't read the log at all. Something is wrong in the WebKit driver or in the logging or both.
Attachments
Patch (2.95 KB, patch)
2010-04-22 02:12 PDT, Eric Seidel (no email)
no flags
Fix assertion (1.52 KB, patch)
2010-04-22 14:29 PDT, Eric Seidel (no email)
no flags
Ojan Vafai
Comment 1 2010-04-19 08:23:59 PDT
Context: NRWT outputs the results between the #EOF for a test and the #URL... for the next test. This avoids putting the results from one test into the next (reduces flakiness). We spit this to stdout in the hopes that we can put it on the waterfall and get it fixed. In either case, it sounds like maybe DRT is printing multiple #EOF lines per test and that is confusing NRWT since it expects exactly one #EOF per #URL line. That's just a guess though.
Eric Seidel (no email)
Comment 2 2010-04-19 12:18:35 PDT
I believe that DRT prints out two #EOFs. One for the test content and one for the pixel content. http://trac.webkit.org/browser/trunk/WebKitTools/DumpRenderTree/mac/DumpRenderTree.mm#L1061
Eric Seidel (no email)
Comment 3 2010-04-22 02:10:00 PDT
The log message was just confusing. What it was actually printing was the stderr. DRT prints an #EOF on stderr too.
Eric Seidel (no email)
Comment 4 2010-04-22 02:12:34 PDT
Adam Barth
Comment 5 2010-04-22 02:14:18 PDT
Comment on attachment 54043 [details] Patch This seems like a bit of a hack, but this seems to be blocking you...
Eric Seidel (no email)
Comment 6 2010-04-22 02:21:31 PDT
Eric Seidel (no email)
Comment 7 2010-04-22 03:19:24 PDT
You were right. It was too much of a hack. I had to add another hack to handle the case where we get nothing back from stderr. I'm still not really sure what's going on here, but hopefully Dirk does. We're definitely in a better state than we were before, but not yet where we want to end up.
Eric Seidel (no email)
Comment 8 2010-04-22 05:08:55 PDT
Dimitri Glazkov (Google)
Comment 9 2010-04-22 13:58:56 PDT
This broke new-run-webkit-tests --platform=chromium-mac --use-drt, which now crashes on this assertion. Not sure whether it's a bug being tickled, just noting here what's happening.
Eric Seidel (no email)
Comment 10 2010-04-22 14:05:29 PDT
Yeah. I've seen the crash too. Our handling of stderr is clearly wrong. I'll add another layer of hack in a second...
Ojan Vafai
Comment 11 2010-04-22 14:08:17 PDT
A bit late but... Seems like the "correct" fix would be to add a read_error_line method to match read_line. Then in the appropriate loops where you are reading output, you could also read the errors. In retrospect, it's weird that read_line also processes stderr. Alternately, we could modify readline to return a (output, error_output) tuple where output or error_output may be None/empty-string.
Eric Seidel (no email)
Comment 12 2010-04-22 14:17:17 PDT
It appears like we're not always waiting for the full error though. That's the ASSERT dglazkov is seeing, is that sometimes the error doens't contain the #EOF.
Eric Seidel (no email)
Comment 13 2010-04-22 14:29:14 PDT
Reopening to fix dglazkov's assertion.
Eric Seidel (no email)
Comment 14 2010-04-22 14:29:34 PDT
Created attachment 54096 [details] Fix assertion
Dimitri Glazkov (Google)
Comment 15 2010-04-22 14:30:55 PDT
Comment on attachment 54096 [details] Fix assertion ok, makes sense.
WebKit Commit Bot
Comment 16 2010-04-22 18:56:01 PDT
Comment on attachment 54096 [details] Fix assertion Clearing flags on attachment: 54096 Committed r58139: <http://trac.webkit.org/changeset/58139>
WebKit Commit Bot
Comment 17 2010-04-22 18:56:08 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.