Closed
Bug 924864
Opened 11 years ago
Closed 11 years ago
GenerationalGC: Crash [@ compartment] with poisoned pointer
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
RESOLVED
FIXED
mozilla27
People
(Reporter: decoder, Assigned: jonco)
References
Details
(Keywords: crash, testcase, Whiteboard: [jsbugmon:ignore])
Crash Data
Attachments
(1 file)
(deleted),
patch
|
terrence
:
review+
|
Details | Diff | Splinter Review |
The following testcase crashes on mozilla-central built with --enable-exact-rooting --enable-gcgenerational, revision 8f08240128c8 (run with --fuzzing-safe --ion-eager):
var gTestcases = new Array();
var gTc = gTestcases.length;
function TestCase() gTestcases[gTc++] = this;
function reportCompare () {
new TestCase();
"x".match(/y/)
}
gczeal(7,1);
reportCompare();
Array.prototype[1] = 2;
reportCompare();
reportCompare();
reportCompare();
gTestcases[3].dump();
Reporter | ||
Comment 1•11 years ago
|
||
Crash trace:
Program received signal SIGSEGV, Segmentation fault.
compartment (this=0xf6900790) at /srv/repos/mozilla-central/js/src/vm/Interpreter.cpp:3862
3862 }
#0 compartment (this=0xf6900790) at /srv/repos/mozilla-central/js/src/vm/Interpreter.cpp:3862
#1 check (obj=(JSObject *) 0xf6900790 Cannot access memory at address 0x2b2b2b2b, this=0xffffc718) at ../jscntxtinlines.h:72
#2 check (v=..., this=0xffffc718) at ../jscntxtinlines.h:87
#3 js::CompartmentChecker::check (this=0xffffc718, v=...) at ../jscntxtinlines.h:85
#4 0x08442368 in assertSameCompartmentDebugOnly<JS::MutableHandle<JS::Value> > (t1=<synthetic pointer>, cx=0x93873c8) at ../jscntxtinlines.h:154
#5 GetObjectElementOperation (res=$jsval(-nan(0xfff87f6900790)), rref=$jsval(-nan(0xfff8100000003)), wasObject=<optimized out>, objArg=(JSObject *) 0xf67381a0 [object Array], op=JSOP_GETELEM, cx=0x93873c8) at ../vm/Interpreter-inl.h:413
#6 GetElementOperation (res=..., rref=..., lref=..., op=<optimized out>, cx=<optimized out>) at ../vm/Interpreter-inl.h:465
#7 js::jit::DoGetElemFallback (cx=0x93873c8, frame=0xffffc7cc, stub=0x93bb338, lhs=$jsval(-nan(0xfff87f67381a0)), rhs=$jsval(-nan(0xfff8100000003)), res=$jsval(-nan(0xfff87f6900790))) at /srv/repos/mozilla-central/js/src/jit/BaselineIC.cpp:3894
eax 0x2b2b2b2b 724249387
=> 0x80d6b94 <js::CompartmentChecker::check(JS::Value const&)+164>: mov (%eax),%eax
This is now one of the most common fuzz signatures, so I suggest we start with that one :)
Flags: needinfo?(jcoppeard)
Updated•11 years ago
|
Assignee: general → terrence
Comment 2•11 years ago
|
||
I haven't had enough linear, unobstructed time to get my head into this yet. What I did see makes me think this is going to be a complete beast to track down. Christian, if you have other reduced instances of this crash, it will be helpful to have them handy for triangulation.
I'm unassigning myself in case Jon has some time to look at it tomorrow.
Assignee: terrence → nobody
Flags: needinfo?(choller)
Reporter | ||
Comment 3•11 years ago
|
||
I have seen several other crashes with the same crash address pattern. One of these I filed as bug 924866 but I don't know if that's the same bug.
Do you need more than those two? I have maybe 5 other crashes that all share two common things:
1) They somehow assign prototype or some index of it.
2) They crash at 0x2b2b2b2b but not always in the same function.
Flags: needinfo?(choller)
Assignee | ||
Comment 4•11 years ago
|
||
Yes please post the other crashes somewhere. Anything that would help to narrow this down would be great!
Flags: needinfo?(jcoppeard) → needinfo?(choller)
Assignee | ||
Updated•11 years ago
|
Assignee: nobody → jcoppeard
Assignee | ||
Comment 5•11 years ago
|
||
When I added the postbarrier to GenerateSetDenseElementIC in bug 919536, I messed up the assembly such that it didn't get called in the case when the write is to one beyond the last element in the array. Hence fuzz bugs like this and bug 924866.
Attachment #816647 -
Flags: review?(terrence)
Comment 7•11 years ago
|
||
Comment on attachment 816647 [details] [diff] [review]
bug924864-fuzz-crash
Review of attachment 816647 [details] [diff] [review]:
-----------------------------------------------------------------
Yup. Glad I did not try to track this down myself. r=me
Attachment #816647 -
Flags: review?(terrence) → review+
Assignee | ||
Comment 8•11 years ago
|
||
Reporter | ||
Updated•11 years ago
|
Flags: needinfo?(choller)
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla27
You need to log in
before you can comment on or make changes to this bug.
Description
•