----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/10044/#review19386 -----------------------------------------------------------
The naming for the new exceptions doesn't quite make sense to me. Do the existing exceptions indeed cause the connection to block? I thought they instead caused subsequent api calls to error out. - Justin Ross On March 20, 2013, 2:04 p.m., Ernie Allen wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/10044/ > ----------------------------------------------------------- > > (Updated March 20, 2013, 2:04 p.m.) > > > Review request for qpid, Rafael Schloming and Justin Ross. > > > Description > ------- > > If there is an exception when encrypting or decrypting a message, the python > client will be in an unusable state. It will not be possible to send any > other messages or even close the connection. > > The cause of this is that the connection class stores any exceptions that > occur and returns them to the application. Those exceptions are never cleared > and block any further activity. > > This proposed fix: > - Creates a new exception type: NonBlockingError. > - Encode and decode exception are caught and converted to NonBlockingErrors. > - When a NonBlockingError is encountered, it is returned to the application > and then cleared so future calls can continue. > > > This addresses bug qpid-2453. > https://issues.apache.org/jira/browse/qpid-2453 > > > Diffs > ----- > > trunk/qpid/python/qpid/messaging/driver.py 1457042 > trunk/qpid/python/qpid/messaging/endpoints.py 1457042 > trunk/qpid/python/qpid/messaging/exceptions.py 1457042 > > Diff: https://reviews.apache.org/r/10044/diff/ > > > Testing > ------- > > Attached test-nonblock.py will send and receive several messages. One of the > messages will cause an encode exception. > Before the patch, the exception will prevent further messages from being sent > and prevent the connection from being closed. > After the patch, the bad message will raise an exception, further messages > can be sent and the connection can be closed. > > > Thanks, > > Ernie Allen > >