[CXX-2638] ConnectionId returned in heartbeats may be int64 Created: 18/Jan/23  Updated: 27/Oct/23  Resolved: 26/Apr/23

Status: Closed
Project: C++ Driver
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Unknown
Reporter: PM Bot Assignee: Kevin Albertson
Resolution: Works as Designed Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Gantt End to End
has to be finished together with CXX-2311 Add server connectionId to command mo... Backlog
Issue split
split from DRIVERS-2503 ConnectionId returned in heartbeats m... Implementing
Related
is related to CDRIVER-4557 ConnectionId returned in heartbeats m... Closed
Upstream Changes Summary:

DRIVERS-2503:
The connectionId in the hello (or legacy hello) response can be an int32, double, or int64. Many drivers assume an int32, which may result in connectionId truncation or connection failure. Drivers should ensure that the server's connectionId (and the client connectionId for consistency) is expressed as a numeric type capable of holding an int64.

NOTE: If the client and server connectionId fields are part of the driver's public API, you may have to add new int64 connectionId fields and deprecate the existing int32 fields. On the next major version bump, the deprecated int32 fields should be removed.


 Description   

This ticket was split from DRIVERS-2503, please see that ticket for a detailed description.



 Comments   
Comment by Kevin Albertson [ 26/Apr/23 ]

Bug is fixed in the C driver.

The only relevant change to the C++ driver is:

NOTE: If the client and server connectionId fields are part of the driver's public API, you may have to add new int64 connectionId fields and deprecate the existing int32 fields.

The C++ driver does not have public API for the server connectionId. Noted in CXX-2311 that when public API for the server connectionId is added, it must be an int64.

Comment by Kevin Albertson [ 26/Apr/23 ]

vgrippa@gmail.com the connectionId parsing is handled by the C driver. The bug is fixed in CDRIVER-4502 (to handle int32) and CDRIVER-4593 (to handle double). Upgrading the C driver to 1.23.3 is expected to resolve this issue for the C++ driver.

Comment by Vinicius Grippa [ 20/Mar/23 ]

Do we have more information on this? Why the issue raises only 3.7.0, but it works with 3.6.0?

Generated at Wed Feb 07 22:06:33 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.