Closed
Bug 856877
Opened 11 years ago
Closed 11 years ago
JSRuntime::interrupt isn't initialized
Categories
(Core :: JavaScript Engine, defect)
Core
JavaScript Engine
Tracking
()
RESOLVED
FIXED
mozilla23
People
(Reporter: n.nethercote, Assigned: n.nethercote)
Details
(Whiteboard: [js:t])
Attachments
(1 file)
806 bytes,
patch
|
billm
:
review+
|
Details | Diff | Splinter Review |
jit-test/tests/basic/testShiftLeft.js and jit-test/tests/basic/testRegExpTest.js are failing when the jit-tests are run with --valgrind. In both cases there are five errors; the first four are the same in both, but the last one differs. They probably have the same root cause, though. It looks like JSRuntime::interrupt isn't initialized in the constructor. Details below. As much as I want these fixed, I want even more to know why they didn't show up on TBPL. Gary, do we not run jit-tests with --valgrind? We should. That only enabled Valgrind on a small number of tests (3, IIRC) so it doesn't slow things down much. Should I file a separate bug? testShiftLeft.js > ==31832== Conditional jump or move depends on uninitialised value(s) > ==31832== at 0x5D75A8: js::Interpret(JSContext*, js::StackFrame*, js::InterpMode) (jsinterp.cpp:1501) > ==31832== by 0x5D5005: js::RunScript(JSContext*, js::StackFrame*) (jsinterp.cpp:341) > ==31832== by 0x5F2152: js::ExecuteKernel(JSContext*, JS::Handle<JSScript*>, JSObject&, JS::Value const&, js::ExecuteType, js::AbstractFramePtr, JS::Value*) (jsinterp.cpp:529) > ==31832== by 0x5F256C: js::Execute(JSContext*, JS::Handle<JSScript*>, JSObject&, JS::Value*) (jsinterp.cpp:568) > ==31832== by 0x484169: JS::Evaluate(JSContext*, JS::Handle<JSObject*>, JS::CompileOptions, unsigned short const*, unsigned long, JS::Value*) (jsapi.cpp:5622) > ==31832== by 0x4843B4: JS::Evaluate(JSContext*, JS::Handle<JSObject*>, JS::CompileOptions, char const*, unsigned long, JS::Value*) (jsapi.cpp:5652) > ==31832== by 0x8FCF98: JSRuntime::initSelfHosting(JSContext*) (SelfHosting.cpp:549) > ==31832== by 0x4ECD18: js::NewContext(JSRuntime*, unsigned long) (jscntxt.cpp:356) > ==31832== by 0x464A3C: JS_NewContext(JSRuntime*, unsigned long) (jsapi.cpp:1265) > ==31832== by 0x405839: NewContext(JSRuntime*) (js.cpp:4744) > ==31832== by 0x405575: main (js.cpp:5325) > ==31832== > ==31832== Conditional jump or move depends on uninitialised value(s) > ==31832== at 0x5D75A8: js::Interpret(JSContext*, js::StackFrame*, js::InterpMode) (jsinterp.cpp:1501) > ==31832== by 0x5D5005: js::RunScript(JSContext*, js::StackFrame*) (jsinterp.cpp:341) > ==31832== by 0x5EFB15: js::InvokeKernel(JSContext*, JS::CallArgs, js::MaybeConstruct) (jsinterp.cpp:398) > ==31832== by 0x5E5F57: js::Interpret(JSContext*, js::StackFrame*, js::InterpMode) (jsinterp.cpp:2357) > ==31832== by 0x5D5005: js::RunScript(JSContext*, js::StackFrame*) (jsinterp.cpp:341) > ==31832== by 0x5F2152: js::ExecuteKernel(JSContext*, JS::Handle<JSScript*>, JSObject&, JS::Value const&, js::ExecuteType, js::AbstractFramePtr, JS::Value*) (jsinterp.cpp:529) > ==31832== by 0x5F256C: js::Execute(JSContext*, JS::Handle<JSScript*>, JSObject&, JS::Value*) (jsinterp.cpp:568) > ==31832== by 0x484169: JS::Evaluate(JSContext*, JS::Handle<JSObject*>, JS::CompileOptions, unsigned short const*, unsigned long, JS::Value*) (jsapi.cpp:5622) > ==31832== by 0x4843B4: JS::Evaluate(JSContext*, JS::Handle<JSObject*>, JS::CompileOptions, char const*, unsigned long, JS::Value*) (jsapi.cpp:5652) > ==31832== by 0x8FCF98: JSRuntime::initSelfHosting(JSContext*) (SelfHosting.cpp:549) > ==31832== by 0x4ECD18: js::NewContext(JSRuntime*, unsigned long) (jscntxt.cpp:356) > ==31832== by 0x464A3C: JS_NewContext(JSRuntime*, unsigned long) (jsapi.cpp:1265) > ==31832== > ==31832== Conditional jump or move depends on uninitialised value(s) > ==31832== at 0x5D69BD: js::Interpret(JSContext*, js::StackFrame*, js::InterpMode) (jsinterp.cpp:1367) > ==31832== by 0x5D5005: js::RunScript(JSContext*, js::StackFrame*) (jsinterp.cpp:341) > ==31832== by 0x5EFB15: js::InvokeKernel(JSContext*, JS::CallArgs, js::MaybeConstruct) (jsinterp.cpp:398) > ==31832== by 0x5E5F57: js::Interpret(JSContext*, js::StackFrame*, js::InterpMode) (jsinterp.cpp:2357) > ==31832== by 0x5D5005: js::RunScript(JSContext*, js::StackFrame*) (jsinterp.cpp:341) > ==31832== by 0x5F2152: js::ExecuteKernel(JSContext*, JS::Handle<JSScript*>, JSObject&, JS::Value const&, js::ExecuteType, js::AbstractFramePtr, JS::Value*) (jsinterp.cpp:529) > ==31832== by 0x5F256C: js::Execute(JSContext*, JS::Handle<JSScript*>, JSObject&, JS::Value*) (jsinterp.cpp:568) > ==31832== by 0x484169: JS::Evaluate(JSContext*, JS::Handle<JSObject*>, JS::CompileOptions, unsigned short const*, unsigned long, JS::Value*) (jsapi.cpp:5622) > ==31832== by 0x4843B4: JS::Evaluate(JSContext*, JS::Handle<JSObject*>, JS::CompileOptions, char const*, unsigned long, JS::Value*) (jsapi.cpp:5652) > ==31832== by 0x8FCF98: JSRuntime::initSelfHosting(JSContext*) (SelfHosting.cpp:549) > ==31832== by 0x4ECD18: js::NewContext(JSRuntime*, unsigned long) (jscntxt.cpp:356) > ==31832== by 0x464A3C: JS_NewContext(JSRuntime*, unsigned long) (jsapi.cpp:1265) > ==31832== > ==31832== Conditional jump or move depends on uninitialised value(s) > ==31832== at 0x5D69BD: js::Interpret(JSContext*, js::StackFrame*, js::InterpMode) (jsinterp.cpp:1367) > ==31832== by 0x5D5005: js::RunScript(JSContext*, js::StackFrame*) (jsinterp.cpp:341) > ==31832== by 0x5F2152: js::ExecuteKernel(JSContext*, JS::Handle<JSScript*>, JSObject&, JS::Value const&, js::ExecuteType, js::AbstractFramePtr, JS::Value*) (jsinterp.cpp:529) > ==31832== by 0x5F256C: js::Execute(JSContext*, JS::Handle<JSScript*>, JSObject&, JS::Value*) (jsinterp.cpp:568) > ==31832== by 0x483C11: JS_ExecuteScript(JSContext*, JSObject*, JSScript*, JS::Value*) (jsapi.cpp:5579) > ==31832== by 0x407107: Process(JSContext*, JSObject*, char const*, bool) (js.cpp:468) > ==31832== by 0x40494B: ProcessArgs(JSContext*, JSObject*, js::cli::OptionParser*) (js.cpp:5062) > ==31832== by 0x403672: Shell(JSContext*, js::cli::OptionParser*, char**) (js.cpp:5114) > ==31832== by 0x405619: main (js.cpp:5338) > ==31832== > ==31832== Conditional jump or move depends on uninitialised value(s) > ==31832== at 0x4C1400: array_join_sub(JSContext*, JS::CallArgs&, bool) (jscntxt.h:2104) > ==31832== by 0x4BB8C2: array_join(JSContext*, unsigned int, JS::Value*) (jsarray.cpp:869) > ==31832== by 0x5EF931: js::InvokeKernel(JSContext*, JS::CallArgs, js::MaybeConstruct) (jscntxtinlines.h:338) > ==31832== by 0x5E5F57: js::Interpret(JSContext*, js::StackFrame*, js::InterpMode) (jsinterp.cpp:2357) > ==31832== by 0x5D5005: js::RunScript(JSContext*, js::StackFrame*) (jsinterp.cpp:341) > ==31832== by 0x5F2152: js::ExecuteKernel(JSContext*, JS::Handle<JSScript*>, JSObject&, JS::Value const&, js::ExecuteType, js::AbstractFramePtr, JS::Value*) (jsinterp.cpp:529) > ==31832== by 0x5F256C: js::Execute(JSContext*, JS::Handle<JSScript*>, JSObject&, JS::Value*) (jsinterp.cpp:568) > ==31832== by 0x483C11: JS_ExecuteScript(JSContext*, JSObject*, JSScript*, JS::Value*) (jsapi.cpp:5579) > ==31832== by 0x407107: Process(JSContext*, JSObject*, char const*, bool) (js.cpp:468) > ==31832== by 0x40494B: ProcessArgs(JSContext*, JSObject*, js::cli::OptionParser*) (js.cpp:5062) > ==31832== by 0x403672: Shell(JSContext*, js::cli::OptionParser*, char**) (js.cpp:5114) > ==31832== by 0x405619: main (js.cpp:5338) > ==31832== testRegExpTest.js: > ==31828== Conditional jump or move depends on uninitialised value(s) > ==31828== at 0x5D75A8: js::Interpret(JSContext*, js::StackFrame*, js::InterpMode) (jsinterp.cpp:1501) > ==31828== by 0x5D5005: js::RunScript(JSContext*, js::StackFrame*) (jsinterp.cpp:341) > ==31828== by 0x5F2152: js::ExecuteKernel(JSContext*, JS::Handle<JSScript*>, JSObject&, JS::Value const&, js::ExecuteType, js::AbstractFramePtr, JS::Value*) (jsinterp.cpp:529) > ==31828== by 0x5F256C: js::Execute(JSContext*, JS::Handle<JSScript*>, JSObject&, JS::Value*) (jsinterp.cpp:568) > ==31828== by 0x484169: JS::Evaluate(JSContext*, JS::Handle<JSObject*>, JS::CompileOptions, unsigned short const*, unsigned long, JS::Value*) (jsapi.cpp:5622) > ==31828== by 0x4843B4: JS::Evaluate(JSContext*, JS::Handle<JSObject*>, JS::CompileOptions, char const*, unsigned long, JS::Value*) (jsapi.cpp:5652) > ==31828== by 0x8FCF98: JSRuntime::initSelfHosting(JSContext*) (SelfHosting.cpp:549) > ==31828== by 0x4ECD18: js::NewContext(JSRuntime*, unsigned long) (jscntxt.cpp:356) > ==31828== by 0x464A3C: JS_NewContext(JSRuntime*, unsigned long) (jsapi.cpp:1265) > ==31828== by 0x405839: NewContext(JSRuntime*) (js.cpp:4744) > ==31828== by 0x405575: main (js.cpp:5325) > ==31828== > ==31828== Conditional jump or move depends on uninitialised value(s) > ==31828== at 0x5D75A8: js::Interpret(JSContext*, js::StackFrame*, js::InterpMode) (jsinterp.cpp:1501) > ==31828== by 0x5D5005: js::RunScript(JSContext*, js::StackFrame*) (jsinterp.cpp:341) > ==31828== by 0x5EFB15: js::InvokeKernel(JSContext*, JS::CallArgs, js::MaybeConstruct) (jsinterp.cpp:398) > ==31828== by 0x5E5F57: js::Interpret(JSContext*, js::StackFrame*, js::InterpMode) (jsinterp.cpp:2357) > ==31828== by 0x5D5005: js::RunScript(JSContext*, js::StackFrame*) (jsinterp.cpp:341) > ==31828== by 0x5F2152: js::ExecuteKernel(JSContext*, JS::Handle<JSScript*>, JSObject&, JS::Value const&, js::ExecuteType, js::AbstractFramePtr, JS::Value*) (jsinterp.cpp:529) > ==31828== by 0x5F256C: js::Execute(JSContext*, JS::Handle<JSScript*>, JSObject&, JS::Value*) (jsinterp.cpp:568) > ==31828== by 0x484169: JS::Evaluate(JSContext*, JS::Handle<JSObject*>, JS::CompileOptions, unsigned short const*, unsigned long, JS::Value*) (jsapi.cpp:5622) > ==31828== by 0x4843B4: JS::Evaluate(JSContext*, JS::Handle<JSObject*>, JS::CompileOptions, char const*, unsigned long, JS::Value*) (jsapi.cpp:5652) > ==31828== by 0x8FCF98: JSRuntime::initSelfHosting(JSContext*) (SelfHosting.cpp:549) > ==31828== by 0x4ECD18: js::NewContext(JSRuntime*, unsigned long) (jscntxt.cpp:356) > ==31828== by 0x464A3C: JS_NewContext(JSRuntime*, unsigned long) (jsapi.cpp:1265) > ==31828== > ==31828== Conditional jump or move depends on uninitialised value(s) > ==31828== at 0x5D69BD: js::Interpret(JSContext*, js::StackFrame*, js::InterpMode) (jsinterp.cpp:1367) > ==31828== by 0x5D5005: js::RunScript(JSContext*, js::StackFrame*) (jsinterp.cpp:341) > ==31828== by 0x5EFB15: js::InvokeKernel(JSContext*, JS::CallArgs, js::MaybeConstruct) (jsinterp.cpp:398) > ==31828== by 0x5E5F57: js::Interpret(JSContext*, js::StackFrame*, js::InterpMode) (jsinterp.cpp:2357) > ==31828== by 0x5D5005: js::RunScript(JSContext*, js::StackFrame*) (jsinterp.cpp:341) > ==31828== by 0x5F2152: js::ExecuteKernel(JSContext*, JS::Handle<JSScript*>, JSObject&, JS::Value const&, js::ExecuteType, js::AbstractFramePtr, JS::Value*) (jsinterp.cpp:529) > ==31828== by 0x5F256C: js::Execute(JSContext*, JS::Handle<JSScript*>, JSObject&, JS::Value*) (jsinterp.cpp:568) > ==31828== by 0x484169: JS::Evaluate(JSContext*, JS::Handle<JSObject*>, JS::CompileOptions, unsigned short const*, unsigned long, JS::Value*) (jsapi.cpp:5622) > ==31828== by 0x4843B4: JS::Evaluate(JSContext*, JS::Handle<JSObject*>, JS::CompileOptions, char const*, unsigned long, JS::Value*) (jsapi.cpp:5652) > ==31828== by 0x8FCF98: JSRuntime::initSelfHosting(JSContext*) (SelfHosting.cpp:549) > ==31828== by 0x4ECD18: js::NewContext(JSRuntime*, unsigned long) (jscntxt.cpp:356) > ==31828== by 0x464A3C: JS_NewContext(JSRuntime*, unsigned long) (jsapi.cpp:1265) > ==31828== > ==31828== Conditional jump or move depends on uninitialised value(s) > ==31828== at 0x5D69BD: js::Interpret(JSContext*, js::StackFrame*, js::InterpMode) (jsinterp.cpp:1367) > ==31828== by 0x5D5005: js::RunScript(JSContext*, js::StackFrame*) (jsinterp.cpp:341) > ==31828== by 0x5F2152: js::ExecuteKernel(JSContext*, JS::Handle<JSScript*>, JSObject&, JS::Value const&, js::ExecuteType, js::AbstractFramePtr, JS::Value*) (jsinterp.cpp:529) > ==31828== by 0x5F256C: js::Execute(JSContext*, JS::Handle<JSScript*>, JSObject&, JS::Value*) (jsinterp.cpp:568) > ==31828== by 0x483C11: JS_ExecuteScript(JSContext*, JSObject*, JSScript*, JS::Value*) (jsapi.cpp:5579) > ==31828== by 0x407107: Process(JSContext*, JSObject*, char const*, bool) (js.cpp:468) > ==31828== by 0x40494B: ProcessArgs(JSContext*, JSObject*, js::cli::OptionParser*) (js.cpp:5062) > ==31828== by 0x403672: Shell(JSContext*, js::cli::OptionParser*, char**) (js.cpp:5114) > ==31828== by 0x405619: main (js.cpp:5338) > ==31828== > ==31828== Conditional jump or move depends on uninitialised value(s) > ==31828== at 0xC6C780: JSC::Yarr::Interpreter<unsigned short>::matchDisjunction(JSC::Yarr::ByteDisjunction*, JSC::Yarr::Interpreter<unsigned short>::DisjunctionContext*, bool) (jscntxt.h:2104) > ==31828== by 0xC646D2: JSC::Yarr::Interpreter<unsigned short>::interpret() (YarrInterpreter.cpp:1441) > ==31828== by 0xC64AFF: JSC::Yarr::interpret(JSContext*, JSC::Yarr::BytecodePattern*, unsigned short const*, unsigned int, unsigned int, unsigned int*) (YarrInterpreter.cpp:1968) > ==31828== by 0x92F80D: js::RegExpShared::executeMatchOnly(JSContext*, unsigned short const*, unsigned long, unsigned long*, js::MatchPair&) (RegExpObject.cpp:615) > ==31828== by 0x93919B: ExecuteRegExpImpl(JSContext*, js::RegExpStatics*, js::RegExpShared&, JS::Handle<JSLinearString*>, unsigned short const*, unsigned long, unsigned long*, js::MatchConduit&) (RegExp.cpp:128) > ==31828== by 0x93A7A5: js::ExecuteRegExp(JSContext*, JS::Handle<JSObject*>, JS::Handle<JSString*>, js::MatchConduit&) (RegExp.cpp:597) > ==31828== by 0x93C640: ExecuteRegExp(JSContext*, JS::CallArgs, js::MatchConduit&) (RegExp.cpp:625) > ==31828== by 0x93B181: regexp_test_impl(JSContext*, JS::CallArgs) (RegExp.cpp:671) > ==31828== by 0x93B0A2: js::regexp_test(JSContext*, unsigned int, JS::Value*) (jsapi.h:767) > ==31828== by 0x5EF931: js::InvokeKernel(JSContext*, JS::CallArgs, js::MaybeConstruct) (jscntxtinlines.h:338) > ==31828== by 0x5E5F57: js::Interpret(JSContext*, js::StackFrame*, js::InterpMode) (jsinterp.cpp:2357) > ==31828== by 0x5D5005: js::RunScript(JSContext*, js::StackFrame*) (jsinterp.cpp:341) > ==31828==
Assignee | ||
Comment 1•11 years ago
|
||
This stops Valgrind complaining.
Attachment #732135 -
Flags: review?(wmccloskey)
Comment on attachment 732135 [details] [diff] [review] Initialize JSRuntime::interrupt. Review of attachment 732135 [details] [diff] [review]: ----------------------------------------------------------------- Oops. Regressed in bug 852802. Thanks for catching.
Attachment #732135 -
Flags: review?(wmccloskey) → review+
Assignee | ||
Comment 3•11 years ago
|
||
> As much as I want these fixed, I want even more to know why they didn't show up > on TBPL. Gary, do we not run jit-tests with --valgrind? We should. That only > enabled Valgrind on a small number of tests (3, IIRC) so it doesn't slow things > down much. Should I file a separate bug? I filed bug 856880.
Assignee | ||
Comment 4•11 years ago
|
||
https://hg.mozilla.org/integration/mozilla-inbound/rev/e7ac9fca699c
Comment 5•11 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/e7ac9fca699c
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla23
You need to log in
before you can comment on or make changes to this bug.
Description
•