1

This slot is present in other 3 nodes I'm running and has no errors. Only this node is giving errors for this block and 1000s of other blocks.

The ledger tool shows the slot is present.

solana@us-west1-20:/data/solana-ledger$ solana-ledger-tool -l . slot 221650090
[2023-10-06T09:52:51.244003441Z INFO  solana_ledger_tool] solana-ledger-tool 1.16.14 (src:c932953e; feat:4033350765, client:SolanaLabs)
[2023-10-06T09:52:51.244098510Z INFO  solana_ledger::blockstore] Maximum open file descriptors: 1000000
[2023-10-06T09:52:51.244102404Z INFO  solana_ledger::blockstore] Opening database at "/data/solana-ledger/rocksdb"
[2023-10-06T09:52:51.248727142Z INFO  solana_ledger::blockstore_db] Opening Rocks with secondary (read only) access at: "/data/solana-ledger/rocksdb/solana-secondary"
[2023-10-06T09:52:51.248738214Z INFO  solana_ledger::blockstore_db] This secondary access could temporarily degrade other accesses, such as by solana-validator
[2023-10-06T09:54:48.626724520Z INFO  solana_ledger::blockstore_db] Rocks's automatic compactions are disabled due to Secondary access
[2023-10-06T09:54:48.627296091Z INFO  solana_ledger::blockstore] "/data/solana-ledger/rocksdb" open took 117.4s

Slot 221650090

[2023-10-06T09:54:49.712119400Z INFO  solana_ledger_tool] ledger tool took 118.5s

But when I query, I get the following error.

solana@us-west1-20:/data/solana-ledger$ curl -X POST -H "Content-Type: application/json" -d '{"jsonrpc": "2.0","id":1,"method":"getBlock","params":[221650090, {"maxSupportedTransactionVersion": 0}]}' localhost:8899
{"jsonrpc":"2.0","error":{"code":-32007,"message":"Slot 221650090 was skipped, or missing due to ledger jump to recent snapshot"},"id":1}
solana@us-west1-20:/data/solana-ledger$

Anyway to fix?

I tried the repair command for the whole range reported missing in queries.

solana-ledger-tool -l /data/solana-ledger/ repair-roots --before 221675707 --until 221646988

Didn't work. Got,

No missing roots found in range

If I can rewind the chain like geth, that would be great.

debug.setHead(block) 

anway to do that?

2
  • Worth noting that while slot and block are closely related, they are different things. A slot is a period of time where a block may be produced, but it's not guaranteed. Slots that don't produce blocks are skipped-slots. So when the ledger tools reports that a slot exists, it might not mean that it produced a block, just that the ledger contains activity for that slot.
    – Serban
    Commented Oct 9, 2023 at 12:16
  • Forgot to mention that slot contains a block. Other nodes confirms this. Will update the question.
    – Shinto C V
    Commented Oct 9, 2023 at 14:00

1 Answer 1

0

Slot 221650090

That output is not actually showing the slot as present; there would be more output if the slot were present. For example, here is the output from a random slot I picked on my ledger:

$ solana-ledger-tool slot 223505826 --ledger ~/ledger/
...

Slot 223505826
  num_shreds: 659, parent_slot: Some(223505825), next_slots: [223505827], num_entries: 206, is_full: true

Also, you should confirm that the slot itself should be in the ledger by running the bounds subcommand:

$ solana-ledger-tool bounds --ledger ~/ledger/
...

Ledger has data for 291046 slots 223211323 to 223505858
  with 287976 rooted slots from 223211323 to 223505826
  and 32 slots past the last root

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.