Re: [PATCH 60223] non-empty OpenSSL error queue preventing non-blocking reads through mod_ssl

2016-11-11 Thread Jacob Champion
On 11/11/2016 11:20 AM, Jacob Champion wrote: I suspect that these failures have nothing to do with this patch, but I just want to confirm that before it goes into trunk. Yeah, the failures show up with or without the patch, so I added a couple comments and committed. The SSL failures in the

Re: [PATCH 60223] non-empty OpenSSL error queue preventing non-blocking reads through mod_ssl

2016-11-11 Thread Jacob Champion
On 11/11/2016 10:15 AM, William A Rowe Jr wrote: The patch looks reasonable to me. As you point out, fixing this in APR might be worthwhile, but doesn't protect mod_ssl from other OpenSSL consuming logic such as OpenLDAP auth, database connections or other plug-ins that may leave a lingering SSL_

Re: [PATCH 60223] non-empty OpenSSL error queue preventing non-blocking reads through mod_ssl

2016-11-11 Thread William A Rowe Jr
On Fri, Nov 11, 2016 at 9:01 AM, Paul Spangler wrote: > On 10/17/2016 2:04 PM, Paul Spangler wrote: > >> Hello, >> >> Due to the way OpenSSL stores errors in a per-thread queue, functions >> such as SSL_read followed by SSL_get_error may not produce the desired >> result if the error queue is not

Re: [PATCH 60223] non-empty OpenSSL error queue preventing non-blocking reads through mod_ssl

2016-11-11 Thread Paul Spangler
On 10/17/2016 2:04 PM, Paul Spangler wrote: Hello, Due to the way OpenSSL stores errors in a per-thread queue, functions such as SSL_read followed by SSL_get_error may not produce the desired result if the error queue is not empty prior to calling SSL_read[1]. For example, a non-blocking read re

[PATCH 60223] non-empty OpenSSL error queue preventing non-blocking reads through mod_ssl

2016-10-17 Thread Paul Spangler
Hello, Due to the way OpenSSL stores errors in a per-thread queue, functions such as SSL_read followed by SSL_get_error may not produce the desired result if the error queue is not empty prior to calling SSL_read[1]. For example, a non-blocking read reports that no data is available by settin