Skip to content

Performance issue with Openssl 3.0 in multi threaded application when using d2i_x509 #17950

Open
@ramkumarpvs

Description

@ramkumarpvs

We are observing high CPU usage and performance issue with Openssl 3.0.1 on Linux when using Certificate extract API d2i_X509 using default context.
All our server processing threads are having high cpu usage and are spending most of their time in CRYPTO_THREAD_read_lock, CRYPTO_THREAD_unlock and CRYPTO_THREAD_write_lock similar to the one described in #17064.
Each thread is showing CPU usage as high as 95-99%.

There are several code paths reaching the above crypto lock methods, we could capture stack traces and attached document for reference.

Stack traces for several threads:
[openssl3_0_d2iX509_filtered_stack_traces.txt]
(https://github.com/openssl/openssl/files/8336711/openssl3_0_d2iX509_filtered_stack_traces.txt)

Full stack trace for single thread:
openssl3_0_d2iX509_full_stack_trace.txt

From our application we use d2i_X509 which internally call ASN1_item_d2i_ex() across all threads and in most cases we see OSSL_DECODER_CTX_new_for_pkey() exists in the stack, would this locking issue be resolved through #17116

We would like to know when this issue would be resolved. Let us know if any other information is required.

Metadata

Metadata

Labels

Type

No type

Projects

Status

Refine

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions

    close