filecoin-project / filecoin-project/boost
Panic(SIGSEV) on attempting to configure data store: persistence option already 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 request. If it is, please file a [feature request](https://github.com/filecoin-project/boost/issues/new?assignees=&labels=need%2Ftriage%2Ckind%2Ffeature&template=feature_request.yml) instead.
- [X] This is **not** an enhancement request. If it is, please file a [improvement suggestion](https://github.com/filecoin-project/boost/issues/new?assignees=&labels=need%2Ftriage%2Ckind%2Fenhancement&template=enhancement.yml) instead.
- [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
boostd version 1.6.0-rc2+git.5daf1d5
```
### Describe the Bug
Boostd stops and panik
### Logging Information
```text
2023-03-22T18:01:02.336+0100 ERROR events events/events_called.go:354 event diff fn failed: unknown actor code bafk2bzaceclejwjtpu2dhw3qbx6ow7b4pmhwa7ocrbbiqwp36sq5yeg6jz2bc
2023-03-22T18:01:14.644+0100 ERROR retrievalmarket_impl dtutils/dtutils.go:194 attempting to configure data store: persistence option already registered
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x20 pc=0x221d37d]
goroutine 719911755 [running]:
github.com/filecoin-project/go-statemachine/fsm.eventProcessor.Generate({{0x4e31428, 0x44c02a0}, {0x4556c05, 0x6}, 0xc018ba24e0, 0xc018ba2510}, {0x4e0dfd8, 0xc000056078}, {0x4020ec0, 0x6e5f550}, ...)
/opt/lotus/go/pkg/mod/github.com/filecoin-project/go-statemachine@v1.0.2/fsm/eventprocessor.go:113 +0x4bd
github.com/filecoin-project/go-statemachine/fsm.(*stateGroup).Send(0xc01c0bc230, {0x434ae80, 0xc0a74403f0}, {0x4020ec0?, 0x6e5f550?}, {0xc096560830?, 0xc0a74403f0?, 0xc017a772c0?})
/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(0xc012b7c9c0, {0x434ae80, 0xc0a74403f0}, {0x4020ec0, 0x6e5f550}, {0xc096560830, 0x1, 0x1})
/opt/lotus/go/pkg/mod/github.com/filecoin-project/go-ds-versioning@v0.1.2/pkg/fsm/fsm.go:57 +0xa2
github.com/filecoin-project/go-data-transfer/channels.(*Channels).send(0xc01295bec0, {{0xc0b325e120, 0x26}, {0xc001932b10, 0x26}, 0x174c64bdeadd6636}, 0x0?, {0xc096560830, 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(0xc0001659e0, {{0xc0b325e120, 0x26}, {0xc001932b10, 0x26}, 0x174c64bdeadd6636}, {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(0xc000d06500, {0xc04ec61830, 0x26}, {0x4e186a0?, 0xc0b30f60f0?}, 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({0x42b2d60?, 0xc092587920?}, {0x414d320?, 0xc0001600b0?})
/opt/lotus/go/pkg/mod/github.com/ipfs/go-graphsync@v0.13.2/listeners/listeners.go:24 +0xc3
github.com/hannahhoward/go-pubsub.(*PubSub).Publish(0xc01295bb00, {0x42b2d60, 0xc092587920})
/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(0xc004c02ef0, {0xc04ec61830?, 0xc025835340?}, {0x4e186a0?, 0xc0b30f60f0?}, 0x4e10e38?)
/opt/lotus/go/pkg/mod/github.com/ipfs/go-graphsync@v0.13.2/listeners/listeners.go:40 +0x85
github.com/ipfs/go-graphsync/responsemanager.(*subscriber).OnNext(0xc08cf42160, {0xc004c07c48?, 0x6e5f5e0?}, {0x42b3120?, 0xc0b4cec300?})
/opt/lotus/go/pkg/mod/github.com/ipfs/go-graphsync@v0.13.2/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.2/notifications/publisher.go:175
github.com/ipfs/go-graphsync/notifications.(*publisher).start(0xc000d2eb30?)
/opt/lotus/go/pkg/mod/github.com/ipfs/go-graphsync@v0.13.2/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.2/notifications/publisher.go:46 +0x56
2023-03-22T19:19:48.456+0100 DEBUG boostd boostd/run.go:54 Checking full node version
2023-03-22T19:19:48.457+0100 DEBUG boostd boostd/run.go:61 Remote full node version {"version": "1.20.0+mainnet+git.33bec58be+api2.3.0"}
2023-03-22T19:19:48.457+0100 DEBUG boostd boostd/run.go:67 Checking full node sync status
```
```
### Repo Steps
1. Run '...'
2. Do '...'
3. See error '...'
...
Contributor guide
Research direction
Start at dtutils/dtutils.go:194, where the persistence-option error is logged, and trace the boostd storage-provider flow into the data-transfer callbacks shown in the stack trace. Reproduce the reported configuration failure using the issue's Boost 1.6.0-rc2 context; done means the persistence-registration failure no longer leads to the reported nil-pointer panic.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100