-
Type: Bug
-
Resolution: Fixed
-
Priority: Critical - P2
-
Affects Version/s: None
-
Component/s: Spec Comp
-
None
-
Fully Compatible
will.shulman shared a sporadic exception on getMore commands issued by the Ruby driver in the #ruby Slack channel earlier today:
2019-10-22T08:30:59.786-0700 I ACCESS [conn145582] TypeMismatch: Field 'getMore' must be of type long in: { getMore: 2105132016...
The cursor ID happened to be smaller than INT32_MAX and the driver encoded it as a 32-bit integer type instead of 64-bit, which triggered some strict validation error on the server side. The find/getMore/killCursors spec does state that those commands use 64-bit integers for cursor IDs, so this would appear to just be an instance of the Ruby driver not fully complying with that spec.
- depends on
-
RUBY-1989 Expose int32 and int64 values
- Closed
-
RUBY-1990 Allow Int32/Int64 objects to be constructed from other objects of the same type
- Closed
- is related to
-
RUBY-1987 No command monitoring events for getMore on 2.6 server
- Closed
-
RUBY-1988 Ensure cursor IDs are always encoded as 64-bit integers in BSON when using killCursors
- Closed
-
RUBY-2059 Dependency on bson 4.6 forces driver 2.10.3 to require Ruby 2.3+/JRuby 9.2+
- Closed
-
PHPC-587 CursorId should serialize to BSON as 64-bit integer
- Closed
- links to