[BUG] - The cardano-node crashes when an immutable file is missing
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 55/100
Direzione di ricerca
Inizia dal percorso dell’indice del database immutabile mostrato nel trace, in particolare Ouroboros/Consensus/Storage/ImmutableDB/Impl/Index/Primary.hs, Cache.hs e Index.hs, e segui readOffsets quando un file immutabile non è disponibile. Riproduci il problema rendendo inaccessibile un file sotto db/immutable mentre viene richiesto un blocco più vecchio. Il lavoro è completato quando il nodo segnala un errore e continua a funzionare invece di andare in crash o chiudere due volte il database.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
External
Area
Other
Summary
When a peer requests an older block, and the immutable file containing that block is not accessible on the local file system, the node crashes.
Steps to reproduce
Steps to reproduce the behavior:
- Move the immutable files from their location
- Wait until such an event occurs (can take a few days)
- See the node crashing and the messages in the logs
Expected behavior
The node should return an error message and continue running.
System info (please complete the following information):
- OS Name: Ubuntu]
- OS Version: e.g. 24.04
- Node version: cardano-node 10.5.3 - linux-aarch64 - ghc-9.6 git rev 6c034ec038d8d276a3595e10e2d38643f09bd1f2
- CLI version: cardano-cli 10.11.0.0 - linux-aarch64 - ghc-9.6 git rev 6c034ec038d8d276a3595e10e2d38643f09bd1f2
The OS, node and cli versions are irrelevant here.
Screenshots and attachments
This is a log file snippet with such a crash:
[relay5:cardano.node.DiffusionInitializationTracer:Critical:7] [2025-12-08 23:38:08.03 UTC] DiffusionErrored ExceptionInHandler 185.19Type = FsResourceDoesNotExist, fsErrorPath = /home/cardano/cardano-node/db/immutable/02258.primary, fsErrorString = "No such file or drom HasCallStack):
prettyCallStack, called at src/System/FS/API/Types.hs:393:23 in fs-api-0.3.0.0-b19f75df8cf0ad4f95eb6d965255bf9a46056a0239d2d1b004e8d
ioToFsError, called at src/System/FS/IO.hs:113:41 in fs-api-0.3.0.0-b19f75df8cf0ad4f95eb6d965255bf9a46056a0239d2d1b004e8d30ef8eba9b2
handleError, called at src/System/FS/IO.hs:109:23 in fs-api-0.3.0.0-b19f75df8cf0ad4f95eb6d965255bf9a46056a0239d2d1b004e8d30ef8eba9b2
rethrowFsError, called at src/System/FS/IO.hs:50:21 in fs-api-0.3.0.0-b19f75df8cf0ad4f95eb6d965255bf9a46056a0239d2d1b004e8d30ef8eba9
hOpen, called at src/System/FS/API.hs:216:43 in fs-api-0.3.0.0-b19f75df8cf0ad4f95eb6d965255bf9a46056a0239d2d1b004e8d30ef8eba9b2:Syst
withFile, called at src/ouroboros-consensus/Ouroboros/Consensus/Storage/ImmutableDB/Impl/Index/Primary.hs:293:5 in ouroboros-consens6eb7c29c52:Ouroboros.Consensus.Storage.ImmutableDB.Impl.Index.Primary
load, called at src/ouroboros-consensus/Ouroboros/Consensus/Storage/ImmutableDB/Impl/Index/Cache.hs:477:21 in ouroboros-consensus-0.29c52:Ouroboros.Consensus.Storage.ImmutableDB.Impl.Index.Cache
readPrimaryIndex, called at src/ouroboros-consensus/Ouroboros/Consensus/Storage/ImmutableDB/Impl/Index/Cache.hs:556:35 in ouroboros-1d659a66eb7c29c52:Ouroboros.Consensus.Storage.ImmutableDB.Impl.Index.Cache
loadPastChunkInfo, called at src/ouroboros-consensus/Ouroboros/Consensus/Storage/ImmutableDB/Impl/Index/Cache.hs:602:26 in ouroborosf1d659a66eb7c29c52:Ouroboros.Consensus.Storage.ImmutableDB.Impl.Index.Cache
getChunkInfo, called at src/ouroboros-consensus/Ouroboros/Consensus/Storage/ImmutableDB/Impl/Index/Cache.hs:671:11 in ouroboros-cons9a66eb7c29c52:Ouroboros.Consensus.Storage.ImmutableDB.Impl.Index.Cache
readOffsets, called at src/ouroboros-consensus/Ouroboros/Consensus/Storage/ImmutableDB/Impl/Index.hs:199:31 in ouroboros-consensus-0c29c52:Ouroboros.Consensus.Storage.ImmutableDB.Impl.Index
readOffsets, called at src/ouroboros-consensus/Ouroboros/Consensus/Storage/ImmutableDB/Impl/Index.hs:53:5 in ouroboros-consensus-0.29c52:Ouroboros.Consensus.Storage.ImmutableDB.Impl.Index
a use of `readOffsets', called at src/ouroboros-consensus/Ouroboros/Consensus/Storage/ImmutableDB/Impl/Index.hs:130:5 in ouroboros-cd659a66eb7c29c52:Ouroboros.Consensus.Storage.ImmutableDB.Impl.Index, fsLimitation = False}))
[relay5:cardano.node.ChainDB:Error:7] [2025-12-08 23:38:08.03 UTC] Immutable DB was already closed. Double closing.
[relay5:cardano.node.ChainDB:Info:7] [2025-12-08 23:38:08.03 UTC] Closed Volatile DB.
[relay5:cardano.node.ChainDB:Info:7] [2025-12-08 23:38:08.03 UTC] Closed db with immutable tip at 5b9fba6656bf5c1f6423d0db814415879118c0ad04086b1a8722e25c240855e033a16603f61d2a2d42265c5fd at slot 173670795
Additional context
The error occurs when the files in the db/immutable folder are not available (for example, another partition is mounted on it - maybe a slower and cheaper storage type, and the partition is not mounted at the time when this error occurs).
- Lingua principale
- Haskell
- Stelle
- 3.2k
- Fork
- 762
- Merge medio
- 1g 23h
- PR unite (30g)
- 21
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di IntersectMBO/cardano-node
-
Stale
Difficoltà 1/5 1-3 ore Idoneità per principianti 75/100
IntersectMBO/cardano-node#6597 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Stale
Difficoltà 1/5 1-3 ore Idoneità per principianti 72/100
IntersectMBO/cardano-node#6578 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
IntersectMBO/cardano-node#6522 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
needs triage
Difficoltà 4/5 3-5 giorni Idoneità per principianti 44/100
IntersectMBO/cardano-node#6734 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
increase in memory usageAperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 28/100
IntersectMBO/cardano-node#6718 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di IntersectMBO/cardano-node
Issue simili
-
Update duckdb-simple to 0.3Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
haskell-beam/beam#828 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
simplex-chat/simplex-chat#7755 ·
I maintainer di solito rispondono entro 1 giorno
-
bug core-libs
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
-
content good first issue
Difficoltà 2/5 Meno di un'ora Idoneità per principianti 88/100
StudentSuite/awesome-skills-plugins-for-students#312 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 96/100
alunduil/collection-json.hs#415 ·
I maintainer di solito rispondono entro 1 giorno