[C++][FS]Core dump when s3fs allow_delayed_open is on.
- Dominant language
- C++
- Stars
- 17.1k
- Forks
- 4.3k
- Avg merge
- 3d 13h
- Merged PRs (30d)
- 88
Description
### Describe the bug, including details regarding any error messages, version, and platform.
C++ build with **DEBUG** mode.
```
std::string test_data(11 * 1024 * 1024, 'A'); // 11MB which bigger than kMultiPartUploadThresholdSize(10 MB)
ARROW_ASSIGN_OR_RAISE(auto arrowfs, S3FileSystem::Make(...)); // with allow_delayed_open=true
auto write_status = output_stream->Write(test_data.data()); // <--- got core dump here
```
Core
```
...
frame #7: 0x0000000119029565 arrow::util::ArrowLog::~ArrowLog(this=0x00007ff7bfefb410) at logging.cc:253:23
frame #8: 0x0000000112fd0591 arrow::fs::ObjectOutputStream::CreateMultipartUpload(this=0x000061300000f018) at s3fs.cc:1652:5
frame #9: 0x000000011301ceb7 arrow::fs::ObjectOutputStream::UploadPart(this=0x000061300000f018, data=0x0000000108001800, nbytes=10485760, owned_buffer=nullptr) at s3fs.cc:2057:7
frame #10: 0x000000011301bff4 arrow::fs::ObjectOutputStream::DoWrite(this=0x000061300000f018, data=0x0000000108001800, nbytes=11534336, owned_buffer=nullptr) at s3fs.cc:1864:7
frame #11: 0x00000001130194aa arrow::fs::ObjectOutputStream::Write(this=0x000061300000f018, data=0x0000000108001800, nbytes=11534336) at s3fs.cc:1828:75
frame #12: 0x0000000118e862c6 arrow::io::Writable::Write(this=0x000061300000f018, data="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"...) at interfaces.cc:199:10
...
```
In function `ShouldBeMultipartUpload()`. The `pos_` is 0, because nothing written, `allow_delayed_open_` is true, `DCHECK` won't be success in this case.
### Component(s)
C++
Contributor guide
Assessment
This issue has not been assessed yet.