filecoin-project / filecoin-project/boost
boost Crash : retrievalmarket_impl dtutils/dtutils.go:194 attempting to configure data store: persistence option alreayd registered
- Dominant language
- Go
- Stars
- 121
- Forks
- 79
- Avg merge
- 10d 14h
- Merged PRs (30d)
- 1
Description
### Checklist
- [X] This is **not** a question or a support request. If you have any boost related questions, please ask in the [discussion forum](https://github.com/filecoin-project/boost/discussions).
- [X] This is **not** a new feature or enhancement request. If it is, please open a [new idea discussion](https://github.com/filecoin-project/boost/discussions/new?category=ideas) instead. New feature and enhancement requests would be entertained by the boost team after a thorough discussion only.
- [X] I **have** searched on the [issue tracker](https://github.com/filecoin-project/boost/issues) and the [discussion forum](https://github.com/filecoin-project/boost/discussions), and there is no existing related issue or discussion.
- [X] I am running the [`Latest release`](https://github.com/filecoin-project/boost/releases), or the most recent RC(release canadiate) for the upcoming release or the dev branch(master), or have an issue updating to any of these.
- [X] I did not make any code changes to boost.
### Boost component
- [X] boost daemon - storage providers
- [ ] boost client
- [ ] boost UI
- [ ] boost data-transfer
- [ ] boost index-provider
- [ ] Other
### Boost Version
```text
boostd version 1.5.1-rc2+git.2f476dc
```
### Describe the Bug
Boost crash
### Logging Information
```text
2023-02-01T05:56:57.830+0100 DEBUG dagstore dagstore@v0.5.5/dagstore_async.go:87 acquire: successful; returning accessor {"shard": "baga6ea4seaqkjglpv6l5npzcmev5myeec6xagbopfzb47yuowrfkgzuslsc4qay"}
2023-02-01T05:56:57.850+0100 DEBUG dagstore dagstore/wrapper.go:249successfully loaded blockstore for piece CID baga6ea4seaqkjglpv6l5npzcmev5myeec6xagbopfzb47yuowrfkgzuslsc4qay
2023-02-01T05:57:03.303+0100 INFO boost-storage-deal logs/log.go:40 current sealing state {"id": "0e71a312-419a-4eb0-98d5-2340f2fcfc70", "state": "CommitWait"}
2023-02-01T05:57:15.838+0100 ERROR retrievalmarket_impl dtutils/dtutils.go:194 attempting to configure data store: persistence option alreayd registered
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x20 pc=0x1caae3d]
goroutine 1347495535 [running]:
github.com/filecoin-project/go-statemachine/fsm.eventProcessor.Generate({{0x440b990, 0x3b2c8a0}, {0x3bbcbb6, 0x6}, 0xc0004639b0, 0xc0004639e0}, {0x43f1aa0, 0xc000052078}, {0x3756c60, 0x5f307f0}, ...)
/opt/lotus/go/pkg/mod/github.com/filecoin-project/go-statemachine@v1.0.2/fsm/eventprocessor.go:113 +0x47d
github.com/filecoin-project/go-statemachine/fsm.(*stateGroup).Send(0xc0001c7b20, {0x3a0dc40, 0xc23fe105d0}, {0x3756c60?, 0x5f307f0?}, {0xc052df5940?, 0xc23fe105d0?, 0xc0709132c0?})
/opt/lotus/go/pkg/mod/github.com/filecoin-project/go-statemachine@v1.0.2/fsm/fsm_group.go:35 +0x67
github.com/filecoin-project/go-ds-versioning/pkg/fsm.(*migratedFsm).Send(0xc000d054a0, {0x3a0dc40, 0xc23fe105d0}, {0x3756c60, 0x5f307f0}, {0xc052df5940, 0x1, 0x1})
/opt/lotus/go/pkg/mod/github.com/filecoin-project/go-ds-versioning@v0.1.1/pkg/fsm/fsm.go:57 +0xa2
github.com/filecoin-project/go-data-transfer/channels.(*Channels).send(0xc019911c80, {{0xc4c5c53cb0, 0x26}, {0xc000fc2d80, 0x26}, 0x173f95c74baa62b7}, 0x0?, {0xc052df5940, 0x1, 0x1})
/opt/lotus/go/pkg/mod/github.com/filecoin-project/go-data-transfer@v1.15.3/channels/channels.go:396 +0x275
github.com/filecoin-project/go-data-transfer/channels.(*Channels).Error(...)
/opt/lotus/go/pkg/mod/github.com/filecoin-project/go-data-transfer@v1.15.3/channels/channels.go:330
github.com/filecoin-project/go-data-transfer/impl.(*manager).OnChannelCompleted(0xc013920120, {{0xc4c5c53cb0, 0x26}, {0xc000fc2d80, 0x26}, 0x173f95c74baa62b7}, {0x0?, 0x0?})
/opt/lotus/go/pkg/mod/github.com/filecoin-project/go-data-transfer@v1.15.3/impl/events.go:311 +0x8ef
github.com/filecoin-project/go-data-transfer/transport/graphsync.(*Transport).gsCompletedResponseListener(0xc01990e780, {0xc1452644e0, 0x26}, {0x43fa9d0?, 0xc258c40a00?}, 0x14)
/opt/lotus/go/pkg/mod/github.com/filecoin-project/go-data-transfer@v1.15.3/transport/graphsync/graphsync.go:700 +0x270
github.com/ipfs/go-graphsync/listeners.completedResponseDispatcher({0x39858e0?, 0xc026dedad0?}, {0x3837220?, 0xc0002a8570?})
/opt/lotus/go/pkg/mod/github.com/ipfs/go-graphsync@v0.13.1/listeners/listeners.go:24 +0xc3
github.com/hannahhoward/go-pubsub.(*PubSub).Publish(0xc0199118c0, {0x39858e0, 0xc026dedad0})
/opt/lotus/go/pkg/mod/github.com/hannahhoward/go-pubsub@v0.0.0-20200423002714-8d62886cc36e/pubsub.go:76 +0x12d
github.com/ipfs/go-graphsync/listeners.(*CompletedResponseListeners).NotifyCompletedListeners(0xc006a985c0, {0xc1452644e0?, 0xc0f242d110?}, {0x43fa9d0?, 0xc258c40a00?}, 0x43f47b0?)
/opt/lotus/go/pkg/mod/github.com/ipfs/go-graphsync@v0.13.1/listeners/listeners.go:40 +0x85
github.com/ipfs/go-graphsync/responsemanager.(*subscriber).OnNext(0xc108233550, {0xc0cf6d1c48?, 0x5f30860?}, {0x3985ca0?, 0xc077cc4ed0?})
/opt/lotus/go/pkg/mod/github.com/ipfs/go-graphsync@v0.13.1/responsemanager/subscriber.go:50 +0x3e3
github.com/ipfs/go-graphsync/notifications.(*subscriberRegistry).send(...)
/opt/lotus/go/pkg/mod/github.com/ipfs/go-graphsync@v0.13.1/notifications/publisher.go:175
github.com/ipfs/go-graphsync/notifications.(*publisher).start(0xc3e393c600?)
/opt/lotus/go/pkg/mod/github.com/ipfs/go-graphsync@v0.13.1/notifications/publisher.go:141 +0x772
created by github.com/ipfs/go-graphsync/notifications.(*publisher).Startup
/opt/lotus/go/pkg/mod/github.com/ipfs/go-graphsync@v0.13.1/notifications/publisher.go:46 +0x56
```
```
### Repo Steps
1. Run '...'
2. Do '...'
3. See error '...'
...
Contributor guide
Research direction
Start at dtutils/dtutils.go:194 and trace the retrievalmarket_impl call path shown in the panic, especially the data-transfer channel completion flow. Reproduce the crash using the reported Boost version and available storage-provider setup. Done means the persistence-registration error no longer leads to the nil-pointer panic, with coverage for the failure path if the relevant tests can be located.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- backend, distributed-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100