WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
NEW
56186
http/tests/misc/script-async.html failed once on Windows
https://bugs.webkit.org/show_bug.cgi?id=56186
Summary
http/tests/misc/script-async.html failed once on Windows
Adam Roben (:aroben)
Reported
2011-03-11 06:39:57 PST
http/tests/misc/script-async.html failed once on Windows. See the URL for the diff.
Attachments
Add attachment
proposed patch, testcase, etc.
Jessie Berlin
Comment 1
2011-03-11 07:12:45 PST
<
rdar://problem/9121059
>
Tony Gentilcore
Comment 2
2011-03-11 08:33:03 PST
I thought the http tests were notoriously flaky on Windows due to http server issues. Are they really stable? I'll patch this test to improve the failure message so we can tell what is going on if it happens again.
Tony Gentilcore
Comment 3
2011-03-11 08:42:10 PST
(In reply to
comment #2
)
> I thought the http tests were notoriously flaky on Windows due to http server issues. Are they really stable? > > I'll patch this test to improve the failure message so we can tell what is going on if it happens again.
Scratch that comment entirely. The actual result is in the failure message. We executed the slow async script twice which is a serious bug and not caused by the http server. We need to investigate how this could happen.
Tony Gentilcore
Comment 4
2011-03-11 08:58:21 PST
Looking back on the chromium bots, we can see this has failed twice on the Win debug bots in recent times (at
r80408
and
r80410
).
http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=http%2Ftests%2Fmisc%2Fscript-async.html&group=%40ToT%20-%20chromium.org
ASSERTION FAILED: m_loadEventDelayCount Backtrace: WebCore::Document::decrementLoadEventDelayCount [0x012E5DE6+54] (e:\b\build\slave\webkit_win__dbg__2_\build\src\third_party\webkit\source\webcore\dom\document.cpp:4962) WebCore::AsyncScriptRunner::timerFired [0x01568D52+242] (e:\b\build\slave\webkit_win__dbg__2_\build\src\third_party\webkit\source\webcore\dom\asyncscriptrunner.cpp:89) WebCore::Timer<WebCore::AsyncScriptRunner>::fired [0x01568F93+35] (e:\b\build\slave\webkit_win__dbg__2_\build\src\third_party\webkit\source\webcore\platform\timer.h:100) WebCore::ResourceHandle::prepareForURL [0x017DB669+1129] WebCore::ResourceHandle::prepareForURL [0x017DB586+902] webkit_glue::WebKitClientImpl::DoTimeout [0x00AE683B+43] (e:\b\build\slave\webkit_win__dbg__2_\build\src\webkit\glue\webkitclient_impl.h:86) DispatchToMethod<webkit_glue::WebKitClientImpl,void (__thiscall webkit_glue::WebKitClientImpl::*)(void)> [0x00AE7A9C+12] (e:\b\build\slave\webkit_win__dbg__2_\build\src\base\tuple.h:541) base::BaseTimer<webkit_glue::WebKitClientImpl,0>::TimerTask::Run [0x00AE73E4+84] (e:\b\build\slave\webkit_win__dbg__2_\build\src\base\timer.h:160) MessageLoop::RunTask [0x01CC6820+272] (e:\b\build\slave\webkit_win__dbg__2_\build\src\base\message_loop.cc:367) MessageLoop::DeferOrRunPendingTask [0x01CC6955+53] (e:\b\build\slave\webkit_win__dbg__2_\build\src\base\message_loop.cc:379) MessageLoop::DoWork [0x01CC746C+236] (e:\b\build\slave\webkit_win__dbg__2_\build\src\base\message_loop.cc:569) base::MessagePumpForUI::DoRunLoop [0x01D0E6E4+84] (e:\b\build\slave\webkit_win__dbg__2_\build\src\base\message_pump_win.cc:201) base::MessagePumpWin::RunWithDispatcher [0x01D0DF52+130] (e:\b\build\slave\webkit_win__dbg__2_\build\src\base\message_pump_win.cc:49) base::MessagePumpWin::Run [0x01D0E1BC+28] (e:\b\build\slave\webkit_win__dbg__2_\build\src\base\message_pump_win.h:79) MessageLoop::RunInternal [0x01CC6667+247] (e:\b\build\slave\webkit_win__dbg__2_\build\src\base\message_loop.cc:342) MessageLoop::RunHandler [0x01CC643E+46] (e:\b\build\slave\webkit_win__dbg__2_\build\src\base\message_loop.cc:316) MessageLoop::Run [0x01CC5D4A+58] (e:\b\build\slave\webkit_win__dbg__2_\build\src\base\message_loop.cc:240) webkit_support::RunMessageLoop [0x008AB70F+15] (e:\b\build\slave\webkit_win__dbg__2_\build\src\webkit\support\webkit_support.cc:360) TestShell::waitTestFinished [0x00428F2D+141] (e:\b\build\slave\webkit_win__dbg__2_\build\src\third_party\webkit\tools\dumprendertree\chromium\testshellwin.cpp:106) TestShell::runFileTest [0x0044243F+447] (e:\b\build\slave\webkit_win__dbg__2_\build\src\third_party\webkit\tools\dumprendertree\chromium\testshell.cpp:196) runTest [0x00419B5D+733] (e:\b\build\slave\webkit_win__dbg__2_\build\src\third_party\webkit\tools\dumprendertree\chromium\dumprendertree.cpp:119) main [0x00419425+1717] (e:\b\build\slave\webkit_win__dbg__2_\build\src\third_party\webkit\tools\dumprendertree\chromium\dumprendertree.cpp:214) __tmainCRTStartup [0x00A30CE7+279] (f:\dd\vctools\crt_bld\self_x86\crt\src\crt0.c:266) mainCRTStartup [0x00A30BBF+15] (f:\dd\vctools\crt_bld\self_x86\crt\src\crt0.c:182) RegisterWaitForInputIdle [0x7C817077+73]
Tony Gentilcore
Comment 5
2011-03-11 09:27:52 PST
ScriptElement::notifyFinished() calls AsyncScriptRunner::executeScriptSoon() and immediately clears its CachedScript to prevent further notifyFinished() notifications. AsyncScriptRunner starts a timer which, upon execution, clears the member with the list of scripts to execute soon and then executes them. So under normal operation, I don't see how we could get double execution. 1,500 runs of the test on mac doesn't repro the problem. I'll warm up a win build and try to repro there, but if that doesn't work, I'm not sure where to go from here.
Tony Gentilcore
Comment 6
2011-03-11 10:26:23 PST
A different handful of tests seem to fail on the win 7 bot nearly every run. I'm growing more skeptical this is actually an issue in the script running code.
Adam Roben (:aroben)
Comment 7
2011-03-11 10:31:48 PST
(In reply to
comment #6
)
> A different handful of tests seem to fail on the win 7 bot nearly every run. I'm growing more skeptical this is actually an issue in the script running code.
Before this failure there were 8 green builds in a row:
http://build.webkit.org/builders/Windows%207%20Release%20%28Tests%29/builds/10282
http://build.webkit.org/builders/Windows%207%20Release%20%28Tests%29/builds/10283
http://build.webkit.org/builders/Windows%207%20Release%20%28Tests%29/builds/10284
http://build.webkit.org/builders/Windows%207%20Release%20%28Tests%29/builds/10285
http://build.webkit.org/builders/Windows%207%20Release%20%28Tests%29/builds/10286
http://build.webkit.org/builders/Windows%207%20Release%20%28Tests%29/builds/10287
http://build.webkit.org/builders/Windows%207%20Release%20%28Tests%29/builds/10288
http://build.webkit.org/builders/Windows%207%20Release%20%28Tests%29/builds/10289
Then this test failed:
http://build.webkit.org/builders/Windows%207%20Release%20%28Tests%29/builds/10290
Then the next two builds were green:
http://build.webkit.org/builders/Windows%207%20Release%20%28Tests%29/builds/10291
http://build.webkit.org/builders/Windows%207%20Release%20%28Tests%29/builds/10292
And then a real regression was introduced into the tree (someone forgot to update Windows results) and the bots went red again.
Gavin Peters
Comment 8
2011-05-04 10:26:55 PDT
http://code.google.com/p/chromium/issues/detail?id=75604
over on Chrome appears to be the same issue. I think we're looking at the timer firing twice.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug