Am I getting the following error when attempting an SSL_write:
error:1409F07F:SSL routines:SSL3_WRITE_PENDING: bad write retry
Am I getting the following error when attempting an SSL_write:
error:1409F07F:SSL routines:SSL3_WRITE_PENDING: bad write retry
The reason is pretty simple: when SSL_Write returns with SSL_ERROR_WANT_WRITE or SSL_ERROR_WANT_READ, you have to repeat the call to SSL_write with the EXACT same parameters again, after the condition is satisfied (read/write available on the socket).
Calling it with different parameters, will yield the 1409F07F bad write retry error.
For example, when SSL_write(ssl, ptr, size) with ptr = 0xABCDEFGH, size = 4096 fails with SSL_ERROR_WANT_READ or SSL_ERROR_WANT_WRITE, when retrying the SSL_write call, the parameters ptr and size should be same. It is not equivalent if ptr is another pointer pointing to a copy of the same contents as in the original call.
However this default behavior of SSL_write can be changed by setting SSL_MODE_ENABLE_PARTIAL_WRITE and/or SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER.
Thanks for @ShriramV for the clarifying comments, integrated to the answer
:SSL routines:SSL3_WRITE_PENDING: bad write retry
. I try to send out push notification to around 15k users. I noticed that it will break around every multiple of hundreds, but before that error pops up the error of SSL: Broken pipe
will show up first. I solved the problem whenever broken pipe error shows up via reconnecting the connection again. Then continue sending. It works. Just keep doing this until you send too all users. –
Banda © 2022 - 2024 — McMap. All rights reserved.