Daniel Evans created PROTON-1310:
------------------------------------
Summary: proton-j reactor transport head never closes
Key: PROTON-1310
URL: https://issues.apache.org/jira/browse/PROTON-1310
Project: Qpid Proton
Issue Type: Bug
Components: proton-j
Affects Versions: 0.15.0
Reporter: Daniel Evans
With a server (listener) test class and a client test class, I'm able to
disconnect the client such that occasionally on the server the TRANSPORT_ERROR
and TRANSPORT_TAIL_CLOSED events fire but TRANSPORT_HEAD_CLOSED and
TRANSPORT_CLOSED do not. A timer selectable running to keep the reactor alive
then causes repeated TRANSPORT events that all report -1 pending and isClosed
== true. This goes on forever.
In the good case, the global event logger sequence is:
TRANSPORT_ERROR
TRANSPORT_TAIL_CLOSED
SELECTABLE_UPDATED
REACTOR_QUIESCED
TRANSPORT_HEAD_CLOSED
TRANSPORT_CLOSED
SELECTABLE_FINAL
CONNECTION_UNBOUND
TRANSPORT
And in the bad case:
TRANSPORT_ERROR
TRANSPORT_TAIL_CLOSED
SELECTABLE_UPDATED
REACTOR_QUIESCED
SELECTABLE_FINAL
REACTOR_QUIESCED
SELECTABLE_UPDATED
TRANSPORT
REACTOR_QUIESCED
SELECTABLE_UPDATED
TRANSPORT
... etc.
Digging around with the debugger I verified that no selectables were writable
in the IOHandler and TransportImpl's pop() was never being called when the
output pending was -1.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]