Summary: | new-run-webkit-tests can deadlock with Chromium's TestShell | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Eric Seidel (no email) <eric> | ||||||||||
Component: | Tools / Tests | Assignee: | Nobody <webkit-unassigned> | ||||||||||
Status: | RESOLVED FIXED | ||||||||||||
Severity: | Normal | CC: | abarth, commit-queue, dpranke, eric, jorlow, ojan, tony, webkit.review.bot | ||||||||||
Priority: | P2 | ||||||||||||
Version: | 528+ (Nightly build) | ||||||||||||
Hardware: | PC | ||||||||||||
OS: | OS X 10.5 | ||||||||||||
Bug Depends on: | |||||||||||||
Bug Blocks: | 38300 | ||||||||||||
Attachments: |
|
Description
Eric Seidel (no email)
2010-04-28 17:46:10 PDT
Created attachment 54645 [details]
Sample from new-run-webkit-tests when hung waiting on two TestShells
Created attachment 54646 [details]
sample from first TestShell
Created attachment 54647 [details]
sample from second TestShell
I'm not sure what exact conditions caused this deadlock, but it's clear from reading the code it's possible. We may have had this for a long time, or it's possible (but unlikely) that this recently regressed. The hang in TestShell happens at this fgets: http://src.chromium.org/cgi-bin/gitweb.cgi?p=chromium.git;a=blob;f=webkit/tools/test_shell/test_shell_main.cc;h=37c26bcff0bc9475f051cc0025b688109ed816ca;hb=HEAD#l316 If for any reason the first char of: filenameBuffer is 0 we can hang: 324 if (!*filenameBuffer) 325 continue; This started happening more with my unicode changes, because we started sending unicode bytestreams to test_shell on some systems by mistake. If the first byte left in the buffer is ever 00, then it hangs forever. That could happen if IO got interupted due to process switching, etc. I have a fix for the added frequency. Note, this is STILL a bug in test_shell/NRWT that they can deadlock like this. It's been this way forever. But it should occur less often now. Created attachment 54674 [details]
Patch
Attachment 54674 [details] did not pass style-queue:
Failed to run "['WebKitTools/Scripts/check-webkit-style', '--no-squash']" exit_code: 1
WebKitTools/Scripts/webkitpy/layout_tests/port/chromium_unittest.py:77: expected 1 blank line, found 0 [pep8/E301] [5]
Total errors found: 1 in 3 files
If any of these errors are false positives, please file a bug against check-webkit-style.
pep8.py doesn't like my inline function definition, but I wasn't sure what it really wanted either. Comment on attachment 54674 [details]
Patch
Bow down before our stylebot overlords.
Stylebot is wrong. PEP8 says nothing about inline methods: http://www.python.org/dev/peps/pep-0008/ See the "blank lines" section. pep8 is treating this like a "method in a class" which is wrong, this is a method in a method in a class, which is not covered in pep8. Comment on attachment 54674 [details]
Patch
I'm suspicious, but ok.
Comment on attachment 54674 [details]
Patch
Thank you for the review. If you have a suggested style fix, I'm happy to make one. But I think adding blank lines around the inline function is silly in this case, and certainly not covered by pep8.
Comment on attachment 54674 [details] Patch Clearing flags on attachment: 54674 Committed r58503: <http://trac.webkit.org/changeset/58503> All reviewed patches have been landed. Closing bug. http://trac.webkit.org/changeset/58503 might have broken Qt Linux Release |