У нас есть служба, использующая openSSL
версию 1.0.2h
в многопоточной среде.
Первый поток запускает блокировку чтения, другой выполняет периодическую запись.
Время от времени происходит сбойвремя где-то внутри libssl.so
в SSL_write
функции.Вызов кода SSL_write
выглядит абсолютно законно, он работает с буфером, размещенным в стеке вызывающей функции.Также очень редко происходит сбой, который предполагает, что это может быть состояние гонки.
Я обнаружил следующую статью , в которой говорится, что использование одного SSL
объекта в двух потоках, по одному для чтения и записи, являетсяне безопасно, хотя CRYPTO_set_locking_callback
установлено.Это верно?Если да, то каков предложенный способ решить эту проблему?Если я заблокирую mutex
на блокирующем чтении, я не смогу написать.