Skip to content

fix(arrow/ipc): avoid deadlock on compression errors - #1142

Draft
fallintoplace wants to merge 1 commit into
apache:mainfrom
fallintoplace:fix/ipc-compression-deadlock
Draft

fix(arrow/ipc): avoid deadlock on compression errors#1142
fallintoplace wants to merge 1 commit into
apache:mainfrom
fallintoplace:fix/ipc-compression-deadlock

Conversation

@fallintoplace

Copy link
Copy Markdown
Contributor

Rationale for this change

Parallel body compression sent worker errors through an unbuffered channel before the parent waited for the workers. A compressor failure could therefore leave the writer blocked forever, and the producer could continue sending work after the workers had stopped.

What changes are included in this PR?

Buffer the first worker error, make producer sends cancellation-aware, and add a regression test that uses a failing compressor with parallel compression.

Are these changes tested?

  • go test ./arrow/ipc
  • go test -race ./arrow/ipc -run TestRecordEncoderCompressionErrorDoesNotDeadlock

Are there any user-facing changes?

Parallel IPC compression now returns compressor failures instead of hanging.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant