[ 
https://issues.apache.org/jira/browse/THRIFT-2696?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jens Geyer reopened THRIFT-2696:
--------------------------------

TTcpSocketStreamImpl.Read does not return an error code. it returms the bytes 
read. When 0, the calling code in {{TTransportImpl}} assumes the client closed 
his end. {{TTransportImpl}} itself is transport-agnostic, so changing anything 
here may easily lead to more side effects with other transports. 

With regard to the timeout, I would expect it to behave this way, otherwise I 
can do a simple DOS by opening the socket and never closing it. If I don't want 
this, leave the default timeout = wait forever. However, that leaves us with 
the same situation as above, so that's a problem indeed.

Could you give my patch a try if that works for you? I tried to cover all 
possible scenarios now.


> Unable to stop socket server while there are idle clients
> ---------------------------------------------------------
>
>                 Key: THRIFT-2696
>                 URL: https://issues.apache.org/jira/browse/THRIFT-2696
>             Project: Thrift
>          Issue Type: Bug
>          Components: Delphi - Library
>    Affects Versions: 0.9
>            Reporter: Severian Duchenko
>            Assignee: Jens Geyer
>         Attachments: 
> THRIFT-2696-Unable-to-stop-socket-server-while-there.patch, patch.txt
>
>
> When TSimpleServer created using TServerSocketImpl and there are idle clients 
> (connected, but not sending anything), it is impossible to stop server.
> After executing TSimpleServer.stop server will not stop until client is 
> disconnected or does not send anything.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to