question about ngx_ssl_clear_error()

何龙 lh2008999 at
Wed Jan 28 13:58:33 UTC 2015

in src/event/ngx_event_openssl.c:1907, i found function
ngx_ssl_clear_error() call openssl function ERR_peek_error() in a
while loop, intend to clear global error code queue,

but according to openssl's documents and source code, ERR_peek_error() will not
pop the first error code , and  it does not modify the queue.

so it looks like this will cause a busy loop.

is my understanding correct?


nginx source code
static void
ngx_ssl_clear_error(ngx_log_t *log)
    while (ERR_peek_error()) {
        ngx_ssl_error(NGX_LOG_ALERT, log, 0, "ignoring stale global SSL error");



openssl source code:

More information about the nginx-devel mailing list