qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gordon Sim" <g...@redhat.com>
Subject Re: Review Request: HA Fix race condition in rejecting connections.
Date Wed, 30 Jan 2013 14:53:16 GMT


> On Jan. 30, 2013, 12:28 p.m., Gordon Sim wrote:
> > Is abort() the right call to make? What about close()? It looks to me like the 'purpose'
of abort is to trigger a simulated eof call on the connection processing thread from e.g.
the heartbeat timer thread. Since in this case we are already on the connection processing
thread, why would close() not do the job (this is not the same as issuing a clean connection.close
sequence I don't believe).
> > 
> > One thing to remember with any change to the IO code is that different 'transports'
(ssl, rdma) and platforms (windows) may involve different codepaths.
> 
> Alan Conway wrote:
>     Clients do not fail-over if the connection is closed politely, which is the objective
here.

Understood and to be clear I'm not suggesting what I would call a 'polite' close (i.e. connection-close;
connection-close-ok handshake). However calling qpid::amqp_0_10::Connection::close() should
result in the IO layer detecting that the upper layer wants to close and doing so (see qpid::sys::AsynchIOHandler::idle()
for example).

The behaviour of these calls is not well defined certainly. My only concern is we seem to
be modifying what abort() is supposed to do and at least from a skim of the code it seems
close() might do what is required (certainly it should result in aio->queueWriteClose()
being called in AsynchIOHandler).


- Gordon


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


On Jan. 29, 2013, 9:49 p.m., Alan Conway wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/9137/
> -----------------------------------------------------------
> 
> (Updated Jan. 29, 2013, 9:49 p.m.)
> 
> 
> Review request for qpid and Andrew-Duplicate-Accct-Inactiv Konwinski.
> 
> 
> Description
> -------
> 
> HA Fix race condition in rejecting connections.
> 
> Sporadic failure of test_failover_python was caused by a race in rejecting
> connections. There was a very small window where work could be done by a
> connection after it was rejected.
> 
> 
> Diffs
> -----
> 
>   /trunk/qpid/cpp/src/qpid/sys/AsynchIOHandler.cpp 1439431 
> 
> Diff: https://reviews.apache.org/r/9137/diff/
> 
> 
> Testing
> -------
> 
> make check, manual heartbeat test
> 
> 
> Thanks,
> 
> Alan Conway
> 
>


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message