Skip to content
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

Open
nealef opened this issue Nov 30, 2015 · 18 comments
Open

Test Failures #16

nealef opened this issue Nov 30, 2015 · 18 comments

Comments

@nealef
Copy link

nealef commented Nov 30, 2015

=== 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

@mhdawson
Copy link
Contributor

Can you provide more details on the OS and compiler level you used.

FYI @john-yan

@nealef
Copy link
Author

nealef commented Nov 30, 2015

gcc version 5.0.0 20150315 (Red Hat 5.0.0-0.17) (GCC)
3.10.0-229.1.2.el7.s390x #1 SMP Fri Mar 6 17:14:40 EST 2015 s390x s390x s390x GNU/Linux
Red Hat Enterprise Linux Server release 7.1 (Maipo)

@john-yan
Copy link
Contributor

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?

@nealef
Copy link
Author

nealef commented Nov 30, 2015

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
v8.txt

@exinfinitum
Copy link
Contributor

@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->code() (from IsOptimized()) and set_code(code). Using
// --fno-strict-aliasing causes other issues, so using this as a temp
// workaround until we find something better.
//
// Have to add TARGET_ARCH_S390X as well, as PPC simulation on S390
// is broken due to assembler not recognizing SRAK instructions generated
// by GCC. Again, need to find better workaround.
#if (GNUC == 4 && GNUC_MINOR == 4)

This should eliminate the test failures you've been experiencing with GCC 4.4.7.

@nealef
Copy link
Author

nealef commented Dec 4, 2015

I can confirm things are substantially better with gcc-5.2.1. There are only
four failures now:

=== 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 ---

=== 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 ---

=== 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

@nealef https://github.com/nealef Found the cause of the problem arising
from gcc 4.4.7. Commit 72cfab1
<72cfab1
d2b87> 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->code() (from IsOptimized()) and set_code(code). Using
// --fno-strict-aliasing causes other issues, so using this as a temp
// workaround until we find something better.
//
// Have to add TARGET_ARCH_S390X as well, as PPC simulation on S390
// is broken due to assembler not recognizing SRAK instructions generated
// by GCC. Again, need to find better workaround.
#if (GNUC == 4 && GNUC_MINOR == 4)

+IBQ
Reply to this email directly or view it on GitHub
#16 (comment) .

@john-yan
Copy link
Contributor

john-yan commented Dec 4, 2015

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.

@nealef
Copy link
Author

nealef commented Dec 4, 2015

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
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.

@nealef
Copy link
Author

nealef commented Dec 4, 2015

Ignore that last update. I+IBk-m sure I screwed something up. Starting from
scratch again.

From: Junliang Yan notifications@github.com
Reply-To: andrewlow/v8z
<reply++0004b6fa0e03cc8e426938616ad9da7d1176af788879126392cf000000011279726b9
2a169ce0720198e@reply.github.com>
Date: Friday, December 4, 2015 at 10:25 AM
To: andrewlow/v8z v8z@noreply.github.com
Cc: Neale Ferguson nealeferguson@verizon.net
Subject: Re: [v8z] Test Failures (#16)

Hello @nealef https://github.com/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.

+IBQ
Reply to this email directly or view it on GitHub
#16 (comment) .

@john-yan
Copy link
Contributor

john-yan commented Dec 4, 2015

@nealef in case you are using GCC 5.x, you need to remove "#if (GNUC <= 5)" to disable that.

@nealef
Copy link
Author

nealef commented Dec 4, 2015

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
instance we fail 4 tests as shown earlier. I thought you were asking me to
enable that attribute for gcc 5.

@nealef https://github.com/nealef in case you are using GCC 5.x, you need
to remove "#if (GNUC <= 5)" to disable that.

@john-yan
Copy link
Contributor

john-yan commented Dec 4, 2015

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
wrote:

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
instance we fail 4 tests as shown earlier. I thought you were asking me to
enable that attribute for gcc 5.

@nealef https://github.com/nealef in case you are using GCC 5.x, you
need
to remove "#if (GNUC <= 5)" to disable that.


Reply to this email directly or view it on GitHub
#16 (comment).

@nealef
Copy link
Author

nealef commented Dec 4, 2015

Did so (got rid of the conditional logic altogether for the purposes of this
run) and get the same 4 failures.

Here+IBk-s the crash info:

Dec 4 07:35:11 nealtst kernel: User process fault: interruption code
0x40038 in libv8.so[3fffd176000++4f2000]

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
3.10.0-229.1.2.el7.s390x #1

Dec 4 07:35:11 nealtst kernel: task: 00000000cf5b0000 ti: 00000000b2960000
task.ti: 00000000b2960000

Dec 4 07:35:11 nealtst kernel: User PSW : 0705200180000000 000003fffd24f376
(0x3fffd24f376)

Dec 4 07:35:11 nealtst kernel: R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0
P:1 AS:0 CC:2 PM:0 EA:3

User GPRS: 0000000100000000 0000000000000000 c140000000000000
0000000000000000

Dec 4 07:35:11 nealtst kernel: 0000000032d06bf1 0000000000000000
0000000000000000 0000000099ecfc80

Dec 4 07:35:11 nealtst kernel: 0000000099f1cc78 000003ffffa64ba0
000003ff00000004 000000004a204121

Dec 4 07:35:11 nealtst kernel: 000003fffd6b7f40 0000000099ecfc80
000003fffd24f328 000003ffffa64938

Dec 4 07:35:11 nealtst kernel: User Code: 000003fffd24f368: b9000011 lpgr
%r1,%r1

       000003fffd24f36c: a71bffff aghi %r1,-1

      #000003fffd24f370: eb11003f000c srlg %r1,%r1,63

      >000003fffd24f376: 42102000 stc %r1,0(%r2)

       000003fffd24f37a: ecb8008c077c cgij %r11,0,8,3fffd24f492

       000003fffd24f380: eb00dc780252 mviy 11384(%r13),0

       000003fffd24f386: e310d0480004 lg %r1,72(%r13)

       000003fffd24f38c: e310dc800224 stg %r1,11392(%r13)

So we have a null reference exception due to %r2 being 0. It corresponds to
this code:

Program terminated with signal 11, Segmentation fault.

#0 0x000003fffd25f376 in v8::internal::Invoke
(is_construct=is_construct@entry=false, function=...,

function@entry=..., receiver=..., receiver@entry=..., argc=argc@entry=0,

args=0x0,

has_pending_exception=0x3ffffff6fbf) at ../src/execution.cc:126

126 *has_pending_exception = value->IsException();

Neale

Yes, you could change it to "#if 1" to include all GCC version.

@john-yan
Copy link
Contributor

john-yan commented Dec 4, 2015

Is this gcc 5.x or 4.4.x?

@exinfinitum
Copy link
Contributor

@john-yan In a previous post, @nealef indicated that he's using gcc 5.0.0, which is an experimental build of gcc. I got a compile error (albeit one arising from a warning, because -Werror was enabled) on gcc 5.2.1.

@nealef
Copy link
Author

nealef commented Dec 4, 2015

5.2.1

-------- Original message --------
From: Junliang Yan notifications@github.com
Date: 2015/12/04 14:06 (GMT-05:00)
To: andrewlow/v8z v8z@noreply.github.com
Cc: Neale Ferguson NealeFerguson@verizon.net
Subject: Re: [v8z] Test Failures (#16)

Is this gcc 5.x or 4.4.x?


Reply to this email directly or view it on GitHub.

@john-yan
Copy link
Contributor

john-yan commented Dec 4, 2015

Could you plz try 4.4.x without the optimization to see if the 4 failures
will gone away? if it does, it could be another gcc issue.

Thanks.

On Fri, Dec 4, 2015 at 2:18 PM, Neale Ferguson notifications@github.com
wrote:

5.2.1

-------- Original message --------
From: Junliang Yan notifications@github.com
Date: 2015/12/04 14:06 (GMT-05:00)
To: andrewlow/v8z v8z@noreply.github.com
Cc: Neale Ferguson NealeFerguson@verizon.net
Subject: Re: [v8z] Test Failures (#16)

Is this gcc 5.x or 4.4.x?


Reply to this email directly or view it on GitHub.


Reply to this email directly or view it on GitHub
#16 (comment).

@nealef
Copy link
Author

nealef commented Dec 4, 2015

Will do

From: Junliang Yan notifications@github.com
Reply-To: andrewlow/v8z
<reply++0004b6fa703b90e09873c506a9d5772b441504aeb5bad54592cf000000011279a99b9
2a169ce0720198e@reply.github.com>
Date: Friday, December 4, 2015 at 2:20 PM
To: andrewlow/v8z v8z@noreply.github.com
Cc: Neale Ferguson nealeferguson@verizon.net
Subject: Re: [v8z] Test Failures (#16)

Could you plz try 4.4.x without the optimization to see if the 4 failures
will gone away? if it does, it could be another gcc issue.

Thanks.

On Fri, Dec 4, 2015 at 2:18 PM, Neale Ferguson notifications@github.com
wrote:

5.2.1

-------- Original message --------
From: Junliang Yan notifications@github.com
Date: 2015/12/04 14:06 (GMT-05:00)
To: andrewlow/v8z v8z@noreply.github.com
Cc: Neale Ferguson NealeFerguson@verizon.net
Subject: Re: [v8z] Test Failures (#16)

Is this gcc 5.x or 4.4.x?

+IBQ
Reply to this email directly or view it on GitHub.

+IBQ
Reply to this email directly or view it on GitHub
#16 (comment).

+IBQ
Reply to this email directly or view it on GitHub
#16 (comment) .

john-yan pushed a commit that referenced this issue Feb 1, 2016
…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}
john-yan pushed a commit that referenced this issue Mar 23, 2016
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}
jBarz pushed a commit that referenced this issue Mar 14, 2017
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}
mmallick-ca pushed a commit that referenced this issue Aug 23, 2018
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}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants