apache / apache/iotdb

[Bug] docker compose down关闭之后无法启动,必须手动移除tsfile

Abierto
#18,203 3 comentarios 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
Java
Estrellas
6.4k
Forks
1.2k
Merge medio
1 d 23 h
PR fusionados (30 d)
115

Descripción

### 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!

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Reproduzca el fallo con el despliegue de Docker Compose de la versión 2.0.8 y, a continuación, inspeccione la recuperación durante el inicio alrededor de UnsealedTsFileRecoverPerformer y los archivos afectados en iotdb/data/datanode/data. Compare los registros del apagado y del reinicio, especialmente los casos en los que un .tsfile no tiene su archivo .resource. Se considera terminado cuando el servicio se reinicia correctamente después de un apagado normal sin mover archivos manualmente, y existe cobertura para el caso reproducido si se identifica el área de pruebas relevante.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
docker, java
Área
databases
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Tranquilo
Claridad
Bastante claro
Aptitud para principiantes
48/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.