| Summary: | Consecutive DumpRenderTree crash on WinCairo BuildBots | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Fujii Hironori <Hironori.Fujii> |
| Component: | Tools / Tests | Assignee: | Nobody <webkit-unassigned> |
| Status: | RESOLVED FIXED | ||
| Severity: | Normal | CC: | don.olmstead, lforschler, ross.kirsling |
| Priority: | P2 | ||
| Version: | WebKit Nightly Build | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| See Also: | https://bugs.webkit.org/show_bug.cgi?id=192486 | ||
| Bug Depends on: | 188160 | ||
| Bug Blocks: | |||
|
Description
Fujii Hironori
2018-07-25 22:04:26 PDT
I can't reproduce this issue on my bare Windows PC. However, it's easy to reproduce with Windows Docker on my PC. > docker run --name build -it --cpu-count=8 --memory=16g webkitdev/msbuild powershell > > Select-VSEnvironment > > $env:http_proxy = "http://..." > $env:https_proxy = $env:http_proxy > > git clone --depth=1 https://git.webkit.org/git/WebKit.git > cd WebKit > perl Tools\Scripts\build-webkit --wincairo > > rm env:http_proxy > rm env:https_proxy > $env:WEBKIT_LIBRARIES = (gl).path + "\WebKitLibraries\win" > python ./Tools/Scripts/run-webkit-tests --no-build --no-show-results --no-new-test-results --exit-after-n-crashes-or-timeouts 50 --exit-after-n-failures 500 --release --dump-render-tree --wincairo --debug-rwt-logging "docker run" frequently fails "hcsshim: timeout waiting" error on my PC. I need to try it repeatedly to start a Docker container. Cannot run container with more than 3GB memory · Issue #1094 · docker/for-win https://github.com/docker/for-win/issues/1094 hcsshim: timeout waiting for notification extra info · Issue #152 · Microsoft/hcsshim https://github.com/Microsoft/hcsshim/issues/152 It seems that one possible workaround is limit the number of CPU as 1. Pass --cpu-count=1 to docker, or --child-processes=1 to run-webkit-tests. https://github.com/WebKit/webkit/blob/master/Tools/Scripts/webkitpy/port/server_process.py#L325 poll() returns -4 in that case. I applied a patch to show returncode to trunk@234190. Here are the patch and the log. https://gist.github.com/fujii/92f167fe59c231247d39ded503320bd8 There are two values of returncode, -1073741819 and -4. > 15:48:38.313 3196 This test marked as a crash because of failure to poll the server process. returncode=-1073741819 > 15:48:47.289 24964 This test marked as a crash because of failure to poll the server process. returncode=-1073741819 > 15:50:09.235 9780 This test marked as a crash because of failure to poll the server process. returncode=-4 > 15:50:09.471 9780 This test marked as a crash because of failure to poll the server process. returncode=-4 -4 is the reurncode of consecutive DumpRenderTree crash. returncode should be the valud of GetExitCodeProcess. It's weird it is a negative value. Looking though Python-2.7.15 source code, I can't find the code it makes negative. https://github.com/python/cpython/blob/d098098ce1dcb02d18571551654cbe7b92d291a4/PC/_subprocess.c#L549 https://github.com/python/cpython/blob/d098098ce1dcb02d18571551654cbe7b92d291a4/Include/intobject.h#L38 > return PyInt_FromLong(exit_code); This code converts DWORD to long. It can make a negative value. If that true, exit code given by GetExitCodeProcess were fffffffc (-4) or c0000005 (-1073741819). https://stackoverflow.com/questions/17168982/exception-error-c0000005-in-vc According to the above page, c0000005 means access violation. Exit code -4 (0xfffffffc) - BOINC Wiki https://boinc.mundayweb.com/wiki/index.php?title=Exit_code_-4_(0xfffffffc) > This error notifies you of problems with your page file. It may be accompanied by "Project Application Name" error -4 Can't allocate memory. It seems that -4 means page allocation failure. A env var WEBKIT_TEST_CHILD_PROCESSES=2 is set on test bots to avoid this issue. (In reply to Fujii Hironori from comment #7) > A env var WEBKIT_TEST_CHILD_PROCESSES=2 is set on test bots to avoid this > issue. This change has solved the issue. |