Closed
Bug 579279
Opened 15 years ago
Closed 14 years ago
TM: Crash [@ NamespaceHelper] or "Assertion failure: l.asBits <= JSVAL_SHIFTED_TAG_MAX_DOUBLE," or "Assertion failure: l.s.tag < JSVAL_TAG_CLEAR,"
Categories
(Core :: JavaScript Engine, defect)
Core
JavaScript Engine
Tracking
()
RESOLVED
FIXED
Tracking | Status | |
---|---|---|
blocking2.0 | --- | betaN+ |
People
(Reporter: gkw, Assigned: luke)
References
Details
(4 keywords, Whiteboard: [ccbr] fixed-in-tracemonkey)
Crash Data
Attachments
(1 file)
4.81 KB,
patch
|
dmandelin
:
review+
|
Details | Diff | Splinter Review |
try {
for (m = 0; m < 1; m++) {
b = m; ( * )
}
var x = /x/
} catch(e) {}
for (var z = 0; z < 7; ++z) {
x %= b
}
default xml namespace = ( - ((a) = x))
asserts js debug shell on TM tip with -j at Assertion failure: l.asBits <= JSVAL_SHIFTED_TAG_MAX_DOUBLE, at ../jsval.h:499 and crashes js opt shell on TM tip with -j at NamespaceHelper
(Tested on 64-bit Mac OS X 10.6)
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x0000000000000000
0x0000000100165169 in JS_Assert (s=0x1001f8090 "l.asBits <= JSVAL_SHIFTED_TAG_MAX_DOUBLE", file=0x1001ff970 "../jsval.h", ln=499) at ../jsutil.cpp:81
81 *((int *) NULL) = 0; /* To continue from here in GDB: "return" then "continue". */
(gdb) bt
#0 0x0000000100165169 in JS_Assert (s=0x1001f8090 "l.asBits <= JSVAL_SHIFTED_TAG_MAX_DOUBLE", file=0x1001ff970 "../jsval.h", ln=499) at ../jsutil.cpp:81
#1 0x0000000100011ac8 in DOUBLE_TO_JSVAL_IMPL (d=-nan(0xfffffffffffff)) at jsval.h:499
#2 0x00000001000292db in js::Value::setDouble (this=0x1010001b0, d=-nan(0xfffffffffffff)) at jsvalue.h:343
#3 0x000000010009cd66 in js::Interpret (cx=0x100511b80) at ../jsinterp.cpp:3626
#4 0x00000001000b808b in js::Execute (cx=0x100511b80, chain=0x101401000, script=0x100516f70, down=0x0, flags=0, result=0x7fff5fbff570) at jsinterp.cpp:880
#5 0x00000001000162a7 in JS_ExecuteScript (cx=0x100511b80, obj=0x101401000, script=0x100516f70, rval=0x7fff5fbff570) at ../jsapi.cpp:4638
#6 0x000000010000abe6 in Process (cx=0x100511b80, obj=0x101401000, filename=0x0, forceTTY=0) at ../../shell/js.cpp:532
#7 0x000000010000b4a7 in ProcessArgs (cx=0x100511b80, obj=0x101401000, argv=0x7fff5fbff7d0, argc=1) at ../../shell/js.cpp:853
#8 0x000000010000b58f in shell (cx=0x100511b80, argc=1, argv=0x7fff5fbff7d0, envp=0x7fff5fbff7e0) at ../../shell/js.cpp:5029
#9 0x000000010000b68b in main (argc=1, argv=0x7fff5fbff7d0, envp=0x7fff5fbff7e0) at ../../shell/js.cpp:5116
Reporter | ||
Comment 1•15 years ago
|
||
Asserts at:
Assertion failure: l.s.tag < JSVAL_TAG_CLEAR, at ../jsval.h:321
for a 32-bit js debug shell on Ubuntu Linux 10.04.
OS: Mac OS X → All
Hardware: x86 → All
Summary: TM: Crash [@ NamespaceHelper] or "Assertion failure: l.asBits <= JSVAL_SHIFTED_TAG_MAX_DOUBLE," → TM: Crash [@ NamespaceHelper] or "Assertion failure: l.asBits <= JSVAL_SHIFTED_TAG_MAX_DOUBLE," or "Assertion failure: l.s.tag < JSVAL_TAG_CLEAR,"
Reporter | ||
Comment 2•15 years ago
|
||
autoBisect shows this is probably related to the following changeset:
The first bad revision is:
changeset: 47546:9c869e64ee26
user: Luke Wagner
date: Wed Jul 14 23:19:36 2010 -0700
summary: Bug 549143 - fatvals
Blocks: fatvals
Assignee | ||
Comment 3•15 years ago
|
||
I believe this one is a GCC bug:
We use __attribute__((packed)) + having 0xFFFF0000 as an enumerator to ensure that JSValueTag is a uint32. However, for the failing assertion, GCC is choosing to use signed comparison, which is wrong. :-( On the bright side, such comparisons are all hidden behind the JSVAL_*_IMPL macros and so this can all be fixed in one place.
Updated•15 years ago
|
Attachment #457977 -
Flags: review?(dmandelin) → review+
Assignee | ||
Comment 4•15 years ago
|
||
Whiteboard: [ccbr] → [ccbr] fixed-in-tracemonkey
Comment 5•14 years ago
|
||
Status: ASSIGNED → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
Updated•14 years ago
|
blocking2.0: ? → betaN+
Updated•14 years ago
|
Crash Signature: [@ NamespaceHelper]
You need to log in
before you can comment on or make changes to this bug.
Description
•