libsql / sqld

LibSQL with extended capabilities like HTTP protocol, replication, and more.
https://libsql.org
903 stars 38 forks source link

bug: bottomless restore fails with the very first generation #766

Open avinassh opened 1 year ago

avinassh commented 1 year ago

If the DB is never snapshotted (and only WAL frames are uploaded to S3), then while restoring integrity_check fails.

To reproduce: create a new database and insert a couple of rows. Try verify from bottomless, it fails with following message:

Verification failed: *** in database main ***
Tree 2 page 2: btreeInitPage() returns error code 11

I restored the db and inspected the db from shell, got the same error. All the data seems to be present though:

sqlite> PRAGMA integrity_check;
*** in database main ***
Page 2: btreeInitPage() returns error code 11
Error: stepping, database disk image is malformed (11)

The very first generation does not contain db.gz. I manually uploaded this from data.sqld and restore worked.

internal slack discussion - https://chiselstrike.slack.com/archives/C05V2DRSS3U/p1697097311578049