Bug: Server receive_thread doesn't propagate file_receive / chunk receive errors #167
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Description
In
src/shared/multiprocessing.c, the serverreceive_thread()does not propagate failures fromfile_receive()orreceive_chunk_enqueue(). Whenfile_receive()returnsNULL, the thread logs an error but continues to read the next status, which desynchronizes the protocol. Whenreceive_chunk_enqueue()returnsNULL(chunk receive failed), it simply returns without settingreceiver_done, which can cause the writer thread to hang forever waiting on an empty queue.Location
src/shared/multiprocessing.c:84-96—receive_chunk_enqueue()returns without signaling on error.src/shared/multiprocessing.c:121-127—file_receive()failure is logged but not propagated.Suggested fix
PipelineContextReceiver.condition_not_emptyso the writer thread can exit.thrd_errorfromreceive_thread()on failure.Severity
Medium
Category
bug, quality
This issue was automatically generated by the issue-creator agent.