Bug 158572 - fix "ASSERTION FAILED: currentOffset() >= currentLineStartOffset()"
Summary: fix "ASSERTION FAILED: currentOffset() >= currentLineStartOffset()"
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: WebKit Local Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Saam Barati
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2016-06-09 11:23 PDT by Saam Barati
Modified: 2016-07-01 18:00 PDT (History)
14 users (show)

See Also:


Attachments
crashing program (95 bytes, application/octet-stream)
2016-06-09 11:29 PDT, Saam Barati
no flags Details
patch (9.26 KB, patch)
2016-07-01 14:27 PDT, Saam Barati
no flags Details | Formatted Diff | Diff
patch (9.22 KB, patch)
2016-07-01 14:30 PDT, Saam Barati
buildbot: commit-queue-
Details | Formatted Diff | Diff
Archive of layout-test-results from ews106 for mac-yosemite-wk2 (1.03 MB, application/zip)
2016-07-01 15:03 PDT, Build Bot
no flags Details
patch (9.22 KB, patch)
2016-07-01 15:15 PDT, Saam Barati
buildbot: commit-queue-
Details | Formatted Diff | Diff
Archive of layout-test-results from ews103 for mac-yosemite (915.58 KB, application/zip)
2016-07-01 15:48 PDT, Build Bot
no flags Details
Archive of layout-test-results from ews104 for mac-yosemite-wk2 (1.03 MB, application/zip)
2016-07-01 15:51 PDT, Build Bot
no flags Details
Archive of layout-test-results from ews113 for mac-yosemite (1.53 MB, application/zip)
2016-07-01 15:59 PDT, Build Bot
no flags Details
Archive of layout-test-results from ews124 for ios-simulator-wk2 (753.27 KB, application/zip)
2016-07-01 15:59 PDT, Build Bot
no flags Details
patch (8.66 KB, patch)
2016-07-01 16:18 PDT, Saam Barati
mark.lam: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Saam Barati 2016-06-09 11:23:24 PDT
Segmentation fault
ASSERTION FAILED: currentOffset() >= currentLineStartOffset()
../../Source/JavaScriptCore/parser/Lexer.h(100) : void JSC::Lexer<unsigned char>::setOffset(int, int) [T = unsigned char]
1   0xc11b73 JSC::Parser<JSC::Lexer<unsigned char> >::restoreSavePointWithError(JSC::Parser<JSC::Lexer<unsigned char> >::SavePointWithError const&)
2   0xcbdabd JSC::ASTBuilder::Expression JSC::Parser<JSC::Lexer<unsigned char> >::parseAssignmentExpression<JSC::ASTBuilder>(JSC::ASTBuilder&, JSC::Parser<JSC::Lexer<unsigned char> >::ExpressionErrorClassifier&)
3   0xc49524 JSC::ASTBuilder::Expression JSC::Parser<JSC::Lexer<unsigned char> >::parseExpression<JSC::ASTBuilder>(JSC::ASTBuilder&)
4   0xcdb71f JSC::ASTBuilder::Statement JSC::Parser<JSC::Lexer<unsigned char> >::parseExpressionOrLabelStatement<JSC::ASTBuilder>(JSC::ASTBuilder&, bool)
5   0xcd07af JSC::ASTBuilder::Statement JSC::Parser<JSC::Lexer<unsigned char> >::parseStatementListItem<JSC::ASTBuilder>(JSC::ASTBuilder&, JSC::Identifier const*&, unsigned int*)
6   0xc0473e JSC::ASTBuilder::SourceElements JSC::Parser<JSC::Lexer<unsigned char> >::parseSourceElements<JSC::ASTBuilder>(JSC::ASTBuilder&, JSC::SourceElementsMode)
7   0xbfbb74 JSC::Parser<JSC::Lexer<unsigned char> >::parseInner(JSC::Identifier const&, JSC::SourceParseMode)
8   0xdf84e9 std::unique_ptr<JSC::ProgramNode, std::default_delete<JSC::ProgramNode> > JSC::Parser<JSC::Lexer<unsigned char> >::parse<JSC::ProgramNode>(JSC::ParserError&, JSC::Identifier const&, JSC::SourceParseMode)
9   0xde921e std::unique_ptr<JSC::ProgramNode, std::default_delete<JSC::ProgramNode> > JSC::parse<JSC::ProgramNode>(JSC::VM*, JSC::SourceCode const&, JSC::Identifier const&, JSC::JSParserBuiltinMode, JSC::JSParserStrictMode, JSC::SourceParseMode, JSC::SuperBinding, JSC::ParserError&, JSC::JSTextPosition*, JSC::ConstructorKind, JSC::DerivedContextType, JSC::EvalContextType)
10  0xde2972 JSC::UnlinkedProgramCodeBlock* JSC::CodeCache::getGlobalCodeBlock<JSC::UnlinkedProgramCodeBlock, JSC::ProgramExecutable>(JSC::VM&, JSC::ProgramExecutable*, JSC::SourceCode const&, JSC::JSParserBuiltinMode, JSC::JSParserStrictMode, JSC::DebuggerMode, JSC::ParserError&, JSC::EvalContextType, JSC::VariableEnvironment const*)
11  0xddff71 JSC::CodeCache::getProgramCodeBlock(JSC::VM&, JSC::ProgramExecutable*, JSC::SourceCode const&, JSC::JSParserBuiltinMode, JSC::JSParserStrictMode, JSC::DebuggerMode, JSC::ParserError&)
12  0x1020607 JSC::JSGlobalObject::createProgramCodeBlock(JSC::ExecState*, JSC::ProgramExecutable*, JSC::JSObject**)
13  0xfa701a JSC::ProgramExecutable::initializeGlobalProperties(JSC::VM&, JSC::ExecState*, JSC::JSScope*)
14  0xa02519 JSC::Interpreter::execute(JSC::ProgramExecutable*, JSC::ExecState*, JSC::JSObject*)
15  0xf5e843 JSC::evaluate(JSC::ExecState*, JSC::SourceCode const&, JSC::JSValue, WTF::NakedPtr<JSC::Exception>&)
16  0x68d7b0
17  0x689f33 jscmain(int, char**)
18  0x689be5 main
19  0x7fa97a1b15f0 __libc_start_main
20  0x6844d9 _start
Comment 1 Saam Barati 2016-06-09 11:29:24 PDT
Created attachment 280931 [details]
crashing program
Comment 2 Radar WebKit Bug Importer 2016-06-19 16:26:19 PDT
<rdar://problem/26884092>
Comment 3 Saam Barati 2016-07-01 14:27:36 PDT
Created attachment 282579 [details]
patch
Comment 4 WebKit Commit Bot 2016-07-01 14:29:27 PDT
Attachment 282579 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/parser/Lexer.cpp:1786:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 1 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 5 Saam Barati 2016-07-01 14:30:34 PDT
Created attachment 282581 [details]
patch
Comment 6 WebKit Commit Bot 2016-07-01 14:32:05 PDT
Attachment 282581 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/parser/Lexer.cpp:1786:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 1 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 7 Build Bot 2016-07-01 15:03:33 PDT
Comment on attachment 282581 [details]
patch

Attachment 282581 [details] did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.webkit.org/results/1609227

New failing tests:
js/parser-syntax-check.html
Comment 8 Build Bot 2016-07-01 15:03:38 PDT
Created attachment 282587 [details]
Archive of layout-test-results from ews106 for mac-yosemite-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: ews106  Port: mac-yosemite-wk2  Platform: Mac OS X 10.10.5
Comment 9 Saam Barati 2016-07-01 15:15:04 PDT
Created attachment 282588 [details]
patch
Comment 10 WebKit Commit Bot 2016-07-01 15:17:34 PDT
Attachment 282588 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/parser/Lexer.cpp:1786:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 1 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 11 Build Bot 2016-07-01 15:48:45 PDT
Comment on attachment 282588 [details]
patch

Attachment 282588 [details] did not pass mac-ews (mac):
Output: http://webkit-queues.webkit.org/results/1609383

New failing tests:
js/parser-syntax-check.html
Comment 12 Build Bot 2016-07-01 15:48:49 PDT
Created attachment 282597 [details]
Archive of layout-test-results from ews103 for mac-yosemite

The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: ews103  Port: mac-yosemite  Platform: Mac OS X 10.10.5
Comment 13 Build Bot 2016-07-01 15:51:41 PDT
Comment on attachment 282588 [details]
patch

Attachment 282588 [details] did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.webkit.org/results/1609387

New failing tests:
js/parser-syntax-check.html
Comment 14 Build Bot 2016-07-01 15:51:45 PDT
Created attachment 282598 [details]
Archive of layout-test-results from ews104 for mac-yosemite-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: ews104  Port: mac-yosemite-wk2  Platform: Mac OS X 10.10.5
Comment 15 Build Bot 2016-07-01 15:59:13 PDT
Comment on attachment 282588 [details]
patch

Attachment 282588 [details] did not pass mac-debug-ews (mac):
Output: http://webkit-queues.webkit.org/results/1609396

New failing tests:
js/parser-syntax-check.html
Comment 16 Build Bot 2016-07-01 15:59:15 PDT
Comment on attachment 282588 [details]
patch

Attachment 282588 [details] did not pass ios-sim-ews (ios-simulator-wk2):
Output: http://webkit-queues.webkit.org/results/1609398

New failing tests:
js/parser-syntax-check.html
Comment 17 Build Bot 2016-07-01 15:59:17 PDT
Created attachment 282600 [details]
Archive of layout-test-results from ews113 for mac-yosemite

The attached test failures were seen while running run-webkit-tests on the mac-debug-ews.
Bot: ews113  Port: mac-yosemite  Platform: Mac OS X 10.10.5
Comment 18 Build Bot 2016-07-01 15:59:19 PDT
Created attachment 282601 [details]
Archive of layout-test-results from ews124 for ios-simulator-wk2

The attached test failures were seen while running run-webkit-tests on the ios-sim-ews.
Bot: ews124  Port: ios-simulator-wk2  Platform: Mac OS X 10.11.4
Comment 19 Saam Barati 2016-07-01 16:18:24 PDT
interestingly, the tests succeed on my machine.
Let me try removing weird characters from the source.
Comment 20 Saam Barati 2016-07-01 16:18:44 PDT
Created attachment 282603 [details]
patch
Comment 21 WebKit Commit Bot 2016-07-01 16:21:01 PDT
Attachment 282603 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/parser/Lexer.cpp:1786:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 1 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 22 Mark Lam 2016-07-01 17:37:35 PDT
Comment on attachment 282603 [details]
patch

View in context: https://bugs.webkit.org/attachment.cgi?id=282603&action=review

r=me with revised ChangeLog per our offline conversation.

> Source/JavaScriptCore/parser/Lexer.cpp:1786
> +    auto prepareToReturnToken = [&] (int lineNumber, int endOffset, int lineStartOffset, JSTextPosition endPosition) {

Let's call this lambda "fillTokenInfo" instead,  I think that would be more descriptive of what it does than "prepareToReturnToken".
Comment 23 Saam Barati 2016-07-01 18:00:39 PDT
landed in:
http://trac.webkit.org/changeset/202768