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

Jens Geyer resolved THRIFT-6355.
--------------------------------
    Fix Version/s: 0.26.0
       Resolution: Fixed

> Lua socket_send() resumes a partial or interrupted send from the wrong 
> position
> -------------------------------------------------------------------------------
>
>                 Key: THRIFT-6355
>                 URL: https://issues.apache.org/jira/browse/THRIFT-6355
>             Project: Thrift
>          Issue Type: Bug
>          Components: Lua - Library
>            Reporter: Jens Geyer
>            Priority: Minor
>             Fix For: 0.26.0
>
>
> When {{send()}} in {{socket_send()}} ({{lib/lua/src/usocket.c}}) wrote only 
> part of the data or was interrupted, the retry did not resume after the last 
> byte sent, so the data that reached the peer was not the data given. A send 
> whose retries ran out still reported success, and {{TSocket:write()}} did not 
> check the result.
> Fixed on master by 
> [da77d60e8|https://github.com/apache/thrift/commit/da77d60e8d8c8f1635001c726fffeb0e3cb8c663]:
>  {{socket_send()}} resumes each retry after the last byte sent and reports a 
> timeout if its retries run out before all data is sent. {{TSocket:write()}} 
> raises a {{TTransportException}} when the send fails, as {{TSocket:read()}} 
> does for a failed receive.
> Reported by Sylwester Lachiewicz.
> _Drafted with AI assistance (Claude Opus 5); reviewed and posted by Jens 
> Geyer._



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to