From: Lucian Petrut Date: Thu, 1 Feb 2024 14:40:03 +0000 (+0000) Subject: msg: update MOSDOp() to use ceph_tid_t instead of long X-Git-Tag: v17.2.8~484^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=232f65e028a19e9693d5ed238ddcbd74a12627fb;p=ceph.git msg: update MOSDOp() to use ceph_tid_t instead of long The MOSDOp constructor receives the the transaction ID as a long instead of ceph_tid_t. The issue is that "long" uses 32b on Windows instead of 64 bits, so it flips after about 2 billion requests. At that point, the OSD replies are dropped because of transaction ID mismatches. We'll solve the issue by using the correct type for the transaction id, specifically ceph_tid_t. Fixes: https://tracker.ceph.com/issues/64291 Signed-off-by: Lucian Petrut (cherry picked from commit 0bab1e6b690ec4a12e8dc27229c435d64ca0d0be) --- diff --git a/src/messages/MOSDOp.h b/src/messages/MOSDOp.h index 2275c45883229..131efa9a73bdf 100644 --- a/src/messages/MOSDOp.h +++ b/src/messages/MOSDOp.h @@ -174,7 +174,7 @@ public: partial_decode_needed(true), final_decode_needed(true), bdata_encode(false) { } - MOSDOp(int inc, long tid, const hobject_t& ho, spg_t& _pgid, + MOSDOp(int inc, ceph_tid_t tid, const hobject_t& ho, spg_t& _pgid, epoch_t _osdmap_epoch, int _flags, uint64_t feat) : MOSDFastDispatchOp(CEPH_MSG_OSD_OP, HEAD_VERSION, COMPAT_VERSION),