Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

bug: zero max_rows_per_file panics, zero V1 max_rows_per_group writes nothing

Open Beginner friendly
#10,130 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 2 days

@LuciferYang is already working on this.

Since Oct 18, 2026.

  • #10136 by @LuciferYang — open

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
72/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
python, rust
Domain
backend, databases

Research direction

Start in chunker.rs at the break_stream and chunk_stream paths named in the issue, then trace how Dataset::write and FragmentCreateBuilder::write pass row limits for V1 and V2. Check the existing compaction validation for a precedent. Done means zero limits are rejected clearly by both APIs instead of panicking or reporting a successful empty write; add coverage for the described cases.

Written by the indexing model from the issue text.

Description

bug

Dataset::write and FragmentCreateBuilder accept a zero row limit that the writers cannot honor:

lance.write_dataset(tbl, "/tmp/t", max_rows_per_file=0)
# panics in break_stream (chunker.rs:209), a remainder by zero

lance.write_dataset(tbl, "/tmp/t", data_storage_version="legacy", max_rows_per_group=0)
# returns, and the dataset has 0 rows

With the default V2 format, max_rows_per_file=0 reaches break_stream(data, 0), which takes % max_rows on the first batch. With the legacy format, max_rows_per_group=0 reaches chunk_stream(data, 0), which yields no batches, so the write commits an empty dataset and reports success. max_rows_per_file=0 does the same there, because the write folds it into the group size with min. FragmentCreateBuilder::write panics the same way on V2, where its file limit is min(128 * 1024, max_rows_per_file), and on V1 a zero group size reports Input data was empty.

The only existing check is for compaction's file_row_counts path.

Dominant language
Rust
Stars
7.2k
Forks
882
Avg merge
4d 2h
Merged PRs (30d)
241

Getting set up

Open in Codespaces

Starts the project's dev container in your browser, under your own GitHub account.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from lance-format/lance

All issues in lance-format/lance

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.