Issue metadata
Sign in to add a comment
|
run_layout_test.py often crashes on Windows |
||||||||||||||||||||||||
Issue descriptionChrome Version: ToT (7ff332470340943fad856cf758eba00f4d3c1c4f) OS: Windows 10.0.15063 What steps will reproduce the problem? (1) Run layout test like ./blink/tools/run_layout_tests.py -v -t Default external/wpt/html/semantics/scripting-1/the-script-element/execution-timing/039.html What is the expected result? No crash What happens instead? Crash: $ layout_tests.py -v -t Default external/wpt/html/semantics/scripting-1/the-script-element/execution-timing/039.html Using port 'win-win10' Test configuration: <win10, x86, release> View the test results at file://C:\src\chromium\src\out\Default\layout-test-results/results.html Using random order with seed: 1507713681 Baseline search path: win -> generic Using Release build Pixel tests enabled Regular timeout: 6000, slow test timeout: 30000 Command line: C:\src\chromium\src\out\Default\content_shell.exe --run-layout-test --ignore-certificate-errors-spki-list=Nxvaj3+bY3oVrTc+Jp7m3E3sB1n3lXtnMDCyBsqEXiY= --enable-direct-write --enable-crash-reporter --crash-dumps-dir=C:\src\chromium\src\out\Default\crash-dumps - Found 1 test; running 1, skipping 0. Ruby is not installed; can't generate pretty patches. System dependencies check failed. To override, invoke with --nocheck-sys-deps DevTools listening on ws://127.0.0.1:63459/devtools/browser/63d4392a-23b4-42ea-9a7e-eaac2c16a7ae [12492:12264:1011/182132.222:2643695890:ERROR:browser_gpu_channel_host_factory.cc(107)] Failed to launch GPU process. [12492:12496:1011/182132.229:2643695906:WARNING:scoped_temp_dir.cc(24)] Could not delete temp dir in dtor. [12492:12496:1011/182132.232:2643695906:FATAL:lock.cc(19)] Check failed: owning_thread_ref_.is_null(). Backtrace: base::debug::StackTrace::StackTrace [0x00007FFA16383965+69] base::debug::StackTrace::StackTrace [0x00007FFA163832E3+19] logging::LogMessage::~LogMessage [0x00007FFA163BAEFC+108] base::Lock::~Lock [0x00007FFA16451085+85] content::ContentMainRunnerImpl::Shutdown [0x00007FFA05FA25E0+312] service_manager::Main [0x00007FFA038F29E9+989] content::ContentMain [0x00007FFA05FA0E62+46] wWinMain [0x00007FF76B1C761C+92] __scrt_common_main_seh [0x00007FF76B7C0DA7+279] (f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:283) BaseThreadInitThunk [0x00007FFA4DEF2774+20] RtlUserThreadStart [0x00007FFA4FAD0D51+33] For complete build requirements, please see: https://chromium.googlesource.com/chromium/src/+/master/docs/windows_build_instructions.md exit status 252 Please use labels and text to provide additional information. For graphics-related bugs, please copy/paste the contents of the about:gpu page at the end of this report.
,
Jul 1
,
Jul 1
It's disappointing that this hasn't been triaged yet, but Issue 859366 has just been filed about the same failure mode.
,
Jul 6
Robert, do you know who should take a look at this one?
,
Jul 18
hajimehoshi@, does this happen randomly with the same command line? When it doesn't crash, do you still see "System dependencies check failed", or is that unrelated?
,
Jul 18
Issue 859366 has been merged into this issue.
,
Jul 18
,
Jul 18
kbr@ reported the same failed check + crash in issue 859366 , where the crash logs agree with this issue. For comparison, here's a working run, and shard 9/12 of that: https://ci.chromium.org/p/chromium/builders/luci.chromium.try/win7_chromium_rel_ng/40845 https://chromium-swarm.appspot.com/task?id=3ec3befda12cc410&refresh=10&show_raw=1 The "Checking system dependencies" bit didn't fail there, and notably was followed by "Starting WPTServe" which didn't happen in the failure case.
,
Jul 18
Searching for webkit_layout_tests failures in https://ci.chromium.org/p/chromium/builders/luci.chromium.try/win7_chromium_rel_ng I'm unable to find other cases where this has happened, but I'm not sure exactly how to look for it. I see some cases where a shard has failed, but how do things appear if it's failed in this way? kbr@, do you know?
,
Jul 18
For prosperity, here's the failing shard from the other bug: https://chromium-swarm.appspot.com/task?id=3e6bdf4d4cca0410&refresh=10&show_raw=1 And here's a retry of the Swarming task above, which succeeded: https://chromium-swarm.appspot.com/task?id=3ec6d792a10b3a10&refresh=10&show_raw=1 The root error seems to be: [12492:12264:1011/182132.222:2643695890:ERROR:browser_gpu_channel_host_factory.cc(107)] Failed to launch GPU process. (Re #8, the lack of "Starting WPTServe" is expected because we only start wptserve if the system check passes.) The error would usually go away after retrying the exact same isolated input. Perhaps GPU folks would have a clue? (+Internals>GPU, although I don't know if it's the correct component.)
,
Jul 18
Layout tests run on virtual machines that don't have GPUs. It's expected that they will fail to launch the GPU process. I'm not sure why this error isn't showing up in all Swarming shards but the root cause appears to be the failure of the system dependencies check. Here's another recent failure: https://ci.chromium.org/p/chromium/builders/luci.chromium.try/win7_chromium_rel_ng/41519 and failing shard: https://chromium-swarm.appspot.com/task?id=3ec72793317f3f10&refresh=10&show_raw=1 Failure log excerpt: 10:07:05.309 5160 Checking system dependencies ... 10:07:06.214 5160 "e:\b\s\w\ir\out\Release\content_shell.exe --check-layout-test-sys-deps" took 0.90s 10:07:06.214 5160 System dependencies check failed. 10:07:06.214 5160 To override, invoke with --nocheck-sys-deps 10:07:06.214 5160 10:07:06.214 5160 DevTools listening on ws://127.0.0.1:49675/devtools/browser/736a427f-7d20-458e-9d24-6a28cbd686bb [5528:5328:0718/100705.777:ERROR:gpu_process_host.cc(589)] BrowserMainRunner::ExitedMainMessageLoop() [5528:5328:0718/100705.777:WARNING:discardable_shared_memory_manager.cc(431)] Some MojoDiscardableSharedMemoryManagerImpls are still alive. They will be leaked. [5528:4368:0718/100705.840:WARNING:scoped_temp_dir.cc(23)] Could not delete temp dir in dtor. [5528:5204:0718/100705.840:FATAL:at_exit.cc(63)] Check failed: !g_top_manager->processing_callbacks_. Backtrace: base::debug::StackTrace::StackTrace [0x01CA8B80+32] base::debug::StackTrace::StackTrace [0x01CA833D+13] logging::LogMessage::~LogMessage [0x01CC06E3+83] base::AtExitManager::RegisterTask [0x01CA1CDA+122] base::AtExitManager::RegisterCallback [0x01CA1C48+184] base::internal::CompleteLazyInstance [0x01CBFCAF+31] disk_cache::File::Init [0x0310C9A3+499] disk_cache::File::Init [0x0310C879+201] disk_cache::MappedFile::Init [0x0310D4E6+102] disk_cache::BlockFiles::OpenBlockFile [0x03105A1A+202] disk_cache::BlockFiles::Init [0x031057B4+164] disk_cache::BackendImpl::SyncInit [0x0260D14E+430] disk_cache::BackendIO::ExecuteBackendOperation [0x031037CA+58] base::debug::TaskAnnotator::RunTask [0x02547082+306] base::MessageLoop::RunTask [0x01CC9B23+467] base::MessageLoop::DeferOrRunPendingTask [0x01CC9E7D+157] base::MessageLoop::DoWork [0x01CCA0F7+599] base::MessagePumpForIO::DoRunLoop [0x01CCC7B2+18] base::MessagePumpWin::Run [0x01CCBBA1+65] base::MessageLoop::Run [0x01CC9677+119] base::RunLoop::Run [0x01CE52DC+204] base::Thread::Run [0x01D0C414+164] base::Thread::ThreadMain [0x01D0C69D+621] base::PlatformThread::SetCurrentThreadPriority [0x01D0A865+533] BaseThreadInitThunk [0x7590336A+18] RtlInitializeExceptionChain [0x77979902+99] RtlInitializeExceptionChain [0x779798D5+54] Removing Internals>GPU as I think this is a red herring.
,
Jul 19
kbr@, how did you find that shard? Looking at https://ci.chromium.org/p/chromium/builders/luci.chromium.try/win7_chromium_rel_ng/41519 I wouldn't have suspected that shard 0 failed in this way, since other shards failed too and nothing about the overall result looks special. Can you search all the logs somehow? Anyway, seems like we need more output in the "System dependencies check failed" case, since no clues are printed now. It looks like in https://cs.chromium.org/chromium/src/third_party/blink/tools/blinkpy/web_tests/port/base.py?l=411&rcl=177edef71c816a41c87da3ebc4bdb2eb41c26ffb, `output` was the empty string, not sure if `script_error.output` could have been anything different in the `error_handler` callback.
,
Jul 19
foolip@: I just got lucky. It was the first shard I looked at. However it doesn't take long to scan through the failing shards and scroll down in the logs to see if any tests ran at all. If they didn't then you know it's the system dependencies check failing.
,
Sep 17
,
Nov 13
nednguyen@, this P1 has been languishing for a while, might you be able to take a look?
,
Nov 13
,
Nov 13
Looking at the code, it seems to me that place that checking system deps is the check_sys_deps() method in Port subclasses (https://cs.chromium.org/chromium/src/third_party/blink/tools/blinkpy/web_tests/controllers/manager.py?rcl=f96c6f6cf723d115d72229c0c784ae5078891703&l=379). Win port doesn't override the default check_sys_deps() (which just returns OK_EXIT_STATUS), so it should be a no-op. Digging a bit more, I found Erik's https://chromium-review.googlesource.com/c/chromium/src/+/1229240/ which also make this type of crash recoverable. From his CL description: > run_web_tests.py would exit with SYS_DEPS_EXIT_STATUS upon encountering a crash in kCheckLayoutTestSysDeps. This failure was not recoverable. Now, flaky crashes are caught using the normal layout test runner mechanism, and are appropriately retried. So in some sense, Erik has fixed this issue :-) I find some minor clean up that can be made following Erik's fixed & will make the CL
,
Nov 13
,
Nov 13
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c91ef9689e59c6c83aa408367a68599556b9086f commit c91ef9689e59c6c83aa408367a68599556b9086f Author: Ned Nguyen <nednguyen@google.com> Date: Tue Nov 13 18:51:20 2018 Remove needs_http parameter in check_sys_deps method This also remove check_sys_deps from base.Port's subclasses that are the same as the base class method. Note: this CL removes an unused parameter and is a refactor with no intended behavior change. This clean up is a follow-up of https://chromium-review.googlesource.com/c/chromium/src/+/1229240/ BUG: chromium:773617 , chromium:884776 Change-Id: I82edf733a696c4e0e6de20a8bac954e244d51365 Reviewed-on: https://chromium-review.googlesource.com/c/1333893 Commit-Queue: Ned Nguyen <nednguyen@google.com> Reviewed-by: Robert Ma <robertma@chromium.org> Reviewed-by: Erik Chen <erikchen@chromium.org> Cr-Commit-Position: refs/heads/master@{#607676} [modify] https://crrev.com/c91ef9689e59c6c83aa408367a68599556b9086f/third_party/blink/tools/blinkpy/web_tests/controllers/manager.py [modify] https://crrev.com/c91ef9689e59c6c83aa408367a68599556b9086f/third_party/blink/tools/blinkpy/web_tests/port/android.py [modify] https://crrev.com/c91ef9689e59c6c83aa408367a68599556b9086f/third_party/blink/tools/blinkpy/web_tests/port/base.py [modify] https://crrev.com/c91ef9689e59c6c83aa408367a68599556b9086f/third_party/blink/tools/blinkpy/web_tests/port/browser_test.py [modify] https://crrev.com/c91ef9689e59c6c83aa408367a68599556b9086f/third_party/blink/tools/blinkpy/web_tests/port/fuchsia.py [modify] https://crrev.com/c91ef9689e59c6c83aa408367a68599556b9086f/third_party/blink/tools/blinkpy/web_tests/port/mock_drt.py [modify] https://crrev.com/c91ef9689e59c6c83aa408367a68599556b9086f/third_party/blink/tools/blinkpy/web_tests/port/test.py |
|||||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||||
Comment 1 by kbr@chromium.org
, Jun 29 2018