cherry-pick fix for extending OSD log

Reported-by: Laurențiu Leahu-Vlăducu <l.leahu-vladucu@proxmox.com>
Suggested-by: Laurențiu Leahu-Vlăducu <l.leahu-vladucu@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This commit is contained in:
Thomas Lamprecht 2025-02-28 14:53:06 +01:00
parent b95a2f1b53
commit 71ce71edd9
2 changed files with 35 additions and 0 deletions

View File

@ -0,0 +1,34 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Pere Diaz Bou <pdiabou@redhat.com>
Date: Fri, 29 Sep 2023 13:17:03 +0200
Subject: [PATCH] os/bluestore: fix _extend_log seq advance
when extending the log, the sequence was left on a bad state because it would first create a transaction to update with the current seq number but leave the "real" transaction with the same sequence number which should be `extend_log_transaction.seq + 1`.
Signed-off-by: Pere Diaz Bou <pdiabou@redhat.com>
(cherry picked from commit 63f0a0df14c9d8e68be61e374438bc75cef45a1f)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
---
src/os/bluestore/BlueFS.cc | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/os/bluestore/BlueFS.cc b/src/os/bluestore/BlueFS.cc
index 1c14cd24d1d..eefdc334967 100644
--- a/src/os/bluestore/BlueFS.cc
+++ b/src/os/bluestore/BlueFS.cc
@@ -3108,12 +3108,13 @@ void BlueFS::_extend_log(uint64_t amount) {
_pad_bl(bl, super.block_size);
log.writer->append(bl);
ceph_assert(allocated_before_extension >= log.writer->get_effective_write_pos());
- log.t.seq = log.seq_live;
// before sync_core we advance the seq
{
std::unique_lock<ceph::mutex> l(dirty.lock);
- _log_advance_seq();
+ dirty.seq_live++;
+ log.seq_live++;
+ log.t.seq++;
}
}

View File

@ -18,3 +18,4 @@
0017-mgr-dashboard-remove-ability-to-create-and-check-TLS.patch
0018-debian-recursively-adjust-permissions-of-var-lib-cep.patch
0019-ceph-crash-change-order-of-client-names.patch
0020-os-bluestore-fix-_extend_log-seq-advance.patch