-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/11319/#review20898
-----------------------------------------------------------

Ship it!


Ship It!

- Rafael Schloming


On May 21, 2013, 8:40 p.m., Kenneth Giusti wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/11319/
> -----------------------------------------------------------
> 
> (Updated May 21, 2013, 8:40 p.m.)
> 
> 
> Review request for qpid, Alan Conway and Rafael Schloming.
> 
> 
> Description
> -------
> 
> This is a hack (yes, a _HACK_) to work around the behavior of python's SSL 
> implementation.
> 
> When the SSL socket cannot complete a read() or write() operation without 
> performing it's opposite (a write() or read() operation), it will throw an 
> SSL_ERROR_WANT_READ/WRITE exception.  To resume the failed operation, the 
> code must re-invoke the read() or write() with _exactly_ the same parameters 
> as were passed when the call threw the exception.
> 
> This is due to the underlying OpenSSL implementation requirements.
> 
> Originally, when writing we passed the string buffer that holds output data.  
> This string buffer can be appended with new write data between the successive 
> calls to write(), which will cause the underlying pointer to change.  This 
> fix tracks the original buffer passed to the failing call, and retries the 
> call using that.
> 
> Originally, each call to recv() would return a new buffer.  This patch 
> introduces a bytearray-based buffer that can be preserved across a read retry.
> 
> Not 100% enamored by this patch, if anyone has a better approach I'm all 
> ears....
> 
> 
> This addresses bug qpid-4872.
>     https://issues.apache.org/jira/browse/qpid-4872
> 
> 
> Diffs
> -----
> 
>   /trunk/qpid/python/qpid/messaging/transports.py 1484491 
> 
> Diff: https://reviews.apache.org/r/11319/diff/
> 
> 
> Testing
> -------
> 
> Reproduced the failure both with and without the patch.  No exceptions thrown 
> with the patch in place.
> 
> 
> Thanks,
> 
> Kenneth Giusti
> 
>

Reply via email to