[ 
https://issues.apache.org/jira/browse/DISPATCH-2265?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17435407#comment-17435407
 ] 

Ken Giusti commented on DISPATCH-2265:
--------------------------------------

Update:  also affects HTTP/1.x.

Root cause:

On client connection, the client-facing adaptor creates the necessary ingress 
link (router POV) bound to the service address.  Since the service is not 
active (e.g. no servers for that service address are subscribed in the routing 
network) no link credit is granted to the ingress link.  The adaptor does not 
make read buffers available to the proactor raw connection until the ingress 
link has credit (flow control).

 

The issue is that the proactor will not detect the client disconnect event 
since the proactor cannot perform a socket recv() call without a read buffer 
available.  That's socket semantics: recv() returns 0 on connection close.  So 
no DISCONNECT event is generated and the connection remains indefinitely after 
the client disconnects.

 

> TCP and HTTP adaptor: client connection leak on close if no connector present
> -----------------------------------------------------------------------------
>
>                 Key: DISPATCH-2265
>                 URL: https://issues.apache.org/jira/browse/DISPATCH-2265
>             Project: Qpid Dispatch
>          Issue Type: Bug
>          Components: Protocol Adaptors
>    Affects Versions: 1.17.0
>            Reporter: Ken Giusti
>            Priority: Major
>             Fix For: 1.18.0
>
>
> Create a router with a tcpListener.  Connect a client to the listener (I used 
> Telnet).  Disconnect the client.  qdstat -l shows the in link for the service 
> as still present.  AFAIKT there was no DISCONNECT event.
> I used an edge router to reproduce this.
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to