SiaFoundation / hostd

The next-generation of Sia storage providing software. More performant. More stable. Support for larger nodes.
https://sia.tech/software/hostd
MIT License
40 stars 11 forks source link

hostd - crashing #291

Closed codekow closed 8 months ago

codekow commented 9 months ago

Current Behavior

INFO hostd {"version": "v1.0.1", "network": "Mainnet", "commit": "61f84e6", "buildDate": "2024-01-10T18:03:34Z"} DEBUG sqlite database initialized {"sqliteVersion": "3.42.0", "schemaVersion": 24, "path": "hostd.db"} panic: runtime error: slice bounds out of range [::4599988899] with length 2147483647

goroutine 16 [running]: gitlab.com/NebulousLabs/bolt.unsafeByteSlice(...) gitlab.com/NebulousLabs/bolt@v1.4.4/unsafe.go:27 gitlab.com/NebulousLabs/bolt.(leafPageElement).key(...) gitlab.com/NebulousLabs/bolt@v1.4.4/page.go:126 gitlab.com/NebulousLabs/bolt.(Cursor).nsearch.func2(0xc000516780?) gitlab.com/NebulousLabs/bolt@v1.4.4/cursor.go:328 +0x92 sort.Search(0x7fcfba21d108?, 0xc0005e1eb0) sort/search.go:65 +0x46 gitlab.com/NebulousLabs/bolt.(Cursor).nsearch(0xc000715980?, {0xc0005698a0?, 0x20?, 0x810659?}) gitlab.com/NebulousLabs/bolt@v1.4.4/cursor.go:327 +0xf4 gitlab.com/NebulousLabs/bolt.(Cursor).search(0xc0005e24e8, {0xc0005698a0, 0x20, 0x20}, 0xc00050d980?) gitlab.com/NebulousLabs/bolt@v1.4.4/cursor.go:257 +0x1ee gitlab.com/NebulousLabs/bolt.(Cursor).searchPage(0xc0005e24e8, {0xc0005698a0, 0x20, 0x20}, 0x289?) gitlab.com/NebulousLabs/bolt@v1.4.4/cursor.go:308 +0x15a gitlab.com/NebulousLabs/bolt.(Cursor).search(0xc0005e24e8, {0xc0005698a0, 0x20, 0x20}, 0x0?) gitlab.com/NebulousLabs/bolt@v1.4.4/cursor.go:265 +0x1c5 gitlab.com/NebulousLabs/bolt.(Cursor).searchPage(0xc0005e24e8, {0xc0005698a0, 0x20, 0x20}, 0xfffe20?) gitlab.com/NebulousLabs/bolt@v1.4.4/cursor.go:308 +0x15a gitlab.com/NebulousLabs/bolt.(Cursor).search(0xc0005e24e8, {0xc0005698a0, 0x20, 0x20}, 0xf9aee0?) gitlab.com/NebulousLabs/bolt@v1.4.4/cursor.go:265 +0x1c5 gitlab.com/NebulousLabs/bolt.(Cursor).searchNode(0xc0005e24e8, {0xc0005698a0, 0x20, 0x20}, 0xc0006143f0) gitlab.com/NebulousLabs/bolt@v1.4.4/cursor.go:285 +0xef gitlab.com/NebulousLabs/bolt.(Cursor).search(0xc0005e24e8, {0xc0005698a0, 0x20, 0x20}, 0xf9aee0?) gitlab.com/NebulousLabs/bolt@v1.4.4/cursor.go:262 +0x194 gitlab.com/NebulousLabs/bolt.(Cursor).searchNode(0xc0005e24e8, {0xc0005698a0, 0x20, 0x20}, 0xc000614070) gitlab.com/NebulousLabs/bolt@v1.4.4/cursor.go:285 +0xef gitlab.com/NebulousLabs/bolt.(Cursor).search(0xc0005e24e8, {0xc0005698a0, 0x20, 0x20}, 0xc00050d980?) gitlab.com/NebulousLabs/bolt@v1.4.4/cursor.go:262 +0x194 gitlab.com/NebulousLabs/bolt.(Cursor).seek(0xc0005e24e8, {0xc0005698a0?, 0xc0005e2508?, 0x80c790?}) gitlab.com/NebulousLabs/bolt@v1.4.4/cursor.go:159 +0x45 gitlab.com/NebulousLabs/bolt.(Bucket).Put(0xc000758478?, {0xc0005698a0, 0x20, 0x15?}, {0x22640e0, 0x0, 0x0}) gitlab.com/NebulousLabs/bolt@v1.4.4/bucket.go:295 +0xcd go.sia.tech/siad/modules/transactionpool.(TransactionPool).putTransaction(0x1?, 0xc000758460, {0x5e, 0x99, 0x5d, 0x1a, 0x6c, 0x53, 0xe7, 0xea, ...}) go.sia.tech/siad@v1.5.10-0.20230228235644-3059c0b930ca/modules/transactionpool/database.go:163 +0x85 go.sia.tech/siad/modules/transactionpool.(TransactionPool).ProcessConsensusChange(_, {{0x9f, 0x9b, 0xd1, 0xf0, 0x9b, 0x95, 0x2, 0xe8, 0x42, ...}, ...}) go.sia.tech/siad@v1.5.10-0.20230228235644-3059c0b930ca/modules/transactionpool/update.go:234 +0x2052 go.sia.tech/siad/modules/consensus.(ConsensusSet).managedInitializeSubscribe.func2(0xc0000a8460?) go.sia.tech/siad@v1.5.10-0.20230228235644-3059c0b930ca/modules/consensus/subscribe.go:212 +0x262 gitlab.com/NebulousLabs/bolt.(DB).View(0xe802959bf0d19b9f?, 0xc00061fc88) gitlab.com/NebulousLabs/bolt@v1.4.4/db.go:730 +0x72 go.sia.tech/siad/modules/consensus.(ConsensusSet).managedInitializeSubscribe(0xc00057e2c0, {0x1b16040?, 0xc000058000}, {0x76, 0xf0, 0xc6, 0x6, 0x54, 0x47, 0xb1, ...}, ...) go.sia.tech/siad@v1.5.10-0.20230228235644-3059c0b930ca/modules/consensus/subscribe.go:200 +0x428 go.sia.tech/siad/modules/consensus.(ConsensusSet).ConsensusSetSubscribe(0xc00057e2c0, {0x1b16040?, 0xc000058000}, {0x76, 0xf0, 0xc6, 0x6, 0x54, 0x47, 0xb1, ...}, ...) go.sia.tech/siad@v1.5.10-0.20230228235644-3059c0b930ca/modules/consensus/subscribe.go:256 +0x145 go.sia.tech/siad/modules/transactionpool.(TransactionPool).initPersist.func4() go.sia.tech/siad@v1.5.10-0.20230228235644-3059c0b930ca/modules/transactionpool/persist.go:183 +0x7f created by go.sia.tech/siad/modules/transactionpool.(TransactionPool).initPersist in goroutine 1 go.sia.tech/siad@v1.5.10-0.20230228235644-3059c0b930ca/modules/transactionpool/persist.go:182 +0xcff

