fix fd leak in GenerateDataFromFile on send error#4577
Conversation
Greptile SummaryThis PR fixes a file-descriptor leak in
Confidence Score: 5/5Safe to merge — targeted resource-cleanup fix with no behavioural side effects on the happy path. The refactor only adds a guaranteed-close guarantee via No files require special attention. Important Files Changed
Sequence DiagramsequenceDiagram
participant Caller
participant send_binary_data
participant closing ctx
participant GenerateDataFromFile
participant Sender
Caller->>send_binary_data: send_binary_data(sender, generator, meta)
send_binary_data->>closing ctx: __enter__(generator)
send_binary_data->>GenerateDataFromFile: data_size()
send_binary_data->>Sender: sendall(BINARY_MARKER)
send_binary_data->>Sender: sendall(header_bytes)
send_binary_data->>Sender: sendall(meta_bytes)
loop until generate() returns empty
send_binary_data->>GenerateDataFromFile: generate()
GenerateDataFromFile-->>send_binary_data: chunk
send_binary_data->>Sender: sendall(chunk)
note over Sender: raises IOError on failure
end
send_binary_data->>Sender: sendall(footer_bytes)
closing ctx->>GenerateDataFromFile: close() [always, even on exception]
GenerateDataFromFile->>GenerateDataFromFile: self.file.close()
send_binary_data-->>Caller: sent_body_size
Reviews (4): Last reviewed commit: "Merge branch 'main' into fix/binary-prot..." | Re-trigger Greptile |
|
if commits are not signed we can not merge them. |
Signed-off-by: cyy <cyyever@outlook.com>
16e0c12 to
e3ff894
Compare
|
@pcnudde Signed it. |
The suggestion is a one-line comment in test_fd_closed_on_body_size_mismatch to explain the gen.size
|
Description
This PR fixes fd leak in GenerateDataFromFile on send error.
Types of changes
./runtest.sh.