Skip to content

Docker patches: goroutine leak fix + root schema repetition config#1

Draft
hcrosse wants to merge 2 commits intomainfrom
docker-patches
Draft

Docker patches: goroutine leak fix + root schema repetition config#1
hcrosse wants to merge 2 commits intomainfrom
docker-patches

Conversation

@hcrosse
Copy link
Copy Markdown
Member

@hcrosse hcrosse commented Mar 30, 2026

Tracking branch for Docker-specific patches on top of upstream apache/iceberg-go.

Patches

  • fix: goroutine leak in positionDeleteRecordsToDataFiles partitioned path
  • feat: make root schema repetition configurable via table properties

Draft PR for tracking ahead/behind against main.

hcrosse added 2 commits March 30, 2026 14:12
Add write.parquet.root-repetition property (required/optional/repeated,
default: required) to control the Parquet root schema element's
repetition type. arrow-go defaults to Repeated, which Snowflake
interprets as one-level list encoding and rejects files with list
columns. Defaulting to Required aligns with the Parquet spec and
matches arrow-rs, pyarrow, and parquet-java behavior.
iter.Pull(args.counter) was called unconditionally, but in the
partitioned path newWriterFactory creates its own iter.Pull and the
original stopCount was never called, leaking one goroutine per write.

Move iter.Pull into the unpartitioned branch where it is actually used.
Add a regression test confirming goroutine count stays stable.
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