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 <lpetrut@cloudbasesolutions.com>
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),