ssb: Chasing some failed blob stores. Bumping some sqlite limits seems to have actually helped?
All checks were successful
Build Tilde Friends / Build-All (push) Successful in 33m30s

This commit is contained in:
Cory McWilliams 2025-04-19 21:40:15 -04:00
parent 5423cbd628
commit f36620927b
2 changed files with 7 additions and 7 deletions

View File

@ -718,12 +718,12 @@ $(SQLITE_OBJS): CFLAGS += \
-DSQLITE_MAX_COMPOUND_SELECT=300 \ -DSQLITE_MAX_COMPOUND_SELECT=300 \
-DSQLITE_MAX_EXPR_DEPTH=40 \ -DSQLITE_MAX_EXPR_DEPTH=40 \
-DSQLITE_MAX_FUNCTION_ARG=8 \ -DSQLITE_MAX_FUNCTION_ARG=8 \
-DSQLITE_MAX_LENGTH=5242880 \ -DSQLITE_MAX_LENGTH=10485760 \
-DSQLITE_MAX_LIKE_PATTERN_LENGTH=50 \ -DSQLITE_MAX_LIKE_PATTERN_LENGTH=50 \
-DSQLITE_MAX_SQL_LENGTH=100000 \ -DSQLITE_MAX_SQL_LENGTH=100000 \
-DSQLITE_MAX_TRIGGER_DEPTH=10 \ -DSQLITE_MAX_TRIGGER_DEPTH=10 \
-DSQLITE_MAX_VARIABLE_NUMBER=100 \ -DSQLITE_MAX_VARIABLE_NUMBER=100 \
-DSQLITE_MAX_VDBE_OP=25000 \ -DSQLITE_MAX_VDBE_OP=50000 \
-DSQLITE_OMIT_DEPRECATED \ -DSQLITE_OMIT_DEPRECATED \
-DSQLITE_OMIT_DESERIALIZE \ -DSQLITE_OMIT_DESERIALIZE \
-DSQLITE_OMIT_LOAD_EXTENSION \ -DSQLITE_OMIT_LOAD_EXTENSION \

View File

@ -287,7 +287,7 @@ void tf_ssb_db_init(tf_ssb_t* ssb)
tf_printf("Populating messages_refs...\n"); tf_printf("Populating messages_refs...\n");
_tf_ssb_db_exec(db, _tf_ssb_db_exec(db,
"INSERT INTO messages_refs(message, ref) " "INSERT INTO messages_refs(message, ref) "
"SELECT messages.id, j.value FROM messages, json_tree(messages.content) as j WHERE " "SELECT messages.id, j.value FROM messages, json_tree(messages.content) AS j WHERE "
"j.value LIKE '&%.sha256' OR " "j.value LIKE '&%.sha256' OR "
"j.value LIKE '%%%.sha256' OR " "j.value LIKE '%%%.sha256' OR "
"j.value LIKE '@%.ed25519' " "j.value LIKE '@%.ed25519' "
@ -300,7 +300,7 @@ void tf_ssb_db_init(tf_ssb_t* ssb)
_tf_ssb_db_exec(db, _tf_ssb_db_exec(db,
"CREATE TRIGGER IF NOT EXISTS messages_ai_refs AFTER INSERT ON messages BEGIN " "CREATE TRIGGER IF NOT EXISTS messages_ai_refs AFTER INSERT ON messages BEGIN "
"INSERT INTO messages_refs(message, ref) " "INSERT INTO messages_refs(message, ref) "
"SELECT DISTINCT new.id, j.value FROM json_tree(new.content) as j WHERE " "SELECT DISTINCT new.id, j.value FROM json_tree(new.content) AS j WHERE "
"j.value LIKE '&%.sha256' OR " "j.value LIKE '&%.sha256' OR "
"j.value LIKE '%%%.sha256' OR " "j.value LIKE '%%%.sha256' OR "
"j.value LIKE '@%.ed25519' " "j.value LIKE '@%.ed25519' "
@ -325,7 +325,7 @@ void tf_ssb_db_init(tf_ssb_t* ssb)
tf_printf("Populating blobs_refs...\n"); tf_printf("Populating blobs_refs...\n");
_tf_ssb_db_exec(db, _tf_ssb_db_exec(db,
"INSERT INTO blobs_refs(blob, ref) " "INSERT INTO blobs_refs(blob, ref) "
"SELECT blobs.id, j.value FROM blobs, json_tree(blobs.content) as j WHERE " "SELECT blobs.id, j.value FROM blobs, json_tree(blobs.content) AS j WHERE "
"json_valid(blobs.content) AND j.value LIKE '&%.sha256' " "json_valid(blobs.content) AND j.value LIKE '&%.sha256' "
"ON CONFLICT DO NOTHING"); "ON CONFLICT DO NOTHING");
_tf_ssb_db_exec(db, "COMMIT TRANSACTION"); _tf_ssb_db_exec(db, "COMMIT TRANSACTION");
@ -335,7 +335,7 @@ void tf_ssb_db_init(tf_ssb_t* ssb)
_tf_ssb_db_exec(db, _tf_ssb_db_exec(db,
"CREATE TRIGGER IF NOT EXISTS blobs_ai_refs AFTER INSERT ON blobs BEGIN " "CREATE TRIGGER IF NOT EXISTS blobs_ai_refs AFTER INSERT ON blobs BEGIN "
"INSERT INTO blobs_refs(blob, ref) " "INSERT INTO blobs_refs(blob, ref) "
"SELECT DISTINCT new.id, j.value FROM json_tree(new.content) as j WHERE " "SELECT DISTINCT new.id, j.value FROM json_tree(new.content) AS j WHERE "
"json_valid(new.content) AND j.value LIKE '&%.sha256' " "json_valid(new.content) AND j.value LIKE '&%.sha256' "
"ON CONFLICT DO NOTHING; END"); "ON CONFLICT DO NOTHING; END");
_tf_ssb_db_exec(db, "DROP TRIGGER IF EXISTS blobs_ad_refs"); _tf_ssb_db_exec(db, "DROP TRIGGER IF EXISTS blobs_ad_refs");
@ -950,7 +950,7 @@ bool tf_ssb_db_blob_store(tf_ssb_t* ssb, const uint8_t* blob, size_t size, char*
result = r == SQLITE_DONE; result = r == SQLITE_DONE;
if (!result) if (!result)
{ {
tf_printf("Blob store failed: %s.\n", sqlite3_errmsg(db)); tf_printf("Blob store failed (%s: %zd): %s / %s.\n", id, size, sqlite3_errstr(r), sqlite3_errmsg(db));
} }
rows = sqlite3_changes(db); rows = sqlite3_changes(db);
} }