Skip to content

panic in provide system near deque.(*Deque[...]).PushBack #11047

@lidel

Description

@lidel

Checklist

Installation method

built from source

Version

0.39.0-dev-ae8667296 (`master` branch)

Config

defaults + `SweepEnabled=true`

Description

I was running smoke-test with latest master (ae86672) where I started pinning bafybeiaysi4s6lnjev27ln5icwm6tueaw2vdykrtjkwiphwekaywqhcjze (/ipns/en.wikipedia-on-ipfs.org/, ~350GiB, >20M CIDs) and in the morning I've found node dead:

2025-11-02T08:13:17.029+0100    INFO    dht/provider    provider/provider.go:1003       sent provider records to peers in 5.462364831s, errors 13/42
panic: runtime error: index out of range [16] with length 16

goroutine 283 [running]:
github.com/gammazero/deque.(*Deque[...]).PushBack(0x3f64c47abc, {0x3ede1c7050?, 0x23, 0x30})
        github.com/gammazero/[email protected]/deque.go:66 +0xf0
github.com/ipfs/go-dsqueue.(*DSQueue).worker(0x3f64c40150, {0x239f7d8, 0x3f64c037c0}, 0x4000, 0x0?, 0xdf8475800)
        github.com/ipfs/[email protected]/dsqueue.go:305 +0x854
created by github.com/ipfs/go-dsqueue.New in goroutine 1

After restarting daemon and restarting pinning it crashed again:

[..]
2025-11-02T15:13:53.155+0100    DEBUG   autoconf        autoconf/fetch.go:118   GetCached: returning cached config
Daemon is ready
[..]
2025-11-02T15:16:35.354+0100    INFO    dht/provider    provider/provider.go:1003       sent provider records to peers in 5.020575289s, errors 13/33
panic: runtime error: index out of range [128] with length 128

goroutine 270 [running]:
github.com/gammazero/deque.(*Deque[...]).PushBack(0x3f4d68dabc, {0x3ee6ab7ec0?, 0x23, 0x30})
        github.com/gammazero/[email protected]/deque.go:66 +0xf0
github.com/ipfs/go-dsqueue.(*DSQueue).worker(0x3f4cbd4af0, {0x239f7d8, 0x3f4cbd3130}, 0x4000, 0x0?, 0xdf8475800)
        github.com/ipfs/[email protected]/dsqueue.go:305 +0x854
created by github.com/ipfs/go-dsqueue.New in goroutine 1
        github.com/ipfs/[email protected]/dsqueue.go:69 +0x378

After restarting and NOT resuming pinning, the node runs fine and does not crash, which suggests the problem is in code paths related to providing newly retrieved blocks.

I did third test and restarted and resumed pinning and it seemed to work fine, but panic occurred again after ~49min.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3Low: Not priority right nowkind/bugA bug in existing code (including security flaws)need/verificationThis issue needs verification

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions