New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 728096 link

Starred by 0 users

Issue metadata

Status: Fixed
Owner:
Closed: May 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Chrome , Mac
Pri: 3
Type: Bug



Sign in to add a comment

Partial releasing of pages results in address space leak and inconsistent counters

Project Member Reported by mlippautz@chromium.org, May 31 2017

Issue description

When partially releasing memory on large pages we 
(1) perform PartialRelease on the region at the end of the page
(2) decrease the page size

On Windows this is problematic because we cannot actually release the region but merely uncommit it due to Windows API constraints. Furthermore, we should update the committed counter on LargeObjectSpace to reflect that memory was uncommitted, as this counter is reported.

The address space leak happens when we then finally release the large page as we only release and update the counters corresponding to the page size.

To address this issue we need to
(a) report the uncommitted area right away, and
(b) release the right region of memory when fully returning the page
 
Status: Started (was: Assigned)
As discussed offline: There is no address space leak but the counters are out of sync.
Project Member

Comment 2 by bugdroid1@chromium.org, May 31 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/73cf88d6a0bb0f32d048f37bfe33077a2c83c672

commit 73cf88d6a0bb0f32d048f37bfe33077a2c83c672
Author: Michael Lippautz <mlippautz@chromium.org>
Date: Wed May 31 12:09:51 2017

[heap] Fix accounting for partially freed pages in LO space

Bug:  chromium:728096 
Change-Id: I8f95f15b56cd49f3e199b74b119abb49eadfe2e1
Reviewed-on: https://chromium-review.googlesource.com/519163
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Reviewed-by: Hannes Payer <hpayer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45624}
[modify] https://crrev.com/73cf88d6a0bb0f32d048f37bfe33077a2c83c672/src/heap/spaces.cc
[modify] https://crrev.com/73cf88d6a0bb0f32d048f37bfe33077a2c83c672/src/heap/spaces.h

Status: Fixed (was: Started)

Sign in to add a comment