Open Bug 1540986 Opened 5 years ago Updated 2 years ago

Dead zones are not automatically collected

Categories

(Core :: JavaScript: GC, defect, P3)

defect

Tracking

()

Tracking Status
firefox68 --- affected

People

(Reporter: jonco, Unassigned)

References

(Blocks 1 open bug)

Details

(Whiteboard: [MemShrink:P2])

The following script causes the shell to allocate 10GB of memory without triggering a collection by allocating memory in many different zones:

for (let i = 0; i < 1000; i++) {
    let g = newGlobal({newCompartment: true});
    g.eval(`
        let size = 10 * 1024 * 1024;
        let a = new Int8Array(10 * 1024 * 1024)
        for (let i = 0; i < size; i += 4096) {
            a[i] = i;
        }
    `);
}

The memory ends up unreachable but per-zone allocation thresholds are not reached so no GC is triggered.

I think might be what is causing OOMs in our testing. Even if not it suggests we should have some kind of trigger based on the number of zones.

Priority: -- → P3
Whiteboard: [MemShrink]

(In reply to Jon Coppeard (:jonco) from comment #0)

I think might be what is causing OOMs in our testing.

I wrote a patch for this and it doesn't help. I now suspect OOMs during reftests are caused by a memory leak.

Whiteboard: [MemShrink] → [MemShrink:P2]
Assignee: jcoppeard → nobody
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.