SSL_read() returning SSL_ERROR_SYSCALL with errno 11 EAGAIN

John Unsworth John.Unsworth at
Tue May 7 08:05:59 UTC 2019

Thanks, the mutex is tied to the SSL session and used for all calls (now!).

The good news is that moving SSL_get_error() into the same mutex unit as SSL_read() has solved the problem.

Thank you for all your help and advice.


John Unsworth |Meta-Directory Engineering and Support
Mobile: +44 777.557.2643

-----Original Message-----
From: openssl-users <openssl-users-bounces at> On Behalf Of Viktor Dukhovni
Sent: 03 May 2019 23:04
To: openssl-users at
Subject: Re: SSL_read() returning SSL_ERROR_SYSCALL with errno 11 EAGAIN

CAUTION: This email originated from outside of Synchronoss.

On Fri, May 03, 2019 at 09:34:14AM +0000, John Unsworth wrote:

> Testing changed code.

For the record, though I think you realise this, *both* the SSL_read()
or SSL_write() and the following SSL_get_error() need to be protected
as a unit by the *same* instance of the locked mutex.  It would not
be enough to lock these separately.

        if (reading)
            ret = SSL_read(ssl, ...);
            ret = SSL_write(ssl, ...);
        if (ret <= 0)
            err = SSL_get_error(ssl, ret);

    /* Handle EOF and errors */


More information about the openssl-users mailing list