openSSL безопасность чтения / записи потока - PullRequest
0 голосов
/ 08 апреля 2019

У нас есть служба, использующая openSSL версию 1.0.2h в многопоточной среде.

Первый поток запускает блокировку чтения, другой выполняет периодическую запись.

Время от времени происходит сбойвремя где-то внутри libssl.so в SSL_write функции.Вызов кода SSL_write выглядит абсолютно законно, он работает с буфером, размещенным в стеке вызывающей функции.Также очень редко происходит сбой, который предполагает, что это может быть состояние гонки.

Я обнаружил следующую статью , в которой говорится, что использование одного SSL объекта в двух потоках, по одному для чтения и записи, являетсяне безопасно, хотя CRYPTO_set_locking_callback установлено.Это верно?Если да, то каков предложенный способ решить эту проблему?Если я заблокирую mutex на блокирующем чтении, я не смогу написать.

1 Ответ

0 голосов
/ 09 апреля 2019

Мы предлагаем изменить пороги тайм-аута.

Отслеживание и отладка состояния гонки затруднены, и в конечном итоге вам придется изменить параметры времени ожидания и / или буфера. Лучше изучите эти параметры прямо сейчас.

...