Expected Behavior

Normal Starting

Steps to Reproduce

run hostd

hostd.yaml

directory: .
recoveryPhrase: *****
autoOpenWebUI: true
http:
    address: :9980
    password: *****
consensus:
    gatewayAddress: :9981
    bootstrap: true
#    peers: []
rhp2:
    address: :9982
rhp3:
    tcp: :9983
    websocket: :9984
log:
    level: debug
    stdout:
        enabled: true
        format: human
        enableANSI: true
    file:
        enabled: true
        format: json

Version

v1.0.1

What operating system did the problem occur on (e.g. Ubuntu 22.04, macOS 12.0, Windows 11)?

Ubuntu 22.04 / Docker 3.4.4

Anything else?

If I delete transactionpool.db before starting hostd I get the following log and then the process appears to hang

INFO    hostd   {"version": "v1.0.1", "network": "Mainnet", "commit": "61f84e6", "buildDate": "2024-01-10T18:03:34Z"}
DEBUG   sqlite  database initialized    {"sqliteVersion": "3.42.0", "schemaVersion": 24, "path": "hostd.db"}
DEBUG   wallet  processing consensus change     {"applied": 1, "reverted": 0}
DEBUG   discovered address      {"addr": "localhost:9982"}
ERROR   wallet  failed to get matured block     {"height": 5647, "maturedHeight": 5503}
DEBUG   volumes loaded volume   {"id": 3, "path": "/storage/sia-01.dat"}
n8maninger commented 8 months ago

This is a known issue with siad consensus. We'll be fixing it when migrating to core. The node should unlock when it finishes scanning in a few hours.