Bug: Migration step 06 fails on incomplete stamp metadata, causing total data loss
I maintainer di solito rispondono entro 2 giorni
@gacevicljubisa ci sta già lavorando.
Dal 22/9/2025.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
Summary
Migration step 06 can fail during upgrade to 2.6.0+ when any chunk lacks complete postage stamp metadata, leaving the database in an inconsistent state where all chunks become unreachable despite remaining in storage.
Expected Behavior
- Migration should handle missing or incomplete stamp metadata gracefully
- Failed migration should not leave database in broken state
- Users should be warned about potential data issues before migration runs
- Rollback mechanism should exist for failed migrations
Current Behavior
Migration fails with recommendation to "nuke" the database when:
- Any
BatchRadiusItemV1chunk cannot compute stampHash chunkstamp.LoadWithBatchID()fails for any chunk- Database left with deleted old indexes but no new indexes created
- All data becomes unreachable (both pinned and regular chunks)
Root Cause
Migration step 06 (pkg/storer/migration/step_06.go:112-118) uses atomic approach:
stamp, err := chunkstamp.LoadWithBatchID(idxStore, "reserve", batchRadiusItemV1.Address, batchRadiusItemV1.BatchID)
if err != nil {
return err // MIGRATION FAILS - database inconsistent
}
// Old item already deleted at line 122, new item creation fails
The migration deletes old schema items before ensuring new schema items can be created successfully.
Steps to Reproduce
- Run bee node with incomplete stamp metadata (common in older versions)
- Upgrade to 2.6.0+
- Migration step 06 fails on first chunk with missing stamp data
- Observe error: "It's recommended that the nuke cmd is run to reset the node"
- Verify chunks exist in storage but cannot be retrieved via any API
Impact
- Critical: Total data loss requiring database reset
- Affects: Nodes upgrading from pre-2.6.0 versions
- User experience: Forced to choose between upgrade and data preservation
Proposed Solutions
Option 1: Graceful Degradation
- Skip chunks with missing stamp metadata during migration
- Log warnings for problematic chunks
- Allow migration to complete with partial data
Option 2: Two-Phase Migration
- Phase 1: Validate all chunks can be migrated successfully
- Phase 2: Only proceed with atomic migration if Phase 1 succeeds
- Provide clear error reporting on validation failures
Option 3: Stamp Reconstruction
- Attempt to reconstruct missing stamp metadata from available data
- Use chunk content and batch information to rebuild stamps
- Fall back to graceful degradation if reconstruction fails
Required Changes
- Modify
pkg/storer/migration/step_06.gomigration logic - Add pre-migration validation checks
- Improve error handling and rollback mechanisms
- Update migration failure messaging with recovery options
- Add telemetry to track migration success rates
Additional Context
This issue has caused recurring data loss during bee upgrades, particularly affecting nodes with customer data where database reset is not acceptable. The current "nuke database" recommendation is inadequate for production deployments.
Related Issues
- Pin eviction protection issue (chunks lost due to eviction) #5215
- Migration should coordinate with pinning system to prioritize preserving pinned data
- Lingua principale
- Go
- Stelle
- 1.5k
- Fork
- 390
- Merge medio
- 2g 12h
- PR unite (30g)
- 19
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 ethersphere/bee
-
Chequebook deployment uses a fixed 175,000 gas limit; it needs about 630,000 under Glamsterdam (live on Sepolia since 2026-10-06)Forse già presa @sbackend123 l’ha presa 5 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
ethersphere/bee#5650 · 1 assegnatario ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
ethersphere/bee#5660 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
ethersphere/bee#5659 ·
I maintainer di solito rispondono entro 2 giorni
-
seen
Difficoltà 4/5 3-5 giorni Idoneità per principianti 40/100
ethersphere/bee#5648 ·
I maintainer di solito rispondono entro 2 giorni
-
pusher: chunksWorker deadlocks on a deferred chunk that fails IdentityAddress (send on nil op.Err), halting all push-syncForse già presa @sbackend123 l’ha presa 7 giorni fa. Apertaseen
Difficoltà 3/5 1-2 giorni Idoneità per principianti 75/100
ethersphere/bee#5641 · 1 assegnatario ·
I maintainer di solito rispondono entro 2 giorni
Tutte le issue di ethersphere/bee
Issue simili
-
Action Required: Fix Renovate ConfigurationForse già presa @thompson-tomo l’ha presa oggi. Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 78/100
open-telemetry/opentelemetry-collector#16170 ·
I maintainer di solito rispondono entro 1 giorno
-
automation awf compiler specifications
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
state:triage-needed
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 80/100
puppe1990/amarra-cais#342 ·
I maintainer di solito rispondono entro 1 giorno
-
replay: a run cancelled during environment setup is logged as an ERROR (Instrument drops the cancellation)Forse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno