Bug 142045 - [Win] Debug-only JavaScriptCore failures
Summary: [Win] Debug-only JavaScriptCore failures
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: PC All
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-02-26 09:09 PST by Brent Fulgham
Modified: 2015-02-26 10:36 PST (History)
6 users (show)

See Also:


Attachments
Patch (1.19 KB, patch)
2015-02-26 10:35 PST, Michael Saboff
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Brent Fulgham 2015-02-26 09:09:42 PST
The following JSC test failures have been happening for some time (at least since February 18th, probably before):

** The following JSC stress test failures have been introduced:
	stress/repeated-arity-check-fail.js.always-trigger-copy-phase
	stress/repeated-arity-check-fail.js.default
	stress/repeated-arity-check-fail.js.dfg-eager
	stress/repeated-arity-check-fail.js.dfg-eager-no-cjit-validate
	stress/repeated-arity-check-fail.js.no-cjit-validate-phases
	stress/repeated-arity-check-fail.js.no-llint

Results for JSC stress tests:
    6 failures found.
Comment 1 Brent Fulgham 2015-02-26 09:12:09 PST
Is there a way to skip these tests just in Debug builds?
Comment 2 Michael Saboff 2015-02-26 09:31:56 PST
(In reply to comment #1)
> Is there a way to skip these tests just in Debug builds?

I just checked and we currently don't have a skip if debug.  We'd have to change the way that run-esc-stress-test is called as I don't think that it currently has a way of knowing debug vs. release.

What do the errors look like?  The test is simple and arity is important.  It could be due to the loop count being too big.
Comment 3 Brent Fulgham 2015-02-26 09:52:46 PST
(In reply to comment #2)
> What do the errors look like?  The test is simple and arity is important. 
> It could be due to the loop count being too big.

It didn't fail for me locally (running only the stress tests). Could available memory be related? I think the test bots have less RAM than my dev machine.

I'm rerunning all JSC tests, just like the bot did when it failed, to see if that makes any difference.
Comment 4 Brent Fulgham 2015-02-26 10:02:55 PST
Here is the failure information:

Skipping jsc-layout-tests.yaml/js/slow-stress/script-tests/new-spread.js

stress/repeated-arity-check-fail.js.default: Timed out after 293.000000 seconds!
stress/repeated-arity-check-fail.js.default: 1   004B35A1
stress/repeated-arity-check-fail.js.default: 2   1000559C
stress/repeated-arity-check-fail.js.default: 3   0050596F
stress/repeated-arity-check-fail.js.default: 4   00505ACD
stress/repeated-arity-check-fail.js.default: 5   00506059
stress/repeated-arity-check-fail.js.default: 6   004CEB92
stress/repeated-arity-check-fail.js.default: 7   005058B3
stress/repeated-arity-check-fail.js.default: 8   00507456
stress/repeated-arity-check-fail.js.default: 9   00514A10
stress/repeated-arity-check-fail.js.default: 10  00514B38
stress/repeated-arity-check-fail.js.default: 11  769B7C04
stress/repeated-arity-check-fail.js.default: 12  7702B5AF
stress/repeated-arity-check-fail.js.default: 13  7702B57A
stress/repeated-arity-check-fail.js.default: test_script_6405: line 2: 10420 Segmentation fault      "$@" ../../.vm/JavaScriptCore.framework/Resources/jsc --useFTLJIT\=false --enableFunctionDotArguments\=true repeated-arity-check-fail.js
stress/repeated-arity-check-fail.js.default: ERROR: Unexpected exit code: 139
stress/repeated-arity-check-fail.js.no-llint: Timed out after 293.000000 seconds!
stress/repeated-arity-check-fail.js.no-llint: 1   004235A1
stress/repeated-arity-check-fail.js.no-llint: 2   1000559C
stress/repeated-arity-check-fail.js.no-llint: 3   0047596F
stress/repeated-arity-check-fail.js.no-llint: 4   00475ACD
stress/repeated-arity-check-fail.js.no-llint: 5   00476059
stress/repeated-arity-check-fail.js.no-llint: 6   0043EB92
stress/repeated-arity-check-fail.js.no-llint: 7   004758B3
stress/repeated-arity-check-fail.js.no-llint: 8   00477456
stress/repeated-arity-check-fail.js.no-llint: 9   00484A10
stress/repeated-arity-check-fail.js.no-llint: 10  00484B38
stress/repeated-arity-check-fail.js.no-llint: 11  769B7C04
stress/repeated-arity-check-fail.js.no-llint: 12  7702B5AF
stress/repeated-arity-check-fail.js.no-llint: 13  7702B57A
stress/repeated-arity-check-fail.js.no-llint: test_script_6406: line 2:  5624 Segmentation fault      "$@" ../../.vm/JavaScriptCore.framework/Resources/jsc --useFTLJIT\=false --enableFunctionDotArguments\=true --useLLInt\=false repeated-arity-check-fail.js
stress/repeated-arity-check-fail.js.no-llint: ERROR: Unexpected exit code: 139
stress/repeated-arity-check-fail.js.always-trigger-copy-phase: Timed out after 293.000000 seconds!
stress/repeated-arity-check-fail.js.always-trigger-copy-phase: 1   01D135A1
stress/repeated-arity-check-fail.js.always-trigger-copy-phase: 2   1000559C
stress/repeated-arity-check-fail.js.always-trigger-copy-phase: 3   01D6596F
stress/repeated-arity-check-fail.js.always-trigger-copy-phase: 4   01D65ACD
stress/repeated-arity-check-fail.js.always-trigger-copy-phase: 5   01D66059
stress/repeated-arity-check-fail.js.always-trigger-copy-phase: 6   01D2EB92
stress/repeated-arity-check-fail.js.always-trigger-copy-phase: 7   01D658B3
stress/repeated-arity-check-fail.js.always-trigger-copy-phase: 8   01D67456
stress/repeated-arity-check-fail.js.always-trigger-copy-phase: 9   01D74A10
stress/repeated-arity-check-fail.js.always-trigger-copy-phase: 10  01D74B38
stress/repeated-arity-check-fail.js.always-trigger-copy-phase: 11  769B7C04
stress/repeated-arity-check-fail.js.always-trigger-copy-phase: 12  7702B5AF
stress/repeated-arity-check-fail.js.always-trigger-copy-phase: 13  7702B57A
stress/repeated-arity-check-fail.js.always-trigger-copy-phase: test_script_6407: line 2: 13884 Segmentation fault      "$@" ../../.vm/JavaScriptCore.framework/Resources/jsc --useFTLJIT\=false --enableFunctionDotArguments\=true --minHeapUtilization\=2.0 --minCopiedBlockUtilization\=2.0 repeated-arity-check-fail.js
stress/repeated-arity-check-fail.js.always-trigger-copy-phase: ERROR: Unexpected exit code: 139
stress/repeated-arity-check-fail.js.no-cjit-validate-phases: Timed out after 293.000000 seconds!
stress/repeated-arity-check-fail.js.no-cjit-validate-phases: 1   004235A1
stress/repeated-arity-check-fail.js.no-cjit-validate-phases: 2   1000559C
stress/repeated-arity-check-fail.js.no-cjit-validate-phases: 3   0047596F
stress/repeated-arity-check-fail.js.no-cjit-validate-phases: 4   00475ACD
stress/repeated-arity-check-fail.js.no-cjit-validate-phases: 5   00476059
stress/repeated-arity-check-fail.js.no-cjit-validate-phases: 6   0043EB92
stress/repeated-arity-check-fail.js.no-cjit-validate-phases: 7   004758B3
stress/repeated-arity-check-fail.js.no-cjit-validate-phases: 8   00477456
stress/repeated-arity-check-fail.js.no-cjit-validate-phases: 9   00484A10
stress/repeated-arity-check-fail.js.no-cjit-validate-phases: 10  00484B38
stress/repeated-arity-check-fail.js.no-cjit-validate-phases: 11  769B7C04
stress/repeated-arity-check-fail.js.no-cjit-validate-phases: 12  7702B5AF
stress/repeated-arity-check-fail.js.no-cjit-validate-phases: 13  7702B57A
stress/repeated-arity-check-fail.js.no-cjit-validate-phases: test_script_6408: line 2: 11800 Segmentation fault      "$@" ../../.vm/JavaScriptCore.framework/Resources/jsc --useFTLJIT\=false --enableFunctionDotArguments\=true --validateBytecode\=true --validateGraphAtEachPhase\=true --enableConcurrentJIT\=false --thresholdForJITAfterWarmUp\=100 repeated-arity-check-fail.js
stress/repeated-arity-check-fail.js.no-cjit-validate-phases: ERROR: Unexpected exit code: 139
stress/repeated-arity-check-fail.js.dfg-eager: Timed out after 293.000000 seconds!
stress/repeated-arity-check-fail.js.dfg-eager: 1   01CF35A1
stress/repeated-arity-check-fail.js.dfg-eager: 2   1000559C
stress/repeated-arity-check-fail.js.dfg-eager: 3   01D4596F
stress/repeated-arity-check-fail.js.dfg-eager: 4   01D45ACD
stress/repeated-arity-check-fail.js.dfg-eager: 5   01D46059
stress/repeated-arity-check-fail.js.dfg-eager: 6   01D0EB92
stress/repeated-arity-check-fail.js.dfg-eager: 7   01D458B3
stress/repeated-arity-check-fail.js.dfg-eager: 8   01D47456
stress/repeated-arity-check-fail.js.dfg-eager: 9   01D54A10
stress/repeated-arity-check-fail.js.dfg-eager: 10  01D54B38
stress/repeated-arity-check-fail.js.dfg-eager: 11  769B7C04
stress/repeated-arity-check-fail.js.dfg-eager: 12  7702B5AF
stress/repeated-arity-check-fail.js.dfg-eager: 13  7702B57A
stress/repeated-arity-check-fail.js.dfg-eager: test_script_6409: line 2: 12568 Segmentation fault      "$@" ../../.vm/JavaScriptCore.framework/Resources/jsc --useFTLJIT\=false --enableFunctionDotArguments\=true --thresholdForJITAfterWarmUp\=10 --thresholdForJITSoon\=10 --thresholdForOptimizeAfterWarmUp\=20 --thresholdForOptimizeAfterLongWarmUp\=20 --thresholdForOptimizeSoon\=20 --thresholdForFTLOptimizeAfterWarmUp\=20 --thresholdForFTLOptimizeSoon\=20 --maximumEvalCacheableSourceLength\=150000 repeated-arity-check-fail.js
stress/repeated-arity-check-fail.js.dfg-eager-no-cjit-validate: Timed out after 293.000000 seconds!
stress/repeated-arity-check-fail.js.dfg-eager-no-cjit-validate: 1   005835A1
stress/repeated-arity-check-fail.js.dfg-eager-no-cjit-validate: 2   1000559C
stress/repeated-arity-check-fail.js.dfg-eager-no-cjit-validate: 3   005D596F
stress/repeated-arity-check-fail.js.dfg-eager-no-cjit-validate: 4   005D5ACD
stress/repeated-arity-check-fail.js.dfg-eager-no-cjit-validate: 5   005D6059
stress/repeated-arity-check-fail.js.dfg-eager-no-cjit-validate: 6   0059EB92
stress/repeated-arity-check-fail.js.dfg-eager-no-cjit-validate: 7   005D58B3
stress/repeated-arity-check-fail.js.dfg-eager-no-cjit-validate: 8   005D7456
stress/repeated-arity-check-fail.js.dfg-eager-no-cjit-validate: 9   005E4A10
stress/repeated-arity-check-fail.js.dfg-eager-no-cjit-validate: 10  005E4B38
stress/repeated-arity-check-fail.js.dfg-eager-no-cjit-validate: 11  769B7C04
stress/repeated-arity-check-fail.js.dfg-eager-no-cjit-validate: 12  7702B5AF
stress/repeated-arity-check-fail.js.dfg-eager-no-cjit-validate: 13  7702B57A
stress/repeated-arity-check-fail.js.dfg-eager-no-cjit-validate: test_script_6410: line 2:  8744 Segmentation fault      "$@" ../../.vm/JavaScriptCore.framework/Resources/jsc --useFTLJIT\=false --enableFunctionDotArguments\=true --validateGraph\=true --enableConcurrentJIT\=false --thresholdForJITAfterWarmUp\=100 --thresholdForJITAfterWarmUp\=10 --thresholdForJITSoon\=10 --thresholdForOptimizeAfterWarmUp\=20 --thresholdForOptimizeAfterLongWarmUp\=20 --thresholdForOptimizeSoon\=20 --thresholdForFTLOptimizeAfterWarmUp\=20 --thresholdForFTLOptimizeSoon\=20 --maximumEvalCacheableSourceLength\=150000 repeated-arity-check-fail.js
stress/repeated-arity-check-fail.js.dfg-eager: ERROR: Unexpected exit code: 139
stress/repeated-arity-check-fail.js.dfg-eager-no-cjit-validate: ERROR: Unexpected exit code: 139
10394/10394 (failed 6)

** The following JSC stress test failures have been introduced:
        stress/repeated-arity-check-fail.js.always-trigger-copy-phase
        stress/repeated-arity-check-fail.js.default
        stress/repeated-arity-check-fail.js.dfg-eager
        stress/repeated-arity-check-fail.js.dfg-eager-no-cjit-validate
        stress/repeated-arity-check-fail.js.no-cjit-validate-phases
        stress/repeated-arity-check-fail.js.no-llint

Results for JSC stress tests:
    6 failures found.


bfulgham@fulgbr-pc ~/Projects/WebKit/OpenSource
$
Comment 5 Brent Fulgham 2015-02-26 10:13:14 PST
It looks like you can only reproduce this bug in the context of the full suite of test runs. Maybe this is some kind of resource constraint?

I just re-ran the failing test from the shell (using Filip's trick) and although it failed during the main test run, it would not fail when run singly.
Comment 6 Filip Pizlo 2015-02-26 10:14:48 PST
(In reply to comment #5)
> It looks like you can only reproduce this bug in the context of the full
> suite of test runs. Maybe this is some kind of resource constraint?
> 
> I just re-ran the failing test from the shell (using Filip's trick) and
> although it failed during the main test run, it would not fail when run
> singly.

How long does the test run for in debug mode, if you just run it using my trick?
Comment 7 Brent Fulgham 2015-02-26 10:27:49 PST
(In reply to comment #6)
> (In reply to comment #5)
> > It looks like you can only reproduce this bug in the context of the full
> > suite of test runs. Maybe this is some kind of resource constraint?
> > 
> > I just re-ran the failing test from the shell (using Filip's trick) and
> > although it failed during the main test run, it would not fail when run
> > singly.
> 
> How long does the test run for in debug mode, if you just run it using my
> trick?

It runs for a few (three or four?) minutes (I didn't time it).
Comment 8 Michael Saboff 2015-02-26 10:29:56 PST
(In reply to comment #7)
> (In reply to comment #6)
> > (In reply to comment #5)
> > > It looks like you can only reproduce this bug in the context of the full
> > > suite of test runs. Maybe this is some kind of resource constraint?
> > > 
> > > I just re-ran the failing test from the shell (using Filip's trick) and
> > > although it failed during the main test run, it would not fail when run
> > > singly.
> > 
> > How long does the test run for in debug mode, if you just run it using my
> > trick?
> 
> It runs for a few (three or four?) minutes (I didn't time it).

It is probably taking longer in full runs due to other threads.

The current loop count is 10,000,000.  Let's reduce it to 1,000,000, which should eliminate the issue but still test everything.
Comment 9 Michael Saboff 2015-02-26 10:33:03 PST
(In reply to comment #8)
> (In reply to comment #7)
> > (In reply to comment #6)
> > > (In reply to comment #5)
> > > > It looks like you can only reproduce this bug in the context of the full
> > > > suite of test runs. Maybe this is some kind of resource constraint?
> > > > 
> > > > I just re-ran the failing test from the shell (using Filip's trick) and
> > > > although it failed during the main test run, it would not fail when run
> > > > singly.
> > > 
> > > How long does the test run for in debug mode, if you just run it using my
> > > trick?
> > 
> > It runs for a few (three or four?) minutes (I didn't time it).
> 
> It is probably taking longer in full runs due to other threads.
> 
> The current loop count is 10,000,000.  Let's reduce it to 1,000,000, which
> should eliminate the issue but still test everything.

Going to reduce it to 10,000 as that is sufficient to get into the FTL.

Patch coming...
Comment 10 Michael Saboff 2015-02-26 10:35:06 PST
Created attachment 247431 [details]
Patch
Comment 11 Michael Saboff 2015-02-26 10:36:38 PST
Patch rubber stamped by Filip Pizlo.
Comment 12 Michael Saboff 2015-02-26 10:36:59 PST
Committed r180684: <http://trac.webkit.org/changeset/180684>