[C++] write_dataset with delete_matching occasionally fails with "Path does not exist"
- 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
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