[Bug] docker compose down关闭之后无法启动,必须手动移除tsfile
- Ngôn ngữ chính
- Java
- Star
- 6.4k
- Fork
- 1.2k
- Merge trung bình
- 1 ngày 23 giờ
- Pull request đã merge (30 ngày)
- 115
Mô tả
### Search before asking
- [x] I searched in the [issues](https://github.com/apache/iotdb/issues) and found nothing similar.
### Version
版本2.0.8,docker部署
### Describe the bug and provide the minimal reproduce step
docker compose关闭服务,再启动时直接报错:
Aborting due to java.lang.OutOfMemoryError: Java heap space # # A fatal error has been detected by the Java Runtime Environment: # # Internal Error (debug.cpp:362), pid=7, tid=468 # fatal error: OutOfMemory encountered: Java heap space # # JRE version: OpenJDK Runtime Environment Temurin-17.0.15+6 (17.0.15+6) (build 17.0.15+6) # Java VM: OpenJDK 64-Bit Server VM Temurin-17.0.15+6 (17.0.15+6, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64) # Core dump will be written. Default location: Core dumps may be processed with "/usr/lib/systemd/systemd-coredump %P %u %g %s %t %c %h %d" (or dumping to /iotdb/sbin/core.7) # # An error report file with more information is saved as: # /iotdb/sbin/hs_err_pid7.log 2026-07-14 08:51:04,653 [pool-39-IoTDB-TsFile-Recover-2] INFO o.a.i.d.s.d.w.r.f.UnsealedTsFileRecoverPerformer:291 - The compression ratio of tsfile /iotdb/data/datanode/data/sequence/iot_data/8/2949/1784016833721-8-0-0.tsfile is 0.00, totalMemTableSize: 0, the file size: 3867189
解决方案:按gpt提示,通过以下命令找到缺少resource的tsfile:
```bash
find ./iotdb/data/datanode/data -type f -name '*.tsfile' |
while IFS= read -r file; do
[ -f "${file}.resource" ] || echo "$file"
done | tee /tmp/tsfiles-without-resource.txt
wc -l /tmp/tsfiles-without-resource.txt
```
然后将这几个文件移动走,才能正常启动服务。
### What did you expect to see?
服务关闭之后能够自行正常启动,这是一个基本能力。
### What did you see instead?
服务实现优雅关闭
### Anything else?
_No response_
### Are you willing to submit a PR?
- [ ] I'm willing to submit a PR!
Hướng dẫn đóng góp
Hướng nghiên cứu
Tái hiện lỗi với triển khai Docker Compose phiên bản 2.0.8, sau đó kiểm tra quá trình khôi phục khi khởi động xung quanh UnsealedTsFileRecoverPerformer và các tệp bị ảnh hưởng trong iotdb/data/datanode/data. So sánh log tắt và khởi động lại, đặc biệt là các trường hợp một .tsfile thiếu tệp .resource tương ứng. Được xem là hoàn tất khi dịch vụ khởi động lại thành công sau khi tắt bình thường mà không cần di chuyển tệp thủ công, đồng thời có coverage cho trường hợp đã tái hiện nếu xác định được khu vực kiểm thử liên quan.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- docker, java
- Lĩnh vực
- databases
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Ít trao đổi
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 48/100