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: testing/wip-pdonnell-testing-20240430.123648-reef-debug~255^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=a3b19e8b53cbc0ee8daa96bd2bc786ec8aaea52f;p=ceph-ci.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 97432d1186b..b5de1936b6d 100644 --- a/src/messages/MOSDOp.h +++ b/src/messages/MOSDOp.h @@ -178,7 +178,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),