[Bug] docker compose down关闭之后无法启动,必须手动移除tsfile
- Lingua principale
- Java
- Stelle
- 6.4k
- Fork
- 1.2k
- Merge medio
- 1g 23h
- PR unite (30g)
- 115
Descrizione
### 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!
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Riprodurre il problema con il deployment Docker Compose della versione 2.0.8, quindi esaminare il ripristino all’avvio relativo a UnsealedTsFileRecoverPerformer e i file interessati in iotdb/data/datanode/data. Confrontare i log di arresto e riavvio, soprattutto nei casi in cui un .tsfile non ha il relativo file .resource. Il lavoro è completato quando il servizio si riavvia correttamente dopo un arresto normale senza spostare manualmente i file, con una copertura del caso riprodotto se viene identificata l’area di test pertinente.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- docker, java
- Ambito
- databases
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Tranquilla
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 48/100