Skip to content

dumpCaplinState -> ParseFileName fail to parse Caplin files #18253

@AskAlexSharov

Description

@AskAlexSharov

v3.3.1

[WARN] [12-09|17:49:12.381] Could not to increment beacon state, trying again later app=caplin err="idx: index panic: at=v1.1-013050-013100-ValidatorEffectiveBalance.seg, runtime error: invalid memory address or nil pointer dereference, [type.go:540 panic.go:783 panic.go:262 signal_unix.go:925 type.go:556 caplin_state_snapshots.go:661 caplin_state_snapshots.go:648 caplin_state_snapshots.go:689 state_antiquary.go:556 state_antiquary.go:91 asm_amd64.s:1693]" slot=13206430

it's because: dumpCaplinState calling f, _, ok := snaptype.ParseFileName(snapDir, segName) with parameter segName=v1.1-013050-013100-Eth1DataVotes.seg
but parsing func has logic:

dirPart, fileName := filepath.Split(fileName)
caplin := false
if dirPart == "caplin/" {
    caplin = true
}

as a result ParseFileName returning ok=false


this looks very fragile - because user likely don't expect that fileName must include dir:

  • also: windows using another path separator
  • also: i'm not sure any other files are expected to have dir in fileName (probably not)

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions