Cncli lederlog - db not fully synced

cncli sync … running at one terminal. shows “100.00% synced”
in another terminal
cncli status … returns status ok
cncli leaderlog …ledger-set current
returns status: “error”, errorMessage : db not fully synced followed by system time xxxxxxxx and tip_time: xxxxxxxxx

Db not fully sync

Am i missing somethink ? Any ideas ?

Hi!

have you defined the database path with --db flag? if you have not defined the db folder in sync command - cncli sync --host 192.168.4.3 -p 3001 - then it is the current folder where you executed the cncli, for example:

cncli leaderlog --pool-id <pool_id> --pool-vrf-skey vrf.skey --byron-genesis mainnet-byron-genesis.json --shelley-genesis mainnet-shelley-genesis.json --ledger-state ledger-state.json --db /home/user/git/cncli/cncli.db

btw, it is better to modify the title of the topic by adding the tool name which produced the error, like: “cncli lederlog - db not fully synced”

2 Likes

Hi! Thank you for you suggestion, it was very helpful

1 Like

FWIW, I’m having this exact problem, and it’s gotten a lot worse lately. I’m running cncli on a host with 4 CPU cores (not doing anything else) and 24 GB of memory. The correct db path is specified in the cncli leaderlog command, yet I keep getting the “not fully synced” error.

My workaround is to run cncli leaderlog in one screen session, while running cncli sync in another, over and over again, until cncli leaderlog is done.

It seems to me like the underlying problem is that the cncli leaderlog command is taking too long, causing the freshly synced db to age out?

Hi!

Have you tried put the sync process into background?

Yes, that’s what I’m doing. Sorry if that wasn’t clear. I’m running sync in one process (in the background) at the same time as I’m running leaderlog in another.

That’s the workaround I came up with.

Maybe I should just run a sync from crontab every 5 minutes or so.

so - on one terminal you started the sync process - and on another terminal the leaderlog process…
That is not a workaround… That is how it should be run…
so the sync process should run during the leaderlog execution…

but your issue is when you use only 1 terminal and first you put the sync process into the background and then executing the leaderlog? - this method is the same (2 parallel process execution) - should work as well…

I see. That’s my misunderstanding, then. I thought from the docs that I was supposed to run sync first, then leaderlog.

No worries, and thanks for clearing that up.