2020-12-14 15:23:02
trying to move my pool to an another server and after the move i'm getting
`Caused by: org.rocksdb.RocksDBException: block checksum mismatch: expected 1285677076, got 3253001534 in pool/db/1568498.sst offset 0 size 1238107`
i wonder if something happened to the data in transit
Rotonen
2020-12-14 15:24:36
with the amount of old unpaid shares in the DB, i doubt anyone will mine on it anytime soon, especially as there are pools without a fee out there these days, but on general principles i'd like to keep dragging those shares along
Rotonen
2020-12-14 18:39:13
scp is shit, the files actually come out a different size on the other side, oh joy
Rotonen
2020-12-14 18:39:42
wanted to save effort as i have to shuffle things around through a bastion host for now
Rotonen
2020-12-14 18:42:43
actually unrelatedly i already have that on the source side too, oof
Rotonen
2020-12-14 18:42:48
so what can have gone wrong?
Rotonen
2020-12-14 18:43:03
the api still gives the correct share counts out
Rotonen
2020-12-14 18:44:26
I have had scp fail me, but not that spectacularly. rsync usually works well for me.
Fireduck
2020-12-14 18:44:48
but based on that error, something wrong with the db (you can call me captain obvious)
Fireduck
2020-12-14 18:45:13
i just went with piped ssh and tar, that works well - but seems the issue i kept hitting was more about filesystem accounting nuances and a red herring
there's something actually wrong with the db
Rotonen
2020-12-14 18:45:17
yeah, how do i dive in?
Rotonen
2020-12-14 18:45:56
the downside here is that rocks db was selected based on it shitting the bed less often than other filesystem DBs while still being rather fast
Fireduck
2020-12-14 18:46:39
but not often is not never. I should not have used it for the share db, I should have done something more reliable, like atomic file saves of plain protobufs like I did for the wallet files
Fireduck
2020-12-14 18:47:07
the shares are intact, though
Rotonen
2020-12-14 18:47:16
i think it's tripping up on a historical block or something
Rotonen
2020-12-14 18:47:43
and the pool still works, but that one broken thing keeps spamming the log
Rotonen
2020-12-14 18:49:44
ah, if you can give me the full stack trace I can make a patch that resets that list on error
Fireduck
2020-12-14 18:50:39
it concatenates it to a degree, but here's at least a partial
```jouluk. 14, 2020 6:50:15 IP. duckutil.PeriodicThread run
WARNING: Periodic thread exception
java.lang.RuntimeException: org.rocksdb.RocksDBException: block checksum mismatch: expected 1285677076, got 3253001534 in pool/db/1568498.sst offset 0 size 1238107
at snowblossom.lib.db.rocksdb.RocksDBMap.put(RocksDBMap.java:59)
at snowblossom.lib.db.DBMap.put(DBMap.java:19)
at snowblossom.miner.plow.MrPlow.saveState(MrPlow.java:229)
at snowblossom.miner.plow.MrPlow.access$200(MrPlow.java:31)
at snowblossom.miner.plow.MrPlow$PlowLoop.runPass(MrPlow.java:209)
at duckutil.PeriodicThread.run(PeriodicThread.java:30)
Caused by: org.rocksdb.RocksDBException: block checksum mismatch: expected 1285677076, got 3253001534 in pool/db/1568498.sst offset 0 size 1238107
at org.rocksdb.RocksDB.put(Native Method)
at org.rocksdb.RocksDB.put(RocksDB.java:705)
at snowblossom.lib.db.rocksdb.RocksDBMap.put(RocksDBMap.java:55)
... 5 more```
Rotonen
2020-12-14 18:51:23
or is it just that the db is so broken it's effectively read only?
Rotonen
2020-12-14 18:52:31
looks like effectively read only, that line is saving the share state
Fireduck
2020-12-14 18:53:05
seems to have started out of the blue like a couple of weeks ago, at least no one has been using the pool
Rotonen
2020-12-14 18:53:40
I can make a version that saves the share state to a file and uses that rather than rocks
Fireduck
2020-12-14 19:00:40
i have my shares and blocks as json files, so with that i could resume
Rotonen
2020-12-14 21:31:59
as in the list of unpaid shares, which is what matters
Rotonen
2020-12-14 21:32:12
i suppose the full history of the pool is what takes ~350MB
Rotonen
2020-12-14 21:32:24
as the two rpc call returns are pretty tiny in comparison
Rotonen