Bug #64291
openIncorrect OSD transaction id type, flipping on Windows
0%
Description
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.
```
2024-02-01T13:43:28.420+0000 24 15 client.23819.objecter _send_op 2147492334 to 4.e on osd.2
2024-02-01T13:31:07.044+0000 24 1 -- 13.13.13.10:0/1810840372 --> [v2:13.13.13.13:6818/861966396,v1:13.13.13.13:6819/861966396] -- osd_op(unknown.0.0:18446744071562076507 4.e
...
2024-02-01T13:31:07.044+0000 d 7 client.23819.objecter handle_osd_op_reply 18446744071562076507 ondisk ... stray
```
Updated by Ilya Dryomov 3 months ago
- Status changed from New to Fix Under Review
- Pull request ID set to 55413
Updated by Ilya Dryomov 3 months ago
- Status changed from Fix Under Review to Pending Backport
Updated by Backport Bot 3 months ago
- Copied to Backport #64293: quincy: Incorrect OSD transaction id type, flipping on Windows added
Updated by Backport Bot 3 months ago
- Copied to Backport #64294: reef: Incorrect OSD transaction id type, flipping on Windows added