apache / apache/arrow

[C++] write_dataset with delete_matching occasionally fails with "Path does not exist"

Open
#30,776 0 comments 0 reactions 0 assignees View on GitHub
Component: C++ Type: bug
Dominant language
C++
Stars
17.1k
Forks
4.3k
Avg merge
3d 13h
Merged PRs (30d)
88

Description

The reproducer in ARROW-15265, once the bug there is fixed, now occasionally fails with this:
```

Traceback (most recent call last):
  File "/home/lidavidm/Code/upstream/arrow-15265/python/test.py", line 37, in
    ds.write_dataset(
  File "/home/lidavidm/Code/upstream/arrow-15265/python/pyarrow/dataset.py", line 931, in write_dataset
    _filesystemdataset_write(
  File "pyarrow/_dataset.pyx", line 2658, in pyarrow._dataset._filesystemdataset_write
    check_status(CFileSystemDataset.Write(c_options, c_scanner))
  File "pyarrow/error.pxi", line 114, in pyarrow.lib.check_status
    raise IOError(message)
OSError: Path does not exist 'my-bucket/test8.parquet/col1=c'
```
The path is different each time it fails (i.e. it's not deterministic). This is relatively rare (2 out of 100 runs when I checked just now)

**Reporter**: [David Li](https://issues.apache.org/jira/browse/ARROW-15285) / @lidavidm
#### Related issues:
- [[C++][Python][Dataset] write_dataset with delete_matching hangs when the number of partitions is too large](https://github.com/apache/arrow/issues/30758) (relates to)

**Note**: *This issue was originally created as [ARROW-15285](https://issues.apache.org/jira/browse/ARROW-15285). Please see the [migration documentation](https://github.com/apache/arrow/issues/14542) for further details.*

Contributor guide

Open the contributing guide

Research direction

Start with the reproducer in ARROW-15265 and follow the call chain through python/test.py, pyarrow/dataset.py, pyarrow/_dataset.pyx, and CFileSystemDataset.Write. Re-run it repeatedly after ARROW-15265 is fixed, then investigate the intermittent missing partition path. Done means the reproducer no longer reports a missing path during repeated runs.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, python
Domain
data-engineering
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.