filecoin-project / filecoin-project/boost

boost Crash : retrievalmarket_impl dtutils/dtutils.go:194 attempting to configure data store: persistence option alreayd registered

Open
#1,150 0 comments 0 reactions 0 assignees View on GitHub
kind/bug need/triage
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.