mirror of
https://github.com/nodejs/node.git
synced 2025-05-01 17:03:34 +00:00

An oversight in an earlier commit led to a memory leak
in the untypical situation that zlib instances are created
but never used, because zlib handles no longer started
out their life as weak handles.
The bug was introduced in bd20110286
.
Refs: https://github.com/nodejs/node/pull/20455
PR-URL: https://github.com/nodejs/node/pull/21607
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
19 lines
604 B
JavaScript
19 lines
604 B
JavaScript
'use strict';
|
|
// Flags: --expose-gc
|
|
require('../common');
|
|
const assert = require('assert');
|
|
const zlib = require('zlib');
|
|
|
|
// Tests that native zlib handles start out their life as weak handles.
|
|
|
|
const before = process.memoryUsage().external;
|
|
for (let i = 0; i < 100; ++i)
|
|
zlib.createGzip();
|
|
const afterCreation = process.memoryUsage().external;
|
|
global.gc();
|
|
const afterGC = process.memoryUsage().external;
|
|
|
|
assert((afterGC - before) / (afterCreation - before) <= 0.05,
|
|
`Expected after-GC delta ${afterGC - before} to be less than 5 %` +
|
|
` of before-GC delta ${afterCreation - before}`);
|