Closed
Bug 507675
Opened 16 years ago
Closed 14 years ago
TM: Out of memory error with -j for microbenchmark
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
RESOLVED
WORKSFORME
People
(Reporter: wagnerg, Unassigned)
Details
Following microbenchmark generates an out of memory error with JIT enabled.
var t0 = new Date;
for(var i=0;i<10000000;i++)
new Date;
print(new Date - t0);
host-6-16:src mozilla$ ./OPT.OBJ/js -j ./date.js
./date.js:4: out of memory
./date.js:4: out of memory
./date.js:4: out of memory
./date.js:4: out of memory
./date.js:4: out of memory
./date.js:4: out of memory
4164
host-6-16:src mozilla$ ./OPT.OBJ/js ./date.js
6741
Comment 1•16 years ago
|
||
Is this a regression from the fix for bug 505612 ? If so, please note that this bug blocks that bug.
/be
Comment 2•16 years ago
|
||
Seems to work in the browser. Gregor, can you confirm? (try javascript: for(var i=0;i<10000000;i++) new Date; in the url bar).
Comment 3•16 years ago
|
||
Breakpoint 2, js_ReportOutOfMemory (cx=0x2009800) at ../jscntxt.cpp:1297
1297 if (JS_ON_TRACE(cx) && !cx->bailExit)
(gdb) bt 5
#0 js_ReportOutOfMemory (cx=0x2009800) at ../jscntxt.cpp:1297
#1 0x0002a542 in RefillDoubleFreeList (cx=0x2009800) at ../jsgc.cpp:2087
#2 0x0002a916 in js_NewDoubleInRootedValue (cx=0x2009800, d=0, vp=0xbfffc608) at ../jsgc.cpp:2193
#3 0x0002a993 in js_NewWeaklyRootedDouble (cx=0x2009800, d=0) at ../jsgc.cpp:2213
#4 0x000b6ea3 in date_constructor (cx=0x2009800, obj=0x5c206a0) at ../jsdate.cpp:2099
(More stack frames follow...)
(gdb) bt 8
#0 js_ReportOutOfMemory (cx=0x2009800) at ../jscntxt.cpp:1297
#1 0x0002a542 in RefillDoubleFreeList (cx=0x2009800) at ../jsgc.cpp:2087
#2 0x0002a916 in js_NewDoubleInRootedValue (cx=0x2009800, d=0, vp=0xbfffc608) at ../jsgc.cpp:2193
#3 0x0002a993 in js_NewWeaklyRootedDouble (cx=0x2009800, d=0) at ../jsgc.cpp:2213
#4 0x000b6ea3 in date_constructor (cx=0x2009800, obj=0x5c206a0) at ../jsdate.cpp:2099
#5 0x000b6f3c in js_Date (cx=0x2009800, obj=0x5c206a0, argc=0, argv=0xbfffc710, rval=0xbfffc72c) at ../jsdate.cpp:2121
#6 0x009aef68 in ?? ()
#7 0xbfffed78 in ?? ()
(More stack frames follow...)
(gdb) n
1302 JSErrorReporter onError = cx->errorReporter;
(gdb) s
1306 js_GetLocalizedErrorMessage(cx, NULL, NULL, JSMSG_OUT_OF_MEMORY);
(gdb) p cx->bailExit
$1 = (VMSideExit *) 0x9ad2cc
(gdb) p cx->runtime->threadData.traceMonitor.tracecx
$2 = (JSContext *) 0x2009800
So we're not returning early in js_ReportOutOfMemory via the tracing condition:
1294 * If we are in a builtin called directly from trace, don't report an
1295 * error. We will retry in the interpreter instead.
1296 */
1297 if (JS_ON_TRACE(cx) && !cx->bailExit)
1298 return;
| Reporter | ||
Comment 4•16 years ago
|
||
Yeah it works in the browser.
(In reply to comment #2)
> Seems to work in the browser. Gregor, can you confirm? (try javascript: for(var
> i=0;i<10000000;i++) new Date; in the url bar).
Comment 5•16 years ago
|
||
The browser calls MaybeGC. That avoids it. We still have to fix the stack trace waldo posted though to make sure last ditch gets it.
Comment 6•16 years ago
|
||
Status: NEW → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
Comment 7•16 years ago
|
||
oops, wrong bug number in the checkin comment for that changeset
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Comment 8•14 years ago
|
||
No OOM with Interp, TM, JM, or JM+TI with a current JS shell.
Status: REOPENED → RESOLVED
Closed: 16 years ago → 14 years ago
Resolution: --- → WORKSFORME
You need to log in
before you can comment on or make changes to this bug.
Description
•