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]

Reply via email to