Closed Bug 415207 Opened 16 years ago Closed 16 years ago

time overflow when checking for arena list age

Categories

(Core :: JavaScript Engine, defect)

x86
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: igor, Assigned: igor)

References

Details

Attachments

(1 file)

[This is a spin-off of bug 400902 comment 46.]

The code in js_TraceContext that checks for the age of the stack pool of arenas contains the following code in js_TraceContext:

    int64 *timestamp;
...
    timestamp = (int64 *) a->base;
    if (JS_Now() - *timestamp > acx->runtime->gcStackPoolLifespan * 1000)
        JS_FinishArenaPool(&acx->stackPool);

Since acx->runtime->gcStackPoolLifespan is uint32, acx->runtime->gcStackPoolLifespan * 1000 overflows whenever it is set to 1 hour 12 minutes or more.

Another problem with that code fragment is that it performs the arena cleanup unconditionally even if js_TraceContext is invoked by non-GC tracer.
Blocks: 408113
Attached patch v1Splinter Review
This is a part of already approved patch from bug 400902 comment 44. It is moved to a separated bug to avoid mixing different issues in the same patch.
Attachment #300823 - Flags: review?(crowder)
Attachment #300823 - Flags: approval1.9b3?
Attachment #300823 - Flags: approval1.9?
Attachment #300823 - Flags: review?(crowder) → review+
Comment on attachment 300823 [details] [diff] [review]
v1

a=beltzner for beta 3
Attachment #300823 - Flags: approval1.9b3?
Attachment #300823 - Flags: approval1.9b3+
Attachment #300823 - Flags: approval1.9?
Attachment #300823 - Flags: approval1.9+
I checked in the patch from comment 1 to the trunk:

http://bonsai.mozilla.org/cvsquery.cgi?module=PhoenixTinderbox&branch=HEAD&cvsroot=%2Fcvsroot&date=explicit&mindate=1201888501&maxdate=1201888648&who=igor%25mir2.org
Status: NEW → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
Flags: in-testsuite-
Flags: in-litmus-
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: