Closed Bug 1623542 Opened 5 years ago Closed 4 years ago

ThreadSanitizer: data race [@ lengthField] vs. [@ pthread_create]

Categories

(Core :: JavaScript Engine, defect, P2)

x86_64
Linux
defect

Tracking

()

RESOLVED DUPLICATE of bug 1619162
Tracking Status
firefox78 --- fix-optional

People

(Reporter: jkratzer, Assigned: djvj)

References

(Blocks 2 open bugs)

Details

(Keywords: csectype-race, sec-moderate, Whiteboard: [stockwell needswork:owner])

Attachments

(1 file)

The attached crash information was detected while fuzzing with ThreadSanitizer on mozilla-central revision 20200318-70f8ce3e2d39.

For detailed crash information, see attachment.

General information about TSan reports

Why fix races?

Data races are undefined behavior and can cause crashes as well as correctness issues. Compiler optimizations can cause racy code to have unpredictable and hard-to-reproduce behavior.

Rating

If you think this race can cause crashes or correctness issues, it would be great to rate the bug appropriately as P1/P2 and/or indicating this in the bug. This makes it a lot easier for us to assess the actual impact that these reports make and if they are helpful to you.

False Positives / Benign Races

Typically, races reported by TSan are not false positives [1], but it is possible that the race is benign. Even in this case it would be nice to come up with a fix if it is easily doable and does not regress performance. Every race that we cannot fix will have to remain on the suppression list and slows down the overall TSan performance. Also note that seemingly benign races can possibly be harmful (also depending on the compiler, optimizations and the architecture) [2][3].

[1] One major exception is the involvement of uninstrumented code from third-party libraries.
[2] http://software.intel.com/en-us/blogs/2013/01/06/benign-data-races-what-could-possibly-go-wrong
[3] How to miscompile programs with "benign" data races: https://www.usenix.org/legacy/events/hotpar11/tech/final_files/Boehm.pdf

Suppressing unfixable races

If the bug cannot be fixed, then a runtime suppression needs to be added in mozglue/build/TsanOptions.cpp. The suppressions match on the full stack, so it should be picked such that it is unique to this particular race. The bug number of this bug should also be included so we have some documentation on why this suppression was added.

This report has a broken second stack, but the first stack is in the parser again.

:jorendorff, do you think this is the same issue that we discussed before (races in the parser fixed by Stencil)?

We can also probably unhide this, it's unlikely to be s-s.

Component: General → JavaScript Engine
Flags: needinfo?(jorendorff)
Group: core-security → javascript-core-security
Blocks: domino

There are 48 total failures since April 12, all on linux1804-64-tsan opt

Recent failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=298904589&repo=autoland&lineNumber=2307

[task 2020-04-22T20:26:41.138Z] 20:26:41 INFO - TEST-START | services/sync/tests/unit/test_addons_engine.js
[task 2020-04-22T20:26:53.045Z] 20:26:53 WARNING - TEST-UNEXPECTED-FAIL | services/sync/tests/unit/test_addons_engine.js | xpcshell return code: -6
[task 2020-04-22T20:26:53.045Z] 20:26:53 INFO - TEST-INFO took 11906ms
[task 2020-04-22T20:26:53.045Z] 20:26:53 INFO - >>>>>>>
[task 2020-04-22T20:26:53.045Z] 20:26:53 INFO - (xpcshell/head.js) | test MAIN run_test pending (1)
[task 2020-04-22T20:26:53.045Z] 20:26:53 INFO - (xpcshell/head.js) | test run_next_test 0 pending (2)
[task 2020-04-22T20:26:53.045Z] 20:26:53 INFO - (xpcshell/head.js) | test MAIN run_test finished (2)
[task 2020-04-22T20:26:53.045Z] 20:26:53 INFO - running event loop
[task 2020-04-22T20:26:53.045Z] 20:26:53 INFO - services/sync/tests/unit/test_addons_engine.js | Starting head_setup
[task 2020-04-22T20:26:53.045Z] 20:26:53 INFO - (xpcshell/head.js) | test head_setup pending (2)
[task 2020-04-22T20:26:53.045Z] 20:26:53 INFO - (xpcshell/head.js) | test run_next_test 0 finished (2)
[task 2020-04-22T20:26:53.047Z] 20:26:53 INFO - PID 12022 | 1587587204770 Sync.Engine.Addons DEBUG SyncEngine initialized: addons
[task 2020-04-22T20:26:53.047Z] 20:26:53 INFO - PID 12022 | 1587587204774 Sync.AddonsReconciler TRACE Loading json from disk: addonsreconciler
[task 2020-04-22T20:26:53.047Z] 20:26:53 INFO - PID 12022 | 1587587204778 Sync.AddonsReconciler DEBUG No data seen in loaded file: addonsreconciler
[task 2020-04-22T20:26:53.047Z] 20:26:53 INFO - PID 12022 | 1587587204800 Sync.Engine.Forms DEBUG Engine constructed
[task 2020-04-22T20:26:53.047Z] 20:26:53 INFO - PID 12022 | 1587587204812 Sync.Engine.Forms DEBUG SyncEngine initialized: forms
[task 2020-04-22T20:26:53.047Z] 20:26:53 INFO - PID 12022 | 1587587204844 Sync.Engine.History DEBUG Engine constructed
[task 2020-04-22T20:26:53.047Z] 20:26:53 INFO - PID 12022 | 1587587204855 Sync.Engine.History DEBUG SyncEngine initialized: history
[task 2020-04-22T20:26:53.047Z] 20:26:53 INFO - PID 12022 | 1587587204878 Sync.Engine.Passwords DEBUG Engine constructed
[task 2020-04-22T20:26:53.047Z] 20:26:53 INFO - PID 12022 | 1587587204886 Sync.Engine.Passwords DEBUG SyncEngine initialized: passwords
[task 2020-04-22T20:26:53.047Z] 20:26:53 INFO - PID 12022 | 1587587204907 Sync.Engine.Prefs DEBUG Engine constructed
[task 2020-04-22T20:26:53.047Z] 20:26:53 INFO - PID 12022 | 1587587204916 Sync.Engine.Prefs DEBUG SyncEngine initialized: prefs
[task 2020-04-22T20:26:53.049Z] 20:26:53 INFO - PID 12022 | 1587587204938 Sync.Engine.Tabs DEBUG Engine constructed
[task 2020-04-22T20:26:53.050Z] 20:26:53 INFO - PID 12022 | 1587587204951 Sync.Engine.Tabs DEBUG SyncEngine initialized: tabs
[task 2020-04-22T20:26:53.051Z] 20:26:53 INFO - PID 12022 | 1587587204952 Sync.Engine.Tabs DEBUG Resetting tabs last sync time
[task 2020-04-22T20:26:53.051Z] 20:26:53 INFO - PID 12022 | 1587587204965 Sync.Engine.Extension-Storage DEBUG Engine constructed
[task 2020-04-22T20:26:53.051Z] 20:26:53 INFO - PID 12022 | 1587587204973 Sync.Engine.Extension-Storage DEBUG SyncEngine initialized: extension-storage
[task 2020-04-22T20:26:53.052Z] 20:26:53 INFO - PID 12022 | 1587587205035 Sync.Engine.Bookmarks DEBUG Engine constructed
[task 2020-04-22T20:26:53.053Z] 20:26:53 INFO - PID 12022 | 1587587205043 Sync.Engine.Bookmarks DEBUG SyncEngine initialized: bookmarks
[task 2020-04-22T20:26:53.053Z] 20:26:53 INFO - PID 12022 | 1587587205045 Sync.Service INFO Mozilla/5.0 (X11; Linux x86_64; rv:77.0) Gecko/20100101 XPCShell/1
[task 2020-04-22T20:26:53.053Z] 20:26:53 INFO - PID 12022 | 1587587205112 Sync.Status DEBUG Status.login: error.login.reason.no_username => error.login.reason.no_username
[task 2020-04-22T20:26:53.053Z] 20:26:53 INFO - PID 12022 | 1587587205113 Sync.Status DEBUG Status.service: service.client_not_configured => service.client_not_configured
[task 2020-04-22T20:26:53.054Z] 20:26:53 INFO - PID 12022 | 1587587205113 Sync.Status DEBUG Status.service: service.client_not_configured => service.client_not_configured
[task 2020-04-22T20:26:53.054Z] 20:26:53 INFO - (xpcshell/head.js) | test run_next_test 1 pending (2)
[task 2020-04-22T20:26:53.055Z] 20:26:53 INFO - (xpcshell/head.js) | test head_setup finished (2)
[task 2020-04-22T20:26:53.055Z] 20:26:53 INFO - PID 12022 | 1587587205125 Sync.SyncScheduler TRACE Handling weave:service:ready
[task 2020-04-22T20:26:53.055Z] 20:26:53 INFO - services/sync/tests/unit/test_addons_engine.js | Starting setup
[task 2020-04-22T20:26:53.055Z] 20:26:53 INFO - (xpcshell/head.js) | test setup pending (2)

[task 2020-04-22T20:26:53.109Z] 20:26:53 INFO - PID 12022 | WARNING: ThreadSanitizer: data race (pid=12022)
[task 2020-04-22T20:26:53.109Z] 20:26:53 INFO - PID 12022 | Read of size 8 at 0x7f04e645bf20 by thread T7:
[task 2020-04-22T20:26:53.109Z] 20:26:53 INFO - PID 12022 | #0 lengthField /builds/worker/checkouts/gecko/js/src/gc/Cell.h:585:21 (libxul.so+0x6aee6b6)
[task 2020-04-22T20:26:53.109Z] 20:26:53 INFO - PID 12022 | #1 length /builds/worker/checkouts/gecko/js/src/vm/StringType.h:400:42 (libxul.so+0x6aee6b6)
[task 2020-04-22T20:26:53.109Z] 20:26:53 INFO - PID 12022 | #2 currentNameHasEscapes /builds/worker/checkouts/gecko/js/src/frontend/TokenStream.h:743:62 (libxul.so+0x6aee6b6)
[task 2020-04-22T20:26:53.110Z] 20:26:53 INFO - PID 12022 | #3 labelOrIdentifierReference /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:9716:30 (libxul.so+0x6aee6b6)
[task 2020-04-22T20:26:53.110Z] 20:26:53 INFO - PID 12022 | #4 identifierReference /builds/worker/checkouts/gecko/js/src/frontend/Parser.h:1309:12 (libxul.so+0x6aee6b6)
[task 2020-04-22T20:26:53.122Z] 20:26:53 INFO - PID 12022 | #5 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::assignExpr(js::frontend::InHandling, js::frontend::YieldHandling, js::frontend::TripledotHandling, js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::PossibleError*, js::frontend::ParserBase::InvokedPrediction) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:8590:39 (libxul.so+0x6aee6b6)
[task 2020-04-22T20:26:53.122Z] 20:26:53 INFO - PID 12022 | #6 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::assignExpr(js::frontend::InHandling, js::frontend::YieldHandling, js::frontend::TripledotHandling, js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::PossibleError*, js::frontend::ParserBase::InvokedPrediction) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:8847:14 (libxul.so+0x6af00b0)
[task 2020-04-22T20:26:53.122Z] 20:26:53 INFO - PID 12022 | #7 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::expr(js::frontend::InHandling, js::frontend::YieldHandling, js::frontend::TripledotHandling, js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::PossibleError*, js::frontend::ParserBase::InvokedPrediction) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:8252:13 (libxul.so+0x6adce85)
[task 2020-04-22T20:26:53.123Z] 20:26:53 INFO - PID 12022 | #8 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::expressionStatement(js::frontend::YieldHandling, js::frontend::ParserBase::InvokedPrediction) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:5695:17 (libxul.so+0x6adf3c4)
[task 2020-04-22T20:26:53.123Z] 20:26:53 INFO - PID 12022 | #9 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::statementListItem(js::frontend::YieldHandling, bool) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp (libxul.so+0x6adeb77)
[task 2020-04-22T20:26:53.123Z] 20:26:53 INFO - PID 12022 | #10 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::statementList(js::frontend::YieldHandling) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:3679:17 (libxul.so+0x6adb909)
[task 2020-04-22T20:26:53.123Z] 20:26:53 INFO - PID 12022 | #11 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::functionBody(js::frontend::InHandling, js::frontend::YieldHandling, js::frontend::FunctionSyntaxKind, js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::FunctionBodyType) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:1994:12 (libxul.so+0x6ae9818)
[task 2020-04-22T20:26:53.124Z] 20:26:53 INFO - PID 12022 | #12 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::functionFormalParametersAndBody(js::frontend::InHandling, js::frontend::YieldHandling, js::frontend::FunctionNode**, js::frontend::FunctionSyntaxKind, mozilla::Maybe<unsigned int> const&, bool) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:3256:12 (libxul.so+0x6ae79ac)
[task 2020-04-22T20:26:53.124Z] 20:26:53 INFO - PID 12022 | #13 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::innerFunctionForFunctionBox(js::frontend::FunctionNode*, js::frontend::ParseContext*, js::frontend::FunctionBox*, js::frontend::InHandling, js::frontend::YieldHandling, js::frontend::FunctionSyntaxKind, js::frontend::Directives*) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:3003:8 (libxul.so+0x6ae6c25)
[task 2020-04-22T20:26:53.125Z] 20:26:53 INFO - PID 12022 | #14 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::innerFunction(js::frontend::FunctionNode*, js::frontend::ParseContext*, JS::Handle<js::frontend::FunctionCreationData>, unsigned int, js::frontend::InHandling, js::frontend::YieldHandling, js::frontend::FunctionSyntaxKind, js::GeneratorKind, js::FunctionAsyncKind, bool, js::frontend::Directives, js::frontend::Directives*) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:3036:32 (libxul.so+0x6b06799)
[task 2020-04-22T20:26:53.125Z] 20:26:53 INFO - PID 12022 | #15 js::frontend::Parser<js::frontend::FullParseHandler, char16_t>::trySyntaxParseInnerFunction(js::frontend::FunctionNode**, JS::Handle<js::frontend::FunctionCreationData>, unsigned int, js::frontend::InHandling, js::frontend::YieldHandling, js::frontend::FunctionSyntaxKind, js::GeneratorKind, js::FunctionAsyncKind, bool, js::frontend::Directives, js::frontend::Directives*) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:2943:32 (libxul.so+0x6addc7b)
[task 2020-04-22T20:26:53.125Z] 20:26:53 INFO - PID 12022 | #16 trySyntaxParseInnerFunction /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:2981:27 (libxul.so+0x6aeb891)
[task 2020-04-22T20:26:53.126Z] 20:26:53 INFO - PID 12022 | #17 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::functionDefinition(js::frontend::FunctionNode*, unsigned int, js::frontend::InHandling, js::frontend::YieldHandling, JS::Handle<JSAtom*>, js::frontend::FunctionSyntaxKind, js::GeneratorKind, js::FunctionAsyncKind, bool) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:2810:9 (libxul.so+0x6aeb891)
[task 2020-04-22T20:26:53.126Z] 20:26:53 INFO - PID 12022 | #18 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::assignExpr(js::frontend::InHandling, js::frontend::YieldHandling, js::frontend::TripledotHandling, js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::PossibleError*, js::frontend::ParserBase::InvokedPrediction) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:8726:12 (libxul.so+0x6aefc45)
[task 2020-04-22T20:26:53.127Z] 20:26:53 INFO - PID 12022 | #19 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::argumentList(js::frontend::YieldHandling, bool*, js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::PossibleError*) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:9193:20 (libxul.so+0x6af99a7)
[task 2020-04-22T20:26:53.127Z] 20:26:53 INFO - PID 12022 | #20 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::memberCall(js::frontend::TokenKind, js::frontend::ParseNode*, js::frontend::YieldHandling, js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::PossibleError*, js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::OptionalKind) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:9566:17 (libxul.so+0x6af8cf7)
[task 2020-04-22T20:26:53.128Z] 20:26:53 INFO - PID 12022 | #21 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::memberExpr(js::frontend::YieldHandling, js::frontend::TripledotHandling, js::frontend::TokenKind, bool, js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::PossibleError*, js::frontend::ParserBase::InvokedPrediction) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:9394:22 (libxul.so+0x6af8152)
[task 2020-04-22T20:26:53.128Z] 20:26:53 INFO - PID 12022 | #22 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::optionalExpr(js::frontend::YieldHandling, js::frontend::TripledotHandling, js::frontend::TokenKind, js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::PossibleError*, js::frontend::ParserBase::InvokedPrediction) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:8917:14 (libxul.so+0x6af71eb)
[task 2020-04-22T20:26:53.129Z] 20:26:53 INFO - PID 12022 | #23 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::unaryExpr(js::frontend::YieldHandling, js::frontend::TripledotHandling, js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::PossibleError*, js::frontend::ParserBase::InvokedPrediction) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:9112:19 (libxul.so+0x6af67a7)
[task 2020-04-22T20:26:53.129Z] 20:26:53 INFO - PID 12022 | #24 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::orExpr(js::frontend::InHandling, js::frontend::YieldHandling, js::frontend::TripledotHandling, js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::PossibleError*, js::frontend::ParserBase::InvokedPrediction) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:8408:10 (libxul.so+0x6af5f0e)
[task 2020-04-22T20:26:53.130Z] 20:26:53 INFO - PID 12022 | #25 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::condExpr(js::frontend::InHandling, js::frontend::YieldHandling, js::frontend::TripledotHandling, js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::PossibleError*, js::frontend::ParserBase::InvokedPrediction) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:8520:20 (libxul.so+0x6af5b9e)
[task 2020-04-22T20:26:53.130Z] 20:26:53 INFO - PID 12022 | #26 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::assignExpr(js::frontend::InHandling, js::frontend::YieldHandling, js::frontend::TripledotHandling, js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::PossibleError*, js::frontend::ParserBase::InvokedPrediction) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:8670:11 (libxul.so+0x6aef281)
[task 2020-04-22T20:26:53.130Z] 20:26:53 INFO - PID 12022 | #27 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::expr(js::frontend::InHandling, js::frontend::YieldHandling, js::frontend::TripledotHandling, js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::PossibleError*, js::frontend::ParserBase::InvokedPrediction) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:8252:13 (libxul.so+0x6adce85)
[task 2020-04-22T20:26:53.131Z] 20:26:53 INFO - PID 12022 | #28 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::returnStatement(js::frontend::YieldHandling) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:6467:18 (libxul.so+0x6ae396b)
[task 2020-04-22T20:26:53.131Z] 20:26:53 INFO - PID 12022 | #29 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::statementListItem(js::frontend::YieldHandling, bool) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:8186:14 (libxul.so+0x6adeb8b)
[task 2020-04-22T20:26:53.132Z] 20:26:53 INFO - PID 12022 | #30 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::statementList(js::frontend::YieldHandling) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:3679:17 (libxul.so+0x6adb909)
[task 2020-04-22T20:26:53.132Z] 20:26:53 INFO - PID 12022 | #31 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::functionBody(js::frontend::InHandling, js::frontend::YieldHandling, js::frontend::FunctionSyntaxKind, js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::FunctionBodyType) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:1994:12 (libxul.so+0x6ae9818)
[task 2020-04-22T20:26:53.133Z] 20:26:53 INFO - PID 12022 | #32 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::functionFormalParametersAndBody(js::frontend::InHandling, js::frontend::YieldHandling, js::frontend::FunctionNode**, js::frontend::FunctionSyntaxKind, mozilla::Maybe<unsigned int> const&, bool) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:3256:12 (libxul.so+0x6ae79ac)
[task 2020-04-22T20:26:53.133Z] 20:26:53 INFO - PID 12022 | #33 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::innerFunctionForFunctionBox(js::frontend::FunctionNode*, js::frontend::ParseContext*, js::frontend::FunctionBox*, js::frontend::InHandling, js::frontend::YieldHandling, js::frontend::FunctionSyntaxKind, js::frontend::Directives*) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:3003:8 (libxul.so+0x6ae6c25)
[task 2020-04-22T20:26:53.134Z] 20:26:53 INFO - PID 12022 | #34 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::innerFunction(js::frontend::FunctionNode*, js::frontend::ParseContext*, JS::Handle<js::frontend::FunctionCreationData>, unsigned int, js::frontend::InHandling, js::frontend::YieldHandling, js::frontend::FunctionSyntaxKind, js::GeneratorKind, js::FunctionAsyncKind, bool, js::frontend::Directives, js::frontend::Directives*) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:3036:32 (libxul.so+0x6b06799)
[task 2020-04-22T20:26:53.135Z] 20:26:53 INFO - PID 12022 | #35 js::frontend::Parser<js::frontend::FullParseHandler, char16_t>::trySyntaxParseInnerFunction(js::frontend::FunctionNode**, JS::Handle<js::frontend::FunctionCreationData>, unsigned int, js::frontend::InHandling, js::frontend::YieldHandling, js::frontend::FunctionSyntaxKind, js::GeneratorKind, js::FunctionAsyncKind, bool, js::frontend::Directives, js::frontend::Directives*) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:2943:32 (libxul.so+0x6addc7b)
[task 2020-04-22T20:26:53.135Z] 20:26:53 INFO - PID 12022 | #36 trySyntaxParseInnerFunction /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:2981:27 (libxul.so+0x6aeb891)
[task 2020-04-22T20:26:53.135Z] 20:26:53 INFO - PID 12022 | #37 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::functionDefinition(js::frontend::FunctionNode*, unsigned int, js::frontend::InHandling, js::frontend::YieldHandling, JS::Handle<JSAtom*>, js::frontend::FunctionSyntaxKind, js::GeneratorKind, js::FunctionAsyncKind, bool) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:2810:9 (libxul.so+0x6aeb891)
[task 2020-04-22T20:26:53.135Z] 20:26:53 INFO - PID 12022 | #38 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::methodDefinition(unsigned int, js::frontend::PropertyType, JS::Handle<JSAtom*>) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:10707:10 (libxul.so+0x6afe06f)
[task 2020-04-22T20:26:53.136Z] 20:26:53 INFO - PID 12022 | #39 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::objectLiteral(js::frontend::YieldHandling, js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::PossibleError*) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:10612:13 (libxul.so+0x6afda2e)
[task 2020-04-22T20:26:53.137Z] 20:26:53 INFO - PID 12022 | #40 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::primaryExpr(js::frontend::YieldHandling, js::frontend::TripledotHandling, js::frontend::TokenKind, js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::PossibleError*, js::frontend::ParserBase::InvokedPrediction) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:10834:14 (libxul.so+0x6afa4b1)
[task 2020-04-22T20:26:53.137Z] 20:26:53 INFO - PID 12022 | #41 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::memberExpr(js::frontend::YieldHandling, js::frontend::TripledotHandling, js::frontend::TokenKind, bool, js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::PossibleError*, js::frontend::ParserBase::InvokedPrediction) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:9333:11 (libxul.so+0x6af7b6b)
[task 2020-04-22T20:26:53.139Z] 20:26:53 INFO - PID 12022 | #42 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::optionalExpr(js::frontend::YieldHandling, js::frontend::TripledotHandling, js::frontend::TokenKind, js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::PossibleError*, js::frontend::ParserBase::InvokedPrediction) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:8917:14 (libxul.so+0x6af71eb)
[task 2020-04-22T20:26:53.139Z] 20:26:53 INFO - PID 12022 | #43 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::unaryExpr(js::frontend::YieldHandling, js::frontend::TripledotHandling, js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::PossibleError*, js::frontend::ParserBase::InvokedPrediction) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:9112:19 (libxul.so+0x6af67a7)
[task 2020-04-22T20:26:53.140Z] 20:26:53 INFO - PID 12022 | #44 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::orExpr(js::frontend::InHandling, js::frontend::YieldHandling, js::frontend::TripledotHandling, js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::PossibleError*, js::frontend::ParserBase::InvokedPrediction) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:8408:10 (libxul.so+0x6af5f0e)
[task 2020-04-22T20:26:53.140Z] 20:26:53 INFO - PID 12022 | #45 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::condExpr(js::frontend::InHandling, js::frontend::YieldHandling, js::frontend::TripledotHandling, js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::PossibleError*, js::frontend::ParserBase::InvokedPrediction) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:8520:20 (libxul.so+0x6af5b9e)
[task 2020-04-22T20:26:53.141Z] 20:26:53 INFO - PID 12022 | #46 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::assignExpr(js::frontend::InHandling, js::frontend::YieldHandling, js::frontend::TripledotHandling, js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::PossibleError*, js::frontend::ParserBase::InvokedPrediction) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:8670:11 (libxul.so+0x6aef281)
[task 2020-04-22T20:26:53.142Z] 20:26:53 INFO - PID 12022 | #47 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::objectLiteral(js::frontend::YieldHandling, js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::PossibleError*) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:10466:25 (libxul.so+0x6afd5fe)
[task 2020-04-22T20:26:53.142Z] 20:26:53 INFO - PID 12022 | #48 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::primaryExpr(js::frontend::YieldHandling, js::frontend::TripledotHandling, js::frontend::TokenKind, js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::PossibleError*, js::frontend::ParserBase::InvokedPrediction) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:10834:14 (libxul.so+0x6afa4b1)
[task 2020-04-22T20:26:53.143Z] 20:26:53 INFO - PID 12022 | #49 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::memberExpr(js::frontend::YieldHandling, js::frontend::TripledotHandling, js::frontend::TokenKind, bool, js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::PossibleError*, js::frontend::ParserBase::InvokedPrediction) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:9333:11 (libxul.so+0x6af7b6b)
[task 2020-04-22T20:26:53.143Z] 20:26:53 INFO - PID 12022 | #50 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::optionalExpr(js::frontend::YieldHandling, js::frontend::TripledotHandling, js::frontend::TokenKind, js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::PossibleError*, js::frontend::ParserBase::InvokedPrediction) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:8917:14 (libxul.so+0x6af71eb)
[task 2020-04-22T20:26:53.145Z] 20:26:53 INFO - PID 12022 | #51 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::unaryExpr(js::frontend::YieldHandling, js::frontend::TripledotHandling, js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::PossibleError*, js::frontend::ParserBase::InvokedPrediction) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:9112:19 (libxul.so+0x6af67a7)
[task 2020-04-22T20:26:53.145Z] 20:26:53 INFO - PID 12022 | #52 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::orExpr(js::frontend::InHandling, js::frontend::YieldHandling, js::frontend::TripledotHandling, js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::PossibleError*, js::frontend::ParserBase::InvokedPrediction) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:8408:10 (libxul.so+0x6af5f0e)
[task 2020-04-22T20:26:53.146Z] 20:26:53 INFO - PID 12022 | #53 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::condExpr(js::frontend::InHandling, js::frontend::YieldHandling, js::frontend::TripledotHandling, js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::PossibleError*, js::frontend::ParserBase::InvokedPrediction) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:8520:20 (libxul.so+0x6af5b9e)
[task 2020-04-22T20:26:53.146Z] 20:26:53 INFO - PID 12022 | #54 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::assignExpr(js::frontend::InHandling, js::frontend::YieldHandling, js::frontend::TripledotHandling, js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::PossibleError*, js::frontend::ParserBase::InvokedPrediction) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:8670:11 (libxul.so+0x6aef281)
[task 2020-04-22T20:26:53.153Z] 20:26:53 INFO - PID 12022 | #55 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::initializerInNameDeclaration(js::frontend::NameNode*, js::frontend::DeclarationKind, bool, js::frontend::YieldHandling, js::frontend::ParseNodeKind*, js::frontend::ParseNode**) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:4339:22 (libxul.so+0x6af5312)
[task 2020-04-22T20:26:53.154Z] 20:26:53 INFO - PID 12022 | #56 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::declarationName(js::frontend::DeclarationKind, js::frontend::TokenKind, bool, js::frontend::YieldHandling, js::frontend::ParseNodeKind*, js::frontend::ParseNode**) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:4427:19 (libxul.so+0x6af4f6b)
[task 2020-04-22T20:26:53.154Z] 20:26:53 INFO - PID 12022 | #57 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::declarationList(js::frontend::YieldHandling, js::frontend::ParseNodeKind, js::frontend::ParseNodeKind*, js::frontend::ParseNode**) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:4521:15 (libxul.so+0x6aee0b2)
[task 2020-04-22T20:26:53.154Z] 20:26:53 INFO - PID 12022 | #58 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::lexicalDeclaration(js::frontend::YieldHandling, js::frontend::DeclarationKind) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:4563:23 (libxul.so+0x6adfb93)
[task 2020-04-22T20:26:53.155Z] 20:26:53 INFO - PID 12022 | #59 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::statementListItem(js::frontend::YieldHandling, bool) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:8122:16 (libxul.so+0x6ade7cd)
[task 2020-04-22T20:26:53.155Z] 20:26:53 INFO - PID 12022 | #60 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::statementList(js::frontend::YieldHandling) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:3679:17 (libxul.so+0x6adb909)
[task 2020-04-22T20:26:53.156Z] 20:26:53 INFO - PID 12022 | #61 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::functionBody(js::frontend::InHandling, js::frontend::YieldHandling, js::frontend::FunctionSyntaxKind, js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::FunctionBodyType) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:1994:12 (libxul.so+0x6ae9818)
[task 2020-04-22T20:26:53.156Z] 20:26:53 INFO - PID 12022 | #62 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::functionFormalParametersAndBody(js::frontend::InHandling, js::frontend::YieldHandling, js::frontend::FunctionNode**, js::frontend::FunctionSyntaxKind, mozilla::Maybe<unsigned int> const&, bool) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:3256:12 (libxul.so+0x6ae79ac)
[task 2020-04-22T20:26:53.156Z] 20:26:53 INFO - PID 12022 | #63 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::innerFunctionForFunctionBox(js::frontend::FunctionNode*, js::frontend::ParseContext*, js::frontend::FunctionBox*, js::frontend::InHandling, js::frontend::YieldHandling, js::frontend::FunctionSyntaxKind, js::frontend::Directives*) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:3003:8 (libxul.so+0x6ae6c25)
[task 2020-04-22T20:26:53.157Z] 20:26:53 INFO - PID 12022 | #64 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::innerFunction(js::frontend::FunctionNode*, js::frontend::ParseContext*, JS::Handle<js::frontend::FunctionCreationData>, unsigned int, js::frontend::InHandling, js::frontend::YieldHandling, js::frontend::FunctionSyntaxKind, js::GeneratorKind, js::FunctionAsyncKind, bool, js::frontend::Directives, js::frontend::Directives*) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:3036:32 (libxul.so+0x6b06799)
[task 2020-04-22T20:26:53.157Z] 20:26:53 INFO - PID 12022 | #65 js::frontend::Parser<js::frontend::FullParseHandler, char16_t>::trySyntaxParseInnerFunction(js::frontend::FunctionNode**, JS::Handle<js::frontend::FunctionCreationData>, unsigned int, js::frontend::InHandling, js::frontend::YieldHandling, js::frontend::FunctionSyntaxKind, js::GeneratorKind, js::FunctionAsyncKind, bool, js::frontend::Directives, js::frontend::Directives*) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:2943:32 (libxul.so+0x6addc7b)
[task 2020-04-22T20:26:53.158Z] 20:26:53 INFO - PID 12022 | #66 trySyntaxParseInnerFunction /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:2981:27 (libxul.so+0x6aeb891)
[task 2020-04-22T20:26:53.158Z] 20:26:53 INFO - PID 12022 | #67 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::functionDefinition(js::frontend::FunctionNode*, unsigned int, js::frontend::InHandling, js::frontend::YieldHandling, JS::Handle<JSAtom*>, js::frontend::FunctionSyntaxKind, js::GeneratorKind, js::FunctionAsyncKind, bool) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:2810:9 (libxul.so+0x6aeb891)
[task 2020-04-22T20:26:53.158Z] 20:26:53 INFO - PID 12022 | #68 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::methodDefinition(unsigned int, js::frontend::PropertyType, JS::Handle<JSAtom*>) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:10707:10 (libxul.so+0x6afe06f)
[task 2020-04-22T20:26:53.159Z] 20:26:53 INFO - PID 12022 | #69 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::classMember(js::frontend::YieldHandling, js::frontend::ParseContext::ClassStatement const&, JS::Handle<js::PropertyName*>, unsigned int, js::frontend::HasHeritage, js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::ClassFields&, js::frontend::ListNode*&, bool*) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:7116:30 (libxul.so+0x6b00cc0)
[task 2020-04-22T20:26:53.159Z] 20:26:53 INFO - PID 12022 | #70 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::classDefinition(js::frontend::YieldHandling, js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::ClassContext, js::frontend::DefaultHandling) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:7310:12 (libxul.so+0x6ae617b)
[task 2020-04-22T20:26:53.159Z] 20:26:53 INFO - PID 12022 | #71 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::primaryExpr(js::frontend::YieldHandling, js::frontend::TripledotHandling, js::frontend::TokenKind, js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::PossibleError*, js::frontend::ParserBase::InvokedPrediction) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:10828:14 (libxul.so+0x6afa615)
[task 2020-04-22T20:26:53.160Z] 20:26:53 INFO - PID 12022 | #72 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::memberExpr(js::frontend::YieldHandling, js::frontend::TripledotHandling, js::frontend::TokenKind, bool, js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::PossibleError*, js::frontend::ParserBase::InvokedPrediction) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:9333:11 (libxul.so+0x6af7b6b)
[task 2020-04-22T20:26:53.160Z] 20:26:53 INFO - PID 12022 | #73 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::optionalExpr(js::frontend::YieldHandling, js::frontend::TripledotHandling, js::frontend::TokenKind, js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::PossibleError*, js::frontend::ParserBase::InvokedPrediction) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:8917:14 (libxul.so+0x6af71eb)
[task 2020-04-22T20:26:53.160Z] 20:26:53 INFO - PID 12022 | #74 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::unaryExpr(js::frontend::YieldHandling, js::frontend::TripledotHandling, js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::PossibleError*, js::frontend::ParserBase::InvokedPrediction) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:9112:19 (libxul.so+0x6af67a7)
[task 2020-04-22T20:26:53.161Z] 20:26:53 INFO - PID 12022 | #75 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::orExpr(js::frontend::InHandling, js::frontend::YieldHandling, js::frontend::TripledotHandling, js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::PossibleError*, js::frontend::ParserBase::InvokedPrediction) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:8408:10 (libxul.so+0x6af5f0e)
[task 2020-04-22T20:26:53.161Z] 20:26:53 INFO - PID 12022 | #76 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::condExpr(js::frontend::InHandling, js::frontend::YieldHandling, js::frontend::TripledotHandling, js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::PossibleError*, js::frontend::ParserBase::InvokedPrediction) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:8520:20 (libxul.so+0x6af5b9e)
[task 2020-04-22T20:26:53.161Z] 20:26:53 INFO - PID 12022 | #77 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::assignExpr(js::frontend::InHandling, js::frontend::YieldHandling, js::frontend::TripledotHandling, js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::PossibleError*, js::frontend::ParserBase::InvokedPrediction) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:8670:11 (libxul.so+0x6aef281)
[task 2020-04-22T20:26:53.162Z] 20:26:53 INFO - PID 12022 | #78 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::assignExpr(js::frontend::InHandling, js::frontend::YieldHandling, js::frontend::TripledotHandling, js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::PossibleError*, js::frontend::ParserBase::InvokedPrediction) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:8847:14 (libxul.so+0x6af00b0)
[task 2020-04-22T20:26:53.162Z] 20:26:53 INFO - PID 12022 | #79 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::expr(js::frontend::InHandling, js::frontend::YieldHandling, js::frontend::TripledotHandling, js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::PossibleError*, js::frontend::ParserBase::InvokedPrediction) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:8252:13 (libxul.so+0x6adce85)
[task 2020-04-22T20:26:53.162Z] 20:26:53 INFO - PID 12022 | #80 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::expressionStatement(js::frontend::YieldHandling, js::frontend::ParserBase::InvokedPrediction) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:5695:17 (libxul.so+0x6adf3c4)
[task 2020-04-22T20:26:53.163Z] 20:26:53 INFO - PID 12022 | #81 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::statementListItem(js::frontend::YieldHandling, bool) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp (libxul.so+0x6adeb77)
[task 2020-04-22T20:26:53.164Z] 20:26:53 INFO - PID 12022 | #82 js::frontend::GeneralParser<js::frontend::FullParseHandler, char16_t>::statementList(js::frontend::YieldHandling) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:3679:17 (libxul.so+0x6adb909)
[task 2020-04-22T20:26:53.164Z] 20:26:53 INFO - PID 12022 | #83 js::frontend::Parser<js::frontend::FullParseHandler, char16_t>::globalBody(js::frontend::GlobalSharedContext*) /builds/worker/checkouts/gecko/js/src/frontend/Parser.cpp:1498:20 (libxul.so+0x6b2a926)
[task 2020-04-22T20:26:53.165Z] 20:26:53 INFO - PID 12022 | #84 js::frontend::ScriptCompiler<char16_t>::compileScript(js::frontend::CompilationInfo&, JS::Handle<JSObject*>, js::frontend::SharedContext*) /builds/worker/checkouts/gecko/js/src/frontend/BytecodeCompiler.cpp:534:20 (libxul.so+0x6b694b8)
[task 2020-04-22T20:26:53.165Z] 20:26:53 INFO - PID 12022 | #85 CreateGlobalScript<char16_t> /builds/worker/checkouts/gecko/js/src/frontend/BytecodeCompiler.cpp:216:17 (libxul.so+0x6b3cc95)
[task 2020-04-22T20:26:53.165Z] 20:26:53 INFO - PID 12022 | #86 js::frontend::CompileGlobalScript(js::frontend::CompilationInfo&, js::frontend::GlobalSharedContext&, JS::SourceText<char16_t>&) /builds/worker/checkouts/gecko/js/src/frontend/BytecodeCompiler.cpp:231:10 (libxul.so+0x6b3cc95)
[task 2020-04-22T20:26:53.166Z] 20:26:53 INFO - PID 12022 | #87 ScriptParseTask<char16_t>::parse(JSContext*) /builds/worker/checkouts/gecko/js/src/vm/HelperThreads.cpp:602:7 (libxul.so+0x66c0723)
[task 2020-04-22T20:26:53.167Z] 20:26:53 INFO - PID 12022 | #88 js::ParseTask::runTask() /builds/worker/checkouts/gecko/js/src/vm/HelperThreads.cpp:554:3 (libxul.so+0x66a407e)
[task 2020-04-22T20:26:53.167Z] 20:26:53 INFO - PID 12022 | #89 js::HelperThread::handleParseWorkload(js::AutoLockHelperThreadState&) /builds/worker/checkouts/gecko/js/src/vm/HelperThreads.cpp:2238:11 (libxul.so+0x66acad6)
[task 2020-04-22T20:26:53.167Z] 20:26:53 INFO - PID 12022 | #90 js::HelperThread::threadLoop() /builds/worker/checkouts/gecko/js/src/vm/HelperThreads.cpp:2528:5 (libxul.so+0x66ab8d7)
[task 2020-04-22T20:26:53.168Z] 20:26:53 INFO - PID 12022 | #91 js::HelperThread::ThreadMain(void*) /builds/worker/checkouts/gecko/js/src/vm/HelperThreads.cpp:2050:11 (libxul.so+0x66a7d7d)
[task 2020-04-22T20:26:53.168Z] 20:26:53 INFO - PID 12022 | #92 callMain<0> /builds/worker/checkouts/gecko/js/src/threading/Thread.h:217:5 (libxul.so+0x66c13e0)
[task 2020-04-22T20:26:53.168Z] 20:26:53 INFO - PID 12022 | #93 js::detail::ThreadTrampoline<void (&)(void*), js::HelperThread*>::Start(void*) /builds/worker/checkouts/gecko/js/src/threading/Thread.h:206:11 (libxul.so+0x66c13e0)
[task 2020-04-22T20:26:53.169Z] 20:26:53 INFO - PID 12022 | Previous write of size 8 at 0x7f04e645bf20 by main thread:
[task 2020-04-22T20:26:53.169Z] 20:26:53 INFO - PID 12022 | [failed to restore the stack]
[task 2020-04-22T20:26:53.169Z] 20:26:53 INFO - PID 12022 | Thread T7 'JS Helper' (tid=12030, running) created by main thread at:
[task 2020-04-22T20:26:53.171Z] 20:26:53 INFO - PID 12022 | #0 pthread_create /builds/worker/fetches/llvm-project/llvm/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:967:3 (xpcshell+0x5743b)
[task 2020-04-22T20:26:53.171Z] 20:26:53 INFO - PID 12022 | #1 js::Thread::create(void* ()(void), void*) /builds/worker/checkouts/gecko/js/src/threading/posix/PosixThread.cpp:52:7 (libxul.so+0x65a96e3)
[task 2020-04-22T20:26:53.171Z] 20:26:53 INFO - PID 12022 | #2 bool js::Thread::init<void (&)(void*), js::HelperThread*>(void (&)(void*), js::HelperThread*&&) /builds/worker/checkouts/gecko/js/src/threading/Thread.h:90:12 (libxul.so+0x66a7c92)
[task 2020-04-22T20:26:53.172Z] 20:26:53 INFO - PID 12022 | #3 js::GlobalHelperThreadState::ensureInitialized() /builds/worker/checkouts/gecko/js/src/vm/HelperThreads.cpp:1160:27 (libxul.so+0x66a28ea)
[task 2020-04-22T20:26:53.172Z] 20:26:53 INFO - PID 12022 | #4 js::EnsureHelperThreadsInitialized() /builds/worker/checkouts/gecko/js/src/vm/HelperThreads.cpp:94:30 (libxul.so+0x66a2532)
[task 2020-04-22T20:26:53.172Z] 20:26:53 INFO - PID 12022 | #5 JSRuntime::init(JSContext*, unsigned int) /builds/worker/checkouts/gecko/js/src/vm/Runtime.cpp:200:32 (libxul.so+0x67b4bd2)
[task 2020-04-22T20:26:53.173Z] 20:26:53 INFO - PID 12022 | #6 js::NewContext(unsigned int, JSRuntime*) /builds/worker/checkouts/gecko/js/src/vm/JSContext.cpp:184:17 (libxul.so+0x66e9fcd)
[task 2020-04-22T20:26:53.173Z] 20:26:53 INFO - PID 12022 | #7 JS_NewContext(unsigned int, JSRuntime*) /builds/worker/checkouts/gecko/js/src/jsapi.cpp:393:10 (libxul.so+0x65359f4)
[task 2020-04-22T20:26:53.174Z] 20:26:53 INFO - PID 12022 | #8 mozilla::CycleCollectedJSContext::Initialize(JSRuntime*, unsigned int) /builds/worker/checkouts/gecko/xpcom/base/CycleCollectedJSContext.cpp:127:16 (libxul.so+0x9e2fcb)
[task 2020-04-22T20:26:53.175Z] 20:26:53 INFO - PID 12022 | #9 XPCJSContext::Initialize() /builds/worker/checkouts/gecko/js/xpconnect/src/XPCJSContext.cpp:1104:32 (libxul.so+0x18f05aa)
[task 2020-04-22T20:26:53.175Z] 20:26:53 INFO - PID 12022 | #10 XPCJSContext::NewXPCJSContext() /builds/worker/checkouts/gecko/js/xpconnect/src/XPCJSContext.cpp:1300:23 (libxul.so+0x18f1107)
[task 2020-04-22T20:26:53.175Z] 20:26:53 INFO - PID 12022 | #11 nsXPConnect::InitJSContext() /builds/worker/checkouts/gecko/js/xpconnect/src/nsXPConnect.cpp:80:25 (libxul.so+0x192aca3)
[task 2020-04-22T20:26:53.175Z] 20:26:53 INFO - PID 12022 | #12 xpc::InitializeJSContext() /builds/worker/checkouts/gecko/js/xpconnect/src/nsXPConnect.cpp:98:35 (libxul.so+0x192ad5f)
[task 2020-04-22T20:26:53.176Z] 20:26:53 INFO - PID 12022 | #13 NS_InitXPCOM /builds/worker/checkouts/gecko/xpcom/build/XPCOMInit.cpp:488:5 (libxul.so+0xb0b6ce)
[task 2020-04-22T20:26:53.176Z] 20:26:53 INFO - PID 12022 | #14 XRE_XPCShellMain(int, char**, char**, XREShellData const*) /builds/worker/checkouts/gecko/js/xpconnect/src/XPCShellImpl.cpp:1204:10 (libxul.so+0x190e885)
[task 2020-04-22T20:26:53.176Z] 20:26:53 INFO - PID 12022 | #15 mozilla::BootstrapImpl::XRE_XPCShellMain(int, char**, char**, XREShellData const*) /builds/worker/checkouts/gecko/toolkit/xre/Bootstrap.cpp:54:12 (libxul.so+0x636a20b)
[task 2020-04-22T20:26:53.178Z] 20:26:53 INFO - PID 12022 | #16 main /builds/worker/checkouts/gecko/js/xpconnect/shell/xpcshell.cpp:66:27 (xpcshell+0xc8b86)
[task 2020-04-22T20:26:53.178Z] 20:26:53 INFO - PID 12022 | SUMMARY: ThreadSanitizer: data race /builds/worker/checkouts/gecko/js/src/gc/Cell.h:585:21 in lengthField
[task 2020-04-22T20:26:53.178Z] 20:26:53 INFO - PID 12022 | ==================
[task 2020-04-22T20:26:53.178Z] 20:26:53 INFO - <<<<<<<
[task 2020-04-22T20:26:53.178Z] 20:26:53 INFO - TEST-START | services/sync/tests/unit/test_addons_store.js
[task 2020-04-22T20:27:04.963Z] 20:27:04 WARNING - TEST-UNEXPECTED-FAIL | services/sync/tests/unit/test_addons_store.js | xpcshell return code: -6
[task 2020-04-22T20:27:04.964Z] 20:27:04 INFO - TEST-INFO took 11782ms
[task 2020-04-22T20:27:04.964Z] 20:27:04 INFO - >>>>>>>
[task 2020-04-22T20:27:04.964Z] 20:27:04 INFO - (xpcshell/head.js) | test MAIN run_test pending (1)
[task 2020-04-22T20:27:04.964Z] 20:27:04 INFO - (xpcshell/head.js) | test run_next_test 0 pending (2)
[task 2020-04-22T20:27:04.964Z] 20:27:04 INFO - (xpcshell/head.js) | test MAIN run_test finished (2)
[task 2020-04-22T20:27:04.965Z] 20:27:04 INFO - running event loop
[task 2020-04-22T20:27:04.965Z] 20:27:04 INFO - services/sync/tests/unit/test_addons_store.js | Starting head_setup
[task 2020-04-22T20:27:04.965Z] 20:27:04 INFO - (xpcshell/head.js) | test head_setup pending (2)
[task 2020-04-22T20:27:04.965Z] 20:27:04 INFO - (xpcshell/head.js) | test run_next_test 0 finished (2)
[task 2020-04-22T20:27:04.965Z] 20:27:04 INFO - PID 12046 | 1587587216919 Sync.Engine.Addons DEBUG SyncEngine initialized: addons
[task 2020-04-22T20:27:04.966Z] 20:27:04 INFO - PID 12046 | 1587587216923 Sync.AddonsReconciler TRACE Loading json from disk: addonsreconciler
[task 2020-04-22T20:27:04.966Z] 20:27:04 INFO - PID 12046 | 1587587216926 Sync.AddonsReconciler DEBUG No data seen in loaded file: addonsreconciler
[task 2020-04-22T20:27:04.966Z] 20:27:04 INFO - PID 12046 | 1587587216949 Sync.Engine.Forms DEBUG Engine constructed
[task 2020-04-22T20:27:04.966Z] 20:27:04 INFO - PID 12046 | 1587587216960 Sync.Engine.Forms DEBUG SyncEngine initialized: forms
[task 2020-04-22T20:27:04.967Z] 20:27:04 INFO - PID 12046 | 1587587216992 Sync.Engine.History DEBUG Engine constructed
[task 2020-04-22T20:27:04.967Z] 20:27:04 INFO - PID 12046 | 1587587217003 Sync.Engine.History DEBUG SyncEngine initialized: history
[task 2020-04-22T20:27:04.967Z] 20:27:04 INFO - PID 12046 | 1587587217026 Sync.Engine.Passwords DEBUG Engine constructed
[task 2020-04-22T20:27:04.968Z] 20:27:04 INFO - PID 12046 | 1587587217034 Sync.Engine.Passwords DEBUG SyncEngine initialized: passwords
[task 2020-04-22T20:27:04.968Z] 20:27:04 INFO - PID 12046 | 1587587217056 Sync.Engine.Prefs DEBUG Engine constructed
[task 2020-04-22T20:27:04.969Z] 20:27:04 INFO - PID 12046 | 1587587217065 Sync.Engine.Prefs DEBUG SyncEngine initialized: prefs
[task 2020-04-22T20:27:04.969Z] 20:27:04 INFO - PID 12046 | 1587587217087 Sync.Engine.Tabs DEBUG Engine constructed
[task 2020-04-22T20:27:04.969Z] 20:27:04 INFO - PID 12046 | 1587587217100 Sync.Engine.Tabs DEBUG SyncEngine initialized: tabs
[task 2020-04-22T20:27:04.970Z] 20:27:04 INFO - PID 12046 | 1587587217101 Sync.Engine.Tabs DEBUG Resetting tabs last sync time
[task 2020-04-22T20:27:04.970Z] 20:27:04 INFO - PID 12046 | 1587587217114 Sync.Engine.Extension-Storage DEBUG Engine constructed
[task 2020-04-22T20:27:04.971Z] 20:27:04 INFO - PID 12046 | 1587587217122 Sync.Engine.Extension-Storage DEBUG SyncEngine initialized: extension-storage
[task 2020-04-22T20:27:04.972Z] 20:27:04 INFO - PID 12046 | 1587587217184 Sync.Engine.Bookmarks DEBUG Engine constructed
[task 2020-04-22T20:27:04.974Z] 20:27:04 INFO - PID 12046 | 1587587217193 Sync.Engine.Bookmarks DEBUG SyncEngine initialized: bookmarks
[task 2020-04-22T20:27:04.975Z] 20:27:04 INFO - PID 12046 | 1587587217195 Sync.Service INFO Mozilla/5.0 (X11; Linux x86_64; rv:77.0) Gecko/20100101 XPCShell/1
[task 2020-04-22T20:27:04.976Z] 20:27:04 INFO - PID 12046 | 1587587217208 Sync.Status DEBUG Status.login: error.login.reason.no_username => error.login.reason.no_username
[task 2020-04-22T20:27:04.976Z] 20:27:04 INFO - PID 12046 | 1587587217209 Sync.Status DEBUG Status.service: service.client_not_configured => service.client_not_configured
[task 2020-04-22T20:27:04.976Z] 20:27:04 INFO - PID 12046 | 1587587217209 Sync.Status DEBUG Status.service: service.client_not_configured => service.client_not_configured
[task 2020-04-22T20:27:04.976Z] 20:27:04 INFO - (xpcshell/head.js) | test run_next_test 1 pending (2)
[task 2020-04-22T20:27:04.977Z] 20:27:04 INFO - (xpcshell/head.js) | test head_setup finished (2)

Jason are you working on this?

Flags: needinfo?(jorendorff)
Whiteboard: [stockwell needswork:owner]
Flags: needinfo?(jorendorff)

I'm not working on it, but I know who is!

Flags: needinfo?(jorendorff) → needinfo?(kvijayan)

Synopsis:

Main thread creates a JSAtom*, and writes its length (presumably the length is written at atom creation and never touched.. the stack from the main thread is not available so this is is inferred).

Later, a parser thread gets a handle to this JSAtom* through a parse, and reads the length (in tokenizer "currentNameHasEscapes" code).

I'm not sure why in particular this started triggering more after April 12 - will take a look at that. At first glance this seems spurious, though. By the time a parse thread gets access to a JSAtom* a lot of stuff has happened - including mutexes that are acquired to check the main strings compartment and table. It's difficult to imagine a re-ordering scenario occurring easily here.

The bigger picture here is that I'm working on a complete revamp of the atoms code in the parser, which will eventually see the parser not create or touch JSAtom*s at all until it is finished and ready to generate the final set of in-VM product objects (e.g. scripts, functions, scope chains, etc.)

Eventually the whole premise for this potential race will go away.

Assignee: nobody → kvijayan
Flags: needinfo?(kvijayan)
Severity: normal → S3
Priority: -- → P2

Should be fixed now that the off-thread parser uses ParserAtom instead of JSAtom.

Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED

Do you know what bug that was?

Flags: needinfo?(tcampbell)

Bug 1660798 should have been removed the issue, but when Bug 1619162 tried to remove the suppression, tsan broke. Will re-open this for now..

Status: RESOLVED → REOPENED
Flags: needinfo?(tcampbell)
Resolution: FIXED → ---

Alexis, can you check if we can remove the suppression here? Thanks!

Flags: needinfo?(a.beingessner)
See Also: → 1517452
Status: REOPENED → RESOLVED
Closed: 4 years ago4 years ago
Flags: needinfo?(a.beingessner)
Resolution: --- → DUPLICATE
Group: javascript-core-security
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: