Project

General

Profile

Actions

Bug #17109

closed

ceph::crypto (NSS) memory leaks after global_init_daemonize()

Added by Casey Bodley over 7 years ago. Updated about 3 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
-
Target version:
-
% Done:

0%

Source:
other
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

When USE_NSS is defined, ceph::crypto::init() tries very hard to detect when we've forked, and does reference counting to try to match up calls to ceph::crypto::init() with ceph::crypto::shutdown().

The first call to ceph::crypto::init() happens before the fork, however, so the child starts with crypto_refs=1, and never sees a matching ceph::crypto::shutdown() to release the parent's reference. This leads to the child leaking everything allocated by NSS_InitContext().

Actions

Also available in: Atom PDF