Skip to content

fix(layout): normalize list-view children before serialization - #109

Merged
ChristopherWirt merged 1 commit into
developfrom
cwirt/fix-list-view-serialization
Nov 10, 2026
Merged

ChristopherWirt merged 1 commit into
developfrom
cwirt/fix-list-view-serialization

Conversation

@ChristopherWirt

Copy link
Copy Markdown
Collaborator

Summary

Fix the shared Linux musl builder failure on develop and PRs #103, #105, #106, #107, and #108 after the upstream lazy-constructor update.

Changes

Normalize lists rebuilt from list views through the same reset_offsets path as ordinary lists before forwarding their children to layout writers. Rebuilding a sliced list view can now leave a lazy elements slice; a flat child writer cannot serialize that expression. This preserves the existing referenced-element bounds and resolves the slice without forcing unrelated encodings into canonical arrays.

Keep the existing nullable sliced-list-view regression and add the non-nullable case.

CI Failure Analysis

Status

Pre-existing base-branch regression, independent of the individual PR changes. The same failure appears on develop run 42649358621 and every completed failing PR builder inspected (#105–#108).

Failed Jobs

  • Rust tests (linux-musl): test failure in layouts::list::reader::tests::sliced_list_chunks_round_trip::case_4_list_view_chunks.

Relevant Log Output

Error: Array vortex.slice is not registered for serialization

Correlation With PR Changes

The upstream merge makes array slicing lazy. The list-view branch of canonicalize_to_list_parts forwarded a rebuilt list's lazy elements directly, while the ordinary-list branch already normalized them. The Spark PRs do not change this writer; #107 changes separate zone-pruning code.

Recommended Next Step

Merge this shared fix into develop. The same patch is being applied to the affected open PR branches so their new builders include the fix immediately.

Validation

  • Reproduced the exact failing test on unmodified current develop (exit 100, same serialization error).
  • cargo nextest run -p vortex-layout -E 'test(layouts::list::)': all 161 tests passed after the fix, including the original failing case and new non-nullable case.
  • cargo clippy -p vortex-layout --all-targets --all-features -- -D warnings: passed.
  • Pinned nightly Rust formatting and git diff --check: passed.

Local validation ran on macOS; the fresh Linux musl builders will verify the runner-specific job.

Signed-off-by: Christopher Wirt <cwirt@quantcast.com>
@ChristopherWirt
ChristopherWirt merged commit e252d65 into develop Nov 10, 2026
1 check passed
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