Skip to content

Commit 737b42e

Browse files
authored
src: fix race on process exit and off thread CA loading
When calling `process.exit()` or on uncaught exceptions as soon as the process starts, the process will try to terminate immediately. In this case, there could be a race condition on the unfinished off-thread system CA loader which tries to access the OpenSSL API which has been de-inited on the main thread. PR-URL: #59632 Refs: #59550 Reviewed-By: Joyee Cheung <[email protected]>
1 parent 961554c commit 737b42e

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

src/api/environment.cc

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
#include <cstdlib>
2+
#if HAVE_OPENSSL
3+
#include "crypto/crypto_util.h"
4+
#endif // HAVE_OPENSSL
25
#include "env_properties.h"
36
#include "node.h"
47
#include "node_builtins.h"
@@ -1004,6 +1007,11 @@ void DefaultProcessExitHandlerInternal(Environment* env, ExitCode exit_code) {
10041007
// in node_v8_platform-inl.h
10051008
uv_library_shutdown();
10061009
DisposePlatform();
1010+
1011+
#if HAVE_OPENSSL
1012+
crypto::CleanupCachedRootCertificates();
1013+
#endif // HAVE_OPENSSL
1014+
10071015
Exit(exit_code);
10081016
}
10091017

0 commit comments

Comments
 (0)