Skip to content

Kernel error when vacuuming table #3745

@adamreeve

Description

@adamreeve

Environment

Delta-rs version:

Built from current main branch (commit d148c32b57a5a9f5623cb18bdef16a413ae4b02e) by running make develop in the python directory.

I cannot reproduce this issue with the previous release version (1.1.4)

Binding:

Environment:

  • Cloud provider: NA
  • OS: Fedora Linux 42
  • Other:

Bug

What happened:

Error when calling Table.vacuum:

Traceback (most recent call last):
  File "/home/adam/dev/delta-lake/repro_crash.py", line 24, in <module>
    table.vacuum()
  File "/home/adam/dev/delta-lake/delta-rs/python/deltalake/table.py", line 559, in vacuum
    return self._table.vacuum(
           ^^^^^^^^^^^^^^^^^^^
_internal.DeltaError: Generic error: Kernel error: Generic delta kernel error: Requested field not found in parquet schema, and field is not nullable: type

What you expected to happen:

No crash.

How to reproduce it:

from deltalake import write_deltalake, DeltaTable
import pyarrow as pa


delta_dir = "./table"

data = pa.Table.from_pydict({
    'x': pa.array(list(range(100)), type=pa.int32()),
})
write_deltalake(
        table_or_uri=delta_dir,
        data=data,
        mode='append')

table = DeltaTable(delta_dir)
table.create_checkpoint()

write_deltalake(
        table_or_uri=delta_dir,
        data=data,
        mode='append')

table = DeltaTable(delta_dir)  # No crash if this line is removed
table.vacuum()

More details:

Metadata

Metadata

Assignees

Labels

binding/rustIssues for the Rust cratebugSomething isn't working

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions