Bug 197092

Summary: [bmalloc] Register PerProcess's memory as root for Darwin Leaks tool
Product: WebKit Reporter: Yusuke Suzuki <ysuzuki>
Component: bmallocAssignee: Yusuke Suzuki <ysuzuki>
Status: NEW ---    
Severity: Normal CC: ggaren, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   

Description Yusuke Suzuki 2019-04-18 22:28:47 PDT
Recently, we see some false-positive memory leaks related to bmalloc::PerProcess. Currently I'm ensuring my thought but it seems that this is because PerProcess's data is allocated with vmAllocate with tag. This means that this memory is not scanned by Leak tool.
And maybe, bmalloc::Zone is also accidentally broken since bmalloc::PerProcess now allocates memory from vmAllocate. bmalloc::Zone resides in vmAllocate-ed memory, so FixedVector in bmalloc::Zone is not considered as root.
Comment 1 Yusuke Suzuki 2019-04-18 22:29:31 PDT
<rdar://problem/45854674>
Comment 2 Yusuke Suzuki 2019-04-18 22:54:23 PDT
(In reply to Yusuke Suzuki from comment #0)
> Recently, we see some false-positive memory leaks related to
> bmalloc::PerProcess. Currently I'm ensuring my thought but it seems that
> this is because PerProcess's data is allocated with vmAllocate with tag.
> This means that this memory is not scanned by Leak tool.
> And maybe, bmalloc::Zone is also accidentally broken since
> bmalloc::PerProcess now allocates memory from vmAllocate. bmalloc::Zone
> resides in vmAllocate-ed memory, so FixedVector in bmalloc::Zone is not
> considered as root.

I thought Zone is broken because of the comment of Zone, but maybe, it is not broken. I discussed with JoePeck about this. Leaks tool correctly scans bmalloc's heap as malloc-ed heap by using malloc-zone enumerate API. So maybe, situation is changed from https://trac.webkit.org/changeset/180359/webkit.

So it seems that this issue is already fixed by the tool side. After ensuring this, I'll change this CONFIGURATION CHANGED.