Jens Geyer created THRIFT-6355:
----------------------------------
Summary: 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
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)