-
Notifications
You must be signed in to change notification settings - Fork 21
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Test Failures #16
Comments
Can you provide more details on the OS and compiler level you used. FYI @john-yan |
gcc version 5.0.0 20150315 (Red Hat 5.0.0-0.17) (GCC) |
Hello @nealef , we have not seen these crashes in our testing environment. Can you please try with gcc 4.4 that we are currently using on 3.14 branch? |
Ran on RHEL 6 with 4.4.7 using the command: tools/run-tests.py --progress=dots --no-presubmit --arch-and-mode=s390x.release --junitout v8tests-junit.xml 81 failures |
@nealef Found the cause of the problem arising from gcc 4.4.7. Commit 72cfab1 disables optimization level O1 from being used for gcc versions 4.4.0 to 4.4.6 due to the fact that optimization causes problems in testing. The commit mentions that the bug is fixed in gcc 4.4.7, however enabling optimization still causes problems (as seen in test failures). As a temporary fix, you can replace lines 4369-4377 of file "src/objects-inl.h" with the following: // On GCC 4.4.0 to 4.4.7 on s390, the compiler with strict aliasing reorders the This should eliminate the test failures you've been experiencing with GCC 4.4.7. |
I can confirm things are substantially better with gcc-5.2.1. There are only === mjsunit/div-mod === --- stdout --- ============ Stress 1/5 ============ (function(left) { return left / 0; }) (function(left) { return left / 1; }) (function(left) { return left / 2; }) (function(left) { return left / 3; }) (function(left) { return left / 4; }) (function(left) { return left / 5; }) (function(left) { return left / 6; }) (function(left) { return left / 7; }) (function(left) { return left / 8; }) (function(left) { return left / 9; }) (function(left) { return left / 10; }) (function(left) { return left / 16777216; }) (function(left) { return left / 1073741824; }) (function(left) { return left / 12; }) (function(left) { return left / 60; }) (function(left) { return left / 100; }) (function(left) { return left / 86400000; }) Command: /home/neale/rpmbuild/BUILD/v8-3.14/out/s390x.release/d8 --test --- CRASHED --- === mjsunit/div-mod === --- stdout --- (function(left) { return left / 0; }) (function(left) { return left / 1; }) (function(left) { return left / 2; }) (function(left) { return left / 3; }) (function(left) { return left / 4; }) (function(left) { return left / 5; }) (function(left) { return left / 6; }) (function(left) { return left / 7; }) (function(left) { return left / 8; }) (function(left) { return left / 9; }) (function(left) { return left / 10; }) (function(left) { return left / 16777216; }) (function(left) { return left / 1073741824; }) (function(left) { return left / 12; }) (function(left) { return left / 60; }) (function(left) { return left / 100; }) (function(left) { return left / 86400000; }) Command: /home/neale/rpmbuild/BUILD/v8-3.14/out/s390x.release/d8 --test --- CRASHED --- === cctest/test-api/Threading === Command: /home/neale/rpmbuild/BUILD/v8-3.14/out/s390x.release/cctest --- CRASHED --- === cctest/test-api/ExternalArrays === Command: /home/neale/rpmbuild/BUILD/v8-3.14/out/s390x.release/cctest --- CRASHED --- === 4 tests failed === 4 tests CRASHED @nealef https://github.com/nealef Found the cause of the problem arising As a temporary fix, you can replace lines 4369-4377 of file // On GCC 4.4.0 to 4.4.7 on s390, the compiler with strict aliasing reorders +IBQ |
Hello @nealef , Could you please try disable GCC optimization on the spot as mentioned in "src/objects-inl.h"? Hope it could fix all the failures. As optimization is disabled only on a single function, it should not be a performance bottleneck. |
Err, I think I did it correctly: #if (GNUC <= 5) attribute((optimize("O1"))) #endif #endif However, I now get: === 5191 tests failed === 5185 tests CRASHED Hello @nealef https://github.com/nealef , Could you please try disable |
Ignore that last update. I+IBk-m sure I screwed something up. Starting from From: Junliang Yan notifications@github.com Hello @nealef https://github.com/nealef , Could you please try disable +IBQ |
@nealef in case you are using GCC 5.x, you need to remove "#if (GNUC <= 5)" to disable that. |
The original statement was: #if (GNUC == 4 && GNUC_MINOR == 4 && GNUC_PATCHLEVEL <= 6) Which means we don+IBk-t set the optimize(+IBw-O1+IB0) attribute for set_code. In this @nealef https://github.com/nealef in case you are using GCC 5.x, you need |
Yes, you could change it to "#if 1" to include all GCC version. On Fri, Dec 4, 2015 at 11:29 AM, Neale Ferguson notifications@github.com
|
Did so (got rid of the conditional logic altogether for the purposes of this Here+IBk-s the crash info: Dec 4 07:35:11 nealtst kernel: User process fault: interruption code Dec 4 07:35:11 nealtst kernel: failing address: C140000000000000 Dec 4 07:35:11 nealtst kernel: CPU: 0 PID: 42285 Comm: d8 Not tainted Dec 4 07:35:11 nealtst kernel: task: 00000000cf5b0000 ti: 00000000b2960000 Dec 4 07:35:11 nealtst kernel: User PSW : 0705200180000000 000003fffd24f376 Dec 4 07:35:11 nealtst kernel: R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 User GPRS: 0000000100000000 0000000000000000 c140000000000000 Dec 4 07:35:11 nealtst kernel: 0000000032d06bf1 0000000000000000 Dec 4 07:35:11 nealtst kernel: 0000000099f1cc78 000003ffffa64ba0 Dec 4 07:35:11 nealtst kernel: 000003fffd6b7f40 0000000099ecfc80 Dec 4 07:35:11 nealtst kernel: User Code: 000003fffd24f368: b9000011 lpgr
So we have a null reference exception due to %r2 being 0. It corresponds to Program terminated with signal 11, Segmentation fault. #0 0x000003fffd25f376 in v8::internal::Invoke
args=0x0,
126 *has_pending_exception = value->IsException(); Neale Yes, you could change it to "#if 1" to include all GCC version. |
Is this gcc 5.x or 4.4.x? |
5.2.1 -------- Original message -------- Is this gcc 5.x or 4.4.x? — |
Could you plz try 4.4.x without the optimization to see if the 4 failures Thanks. On Fri, Dec 4, 2015 at 2:18 PM, Neale Ferguson notifications@github.com
|
Will do From: Junliang Yan notifications@github.com Could you plz try 4.4.x without the optimization to see if the 4 failures Thanks. On Fri, Dec 4, 2015 at 2:18 PM, Neale Ferguson notifications@github.com
+IBQ |
…mpaction \o/ (patchset #16 id:620001 of https://codereview.chromium.org/1577853007/ ) Reason for revert: [Sheriff] Leads to crashes on all webrtc chromium testers, e.g.: https://build.chromium.org/p/chromium.webrtc/builders/Mac%20Tester/builds/49664 Original issue's description: > [heap] Parallel newspace evacuation, semispace copy, and compaction \o/ > > All parallelism can be turned off using --predictable, or --noparallel-compaction. > > This patch completely parallelizes > - semispace copy: from space -> to space (within newspace) > - newspace evacuation: newspace -> oldspace > - oldspace compaction: oldspace -> oldspace > > Previously newspace has been handled sequentially (semispace copy, newspace > evacuation) before compacting oldspace in parallel. However, on a high level > there are no dependencies between those two actions, hence we parallelize them > altogether. We base the number of evacuation tasks on the overall set of > to-be-processed pages (newspace + oldspace compaction pages). > > Some low-level details: > - The hard cap on number of tasks has been lifted > - We cache store buffer entries locally before merging them back into the global > StoreBuffer in a finalization phase. > - We cache AllocationSite operations locally before merging them back into the > global pretenuring storage in a finalization phase. > - AllocationSite might be compacted while they would be needed for newspace > evacuation. To mitigate any problems we defer checking allocation sites for > newspace till merging locally buffered data. > > CQ_EXTRA_TRYBOTS=tryserver.v8:v8_linux_arm64_gc_stress_dbg,v8_linux_gc_stress_dbg,v8_mac_gc_stress_dbg,v8_linux64_asan_rel,v8_linux64_tsan_rel,v8_mac64_asan_rel > BUG=chromium:524425 > LOG=N > R=hpayer@chromium.org, ulan@chromium.org > > Committed: https://crrev.com/8f0fd8c0370ae8c5aab56491b879d7e30c329062 > Cr-Commit-Position: refs/heads/master@{#33523} TBR=hpayer@chromium.org,ulan@chromium.org,mlippautz@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:524425 Review URL: https://codereview.chromium.org/1643473002 Cr-Commit-Position: refs/heads/master@{#33539}
TBR=adamk@chromium.org Review URL: https://codereview.chromium.org/1775123002 . Cr-Commit-Position: refs/branch-heads/5.0@{#16} Cr-Branched-From: ad16e6c-refs/heads/5.0.71@{#1} Cr-Branched-From: bd9df50-refs/heads/master@{#34215}
Merged a021c6a [field type tracking] Use breadth first traversal instead of recursion when updating field types. BUG=chromium:599440 LOG=N R=jkummerow@chromium.org Review URL: https://codereview.chromium.org/1905303002 . Cr-Commit-Position: refs/branch-heads/5.1@{#16} Cr-Branched-From: 167dc63-refs/heads/5.1.281@{#1} Cr-Branched-From: 03953f5-refs/heads/master@{#35282}
TBR=machenbach@chromium.org Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: If077b25ad9c08f9f5c896a1b3e1a36417d0feb97 Reviewed-on: https://chromium-review.googlesource.com/663399 Reviewed-by: v8 autoroll <v8-autoroll@chromium.org> Cr-Commit-Position: refs/branch-heads/6.2@{#16} Cr-Branched-From: efa2ac4-refs/heads/6.2.414@{#1} Cr-Branched-From: a861ebb-refs/heads/master@{#47693}
=== mjsunit/div-mod ===
--- stdout ---
(function(left) { return left / 0; })
(function(left) { return left / 1; })
(function(left) { return left / 2; })
(function(left) { return left / 3; })
(function(left) { return left / 4; })
(function(left) { return left / 5; })
(function(left) { return left / 6; })
(function(left) { return left / 7; })
(function(left) { return left / 8; })
(function(left) { return left / 9; })
(function(left) { return left / 10; })
(function(left) { return left / 16777216; })
(function(left) { return left / 1073741824; })
(function(left) { return left / 12; })
(function(left) { return left / 60; })
(function(left) { return left / 100; })
(function(left) { return left / 86400000; })
Command: /home/neale/rpmbuild/BUILD/v8-3.14/out/s390x.release/d8 --test --nobreak-on-abort --nodead-code-elimination --allow-natives-syntax /home/neale/rpmbuild/BUILD/v8-3.14/test/mjsunit/mjsunit.js /home/neale/rpmbuild/BUILD/v8-3.14/test/mjsunit/div-mod.js
--- CRASHED ---
=== mjsunit/div-mod ===
--- stdout ---
============ Stress 1/5 ============
(function(left) { return left / 0; })
(function(left) { return left / 1; })
(function(left) { return left / 2; })
(function(left) { return left / 3; })
(function(left) { return left / 4; })
(function(left) { return left / 5; })
(function(left) { return left / 6; })
(function(left) { return left / 7; })
(function(left) { return left / 8; })
(function(left) { return left / 9; })
(function(left) { return left / 10; })
(function(left) { return left / 16777216; })
(function(left) { return left / 1073741824; })
(function(left) { return left / 12; })
(function(left) { return left / 60; })
(function(left) { return left / 100; })
(function(left) { return left / 86400000; })
Command: /home/neale/rpmbuild/BUILD/v8-3.14/out/s390x.release/d8 --test --stress-opt --always-opt --nobreak-on-abort --nodead-code-elimination --allow-natives-syntax /home/neale/rpmbuild/BUILD/v8-3.14/test/mjsunit/mjsunit.js /home/neale/rpmbuild/BUILD/v8-3.14/test/mjsunit/div-mod.js
--- CRASHED ---
=== cctest/test-api/Threading ===
Command: /home/neale/rpmbuild/BUILD/v8-3.14/out/s390x.release/cctest --stress-opt --always-opt test-api/Threading --nobreak-on-abort --nodead-code-elimination --testing_serialization_file=/home/neale/rpmbuild/BUILD/v8-3.14/out/.serdes/serdes_Threading__stress_opt__always_opt
--- CRASHED ---
=== cctest/test-api/ExternalArrays ===
Command: /home/neale/rpmbuild/BUILD/v8-3.14/out/s390x.release/cctest --stress-opt --always-opt test-api/ExternalArrays --nobreak-on-abort --nodead-code-elimination --testing_serialization_file=/home/neale/rpmbuild/BUILD/v8-3.14/out/.serdes/serdes_ExternalArrays__stress_opt__always_opt
--- CRASHED ---
=== 4 tests failed
=== 4 tests CRASHED
The text was updated successfully, but these errors were encountered: