From 6e6f6ecbb00060aeba5281cf860fc1de7d410447 Mon Sep 17 00:00:00 2001 From: Vitaliy Filippov Date: Sat, 19 Nov 2022 19:28:27 +0300 Subject: [PATCH] Add missing journal space check for big_writes Fixes possible `prefill_single_journal_entry(): Assertion `!journal.sector_info[journal.cur_sector].flush_count' failed` error --- src/blockstore_write.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/blockstore_write.cpp b/src/blockstore_write.cpp index 5ccba102..b948fc4e 100644 --- a/src/blockstore_write.cpp +++ b/src/blockstore_write.cpp @@ -449,6 +449,12 @@ int blockstore_impl_t::continue_write(blockstore_op_t *op) resume_2: // Only for the immediate_commit mode: prepare and submit big_write journal entry { + blockstore_journal_check_t space_check(this); + if (!space_check.check_available(op, 1, + sizeof(journal_entry_big_write) + dsk.clean_entry_bitmap_size, JOURNAL_STABILIZE_RESERVATION)) + { + return 0; + } BS_SUBMIT_CHECK_SQES(1); auto dirty_it = dirty_db.find((obj_ver_id){ .oid = op->oid,