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 bd201102862a194f3f5ce669e0a3c8143eafc900. 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}`);
|