Issue 2326 in v8: Fatal error: CHECK(BailoutId(data->OsrAstId()->value()) == ast_id) failed
The group you are posting to is a
Usenet group . Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
From:
codesite-nore... @google.com
Date: Sat, 08 Sep 2012 10:08:57 +0000
Local: Sat, Sep 8 2012 6:08 am
Subject: Issue 2326 in v8: Fatal error: CHECK(BailoutId(data->OsrAstId()->value()) == ast_id) failed
Status: New
Owner: ----
New issue 2326 by jason.da... @gmail.com: Fatal error:
CHECK(BailoutId(data->OsrAstId()->value()) == ast_id) failed
http://code.google.com/p/v8/issues/detail?id=2326
I first noticed this when testing in Chrome 22.0.1229.39 beta and
23.0.1259.1 canary.
It seems a critical bug can be reliably reproduced when using the
in-browser database Crossfilter [1] and executing the same few simple
filters in sequence.
I investigated and managed to reproduce this using a simple test case in
both V8 3.12 and latest master:
https://v8.googlecode.com/svn/branches/bleeding_edge@12470
When using ia32.release, there is no error but the printed count is
incorrect. It should be 600000, and I get something like 119638.
When using ia32.debug, there is a fatal error, the trace for which is
attached.
Lastly, this problem doesn't appear to occur in Chrome stable, 21.0.1180.89.
The attached files are:
- crossfilter.js, the stock version of Crossfilter in use.
- bug.js, the test case
- debug.js, the combined crossfilter.js and 2x bug.js (it usually needs to
be run twice to reproduce/activate the JIT).
- trace.txt, the trace when ia32.debug is used.
[1]: http://square.github.com/crossfilter/
Attachments:
crossfilter.js 36.6 KB
bug.js 528 bytes
debug.js 37.6 KB
trace.txt 4.4 KB
You must
Sign in before you can post messages.
You do not have the permission required to post.
From:
codesite-nore... @google.com
Date: Sat, 08 Sep 2012 10:22:13 +0000
Local: Sat, Sep 8 2012 6:22 am
Subject: Re: Issue 2326 in v8: Fatal error: CHECK(BailoutId(data->OsrAstId()->value()) == ast_id) failed
Comment #1 on issue 2326 by jason.da... @gmail.com: Fatal error:
CHECK(BailoutId(data->OsrAstId()->value()) == ast_id) failed
http://code.google.com/p/v8/issues/detail?id=2326
I think the function where it's going wrong is filterIndex(bounds). In
particular, it seems like one of the if-statement conditionals is
completely ignored:
// Fast incremental update based on previous hi index.
if (hi1 > hi0) {
for (i = Math.max(lo1, hi0), j = hi1; i < j; ++i) {
filters[k = index[i]] ^= one;
added.push(k);
}
}
I've tried inserting console.log statements here and this block seems to
execute when hi1 <= hi0, leading to incorrect results.
You must
Sign in before you can post messages.
You do not have the permission required to post.
From:
codesite-nore... @google.com
Date: Mon, 10 Sep 2012 10:34:14 +0000
Local: Mon, Sep 10 2012 6:34 am
Subject: Re: Issue 2326 in v8: Fatal error: CHECK(BailoutId(data->OsrAstId()->value()) == ast_id) failed
Updates:
Status: Assigned
Owner: mstarzin
... @chromium.org
Cc: da
... @chromium.org jkumme
... @chromium.org
Labels: Type-Bug Priority-High
Comment #2 on issue 2326 by mstarzin... @chromium.org: Fatal error:
CHECK(BailoutId(data->OsrAstId()->value()) == ast_id) failed
http://code.google.com/p/v8/issues/detail?id=2326
I'll look into that.
You must
Sign in before you can post messages.
You do not have the permission required to post.
From:
codesite-nore... @google.com
Date: Thu, 13 Sep 2012 11:09:01 +0000
Local: Thurs, Sep 13 2012 7:09 am
Subject: Re: Issue 2326 in v8: Fatal error: CHECK(BailoutId(data->OsrAstId()->value()) == ast_id) failed
You must
Sign in before you can post messages.
You do not have the permission required to post.
From:
codesite-nore... @google.com
Date: Thu, 13 Sep 2012 17:22:28 +0000
Local: Thurs, Sep 13 2012 1:22 pm
Subject: Re: Issue 2326 in v8: Fatal error: CHECK(BailoutId(data->OsrAstId()->value()) == ast_id) failed
Comment #4 on issue 2326 by mstarzin... @chromium.org: Fatal error:
CHECK(BailoutId(data->OsrAstId()->value()) == ast_id) failed
http://code.google.com/p/v8/issues/detail?id=2326
I am able to reproduce. It seems to be another bug in sharing of optimized
code. If I run with --nocache-optimized-code, then the issue disappears.
Will investigate further.
You must
Sign in before you can post messages.
You do not have the permission required to post.
From:
codesite-nore... @google.com
Date: Thu, 13 Sep 2012 17:29:00 +0000
Subject: Re: Issue 2326 in v8: Fatal error: CHECK(BailoutId(data->OsrAstId()->value()) == ast_id) failed
Comment #5 on issue 2326 by mstarzin... @chromium.org: Fatal error:
CHECK(BailoutId(data->OsrAstId()->value()) == ast_id) failed
http://code.google.com/p/v8/issues/detail?id=2326
And yes, your initial guess that it has to do with filterIndex() was right,
that is the only code that is shared, and that happens right before the
assertion. If you run with --trace-opt you get this:
[found optimized code for: filterIndex / 26242e35]
We also share optimized code in our fast new closure stub, however
--dump-counters reveals that this wasn't the case for the code at hand:
c:V8.FastNewClosureInstallOptimized | 0 |
c:V8.FastNewClosureTotal | 0 |
c:V8.FastNewClosureTryOptimized | 0 |
You must
Sign in before you can post messages.
You do not have the permission required to post.
From:
codesite-nore... @google.com
Date: Thu, 13 Sep 2012 17:41:04 +0000
Local: Thurs, Sep 13 2012 1:41 pm
Subject: Re: Issue 2326 in v8: Fatal error: CHECK(BailoutId(data->OsrAstId()->value()) == ast_id) failed
Comment #6 on issue 2326 by jason.da... @gmail.com: Fatal error:
CHECK(BailoutId(data->OsrAstId()->value()) == ast_id) failed
http://code.google.com/p/v8/issues/detail?id=2326
Interesting, thanks for looking into this!
It seems I'm unable to obtain the counters output when a fatal error occurs
though, did you check for the error when generating your counters output
above?
You must
Sign in before you can post messages.
You do not have the permission required to post.
From:
codesite-nore... @google.com
Date: Thu, 13 Sep 2012 17:44:16 +0000
Local: Thurs, Sep 13 2012 1:44 pm
Subject: Re: Issue 2326 in v8: Fatal error: CHECK(BailoutId(data->OsrAstId()->value()) == ast_id) failed
Comment #7 on issue 2326 by jason.da... @gmail.com: Fatal error:
CHECK(BailoutId(data->OsrAstId()->value()) == ast_id) failed
http://code.google.com/p/v8/issues/detail?id=2326
Ah, but I've verified your counters output using ia32.release, sorry for
the noise:
| c:V8.FastNewClosureInstallOptimized | 0 |
| c:V8.FastNewClosureTotal
| 0 |
| c:V8.FastNewClosureTryOptimized | 0 |
You must
Sign in before you can post messages.
You do not have the permission required to post.
From:
codesite-nore... @google.com
Date: Fri, 14 Sep 2012 10:44:57 +0000
Local: Fri, Sep 14 2012 6:44 am
Subject: Re: Issue 2326 in v8: Fatal error: CHECK(BailoutId(data->OsrAstId()->value()) == ast_id) failed
You must
Sign in before you can post messages.
You do not have the permission required to post.
From:
codesite-nore... @google.com
Date: Fri, 14 Sep 2012 10:48:27 +0000
Local: Fri, Sep 14 2012 6:48 am
Subject: Re: Issue 2326 in v8: Fatal error: CHECK(BailoutId(data->OsrAstId()->value()) == ast_id) failed
You must
Sign in before you can post messages.
You do not have the permission required to post.
From:
codesite-nore... @google.com
Date: Thu, 04 Oct 2012 07:47:31 +0000
Local: Thurs, Oct 4 2012 3:47 am
Subject: Re: Issue 2326 in v8: Fatal error: CHECK(BailoutId(data->OsrAstId()->value()) == ast_id) failed
Comment #10 on issue 2326 by jason.da... @gmail.com: Fatal error:
CHECK(BailoutId(data->OsrAstId()->value()) == ast_id) failed
http://code.google.com/p/v8/issues/detail?id=2326
It looks like this bug may have reached Chrome stable (22.0.1229.79):
https://github.com/square/crossfilter/issues/40
What's the best way to make sure this fix is included in Chrome stable?
It's quite serious as it affects all JavaScript applications that use
Crossfilter.
(If there is a temporary workaround, that might be useful to know, too.)
Thanks!
You must
Sign in before you can post messages.
You do not have the permission required to post.
From:
codesite-nore... @google.com
Date: Thu, 04 Oct 2012 08:05:04 +0000
Local: Thurs, Oct 4 2012 4:05 am
Subject: Re: Issue 2326 in v8: Fatal error: CHECK(BailoutId(data->OsrAstId()->value()) == ast_id) failed
Comment #11 on issue 2326 by mstarzin... @chromium.org: Fatal error:
CHECK(BailoutId(data->OsrAstId()->value()) == ast_id) failed
http://code.google.com/p/v8/issues/detail?id=2326
Yes, we need to merge this back to V8 3.13 and 3.12 branches. I will make
sure it gets merged back.
You must
Sign in before you can post messages.
You do not have the permission required to post.
From:
codesite-nore... @google.com
Date: Thu, 04 Oct 2012 09:43:24 +0000
Local: Thurs, Oct 4 2012 5:43 am
Subject: Re: Issue 2326 in v8: Fatal error: CHECK(BailoutId(data->OsrAstId()->value()) == ast_id) failed
You must
Sign in before you can post messages.
You do not have the permission required to post.
From:
codesite-nore... @google.com
Date: Fri, 05 Oct 2012 11:34:22 +0000
Local: Fri, Oct 5 2012 7:34 am
Subject: Re: Issue 2326 in v8: Fatal error: CHECK(BailoutId(data->OsrAstId()->value()) == ast_id) failed
You must
Sign in before you can post messages.
You do not have the permission required to post.
From:
codesite-nore... @google.com
Date: Fri, 05 Oct 2012 12:17:07 +0000
Local: Fri, Oct 5 2012 8:17 am
Subject: Re: Issue 2326 in v8: Fatal error: CHECK(BailoutId(data->OsrAstId()->value()) == ast_id) failed
Comment #14 on issue 2326 by mstarzin... @chromium.org: Fatal error:
CHECK(BailoutId(data->OsrAstId()->value()) == ast_id) failed
http://code.google.com/p/v8/issues/detail?id=2326
Usually it would take less than a week to hit Chrome Canary. Unfortunately
we currently have a hard time stabilizing V8 bleeding edge so I cannot give
a time-frame in this case. And without Canary coverage we cannot merge to
stable channels. I'll update the issue when I have news.
You must
Sign in before you can post messages.
You do not have the permission required to post.
From:
codesite-nore... @google.com
Date: Fri, 12 Oct 2012 15:38:37 +0000
Local: Fri, Oct 12 2012 11:38 am
Subject: Re: Issue 2326 in v8: Fatal error: CHECK(BailoutId(data->OsrAstId()->value()) == ast_id) failed
You must
Sign in before you can post messages.
You do not have the permission required to post.