-
Type: Task
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: Replication
-
None
-
Fully Compatible
-
v4.2, v4.0, v3.6
-
Execution Team 2019-06-17
Similar to SERVER-40565, replSetUpdatePosition can include Dates that pymongo cannot parse. These can show up in currentOp output and lead to decoding failures as in PYTHON-1822.
See "durableOpTime: { ts: Timestamp(0, 0), t: -1 }, durableWallTime: new Date(-9223372036854775808)"
2019-04-18T22:25:48.747+0000 I NETWORK [conn45] received client metadata from 127.0.0.1:33807 conn45: { driver: { name: "NetworkInterfaceTL", version: "4.1.10-147-g2c8a3592b0" }, os: { type: "Linux", name: "Red Hat Enterprise Linux Server release 6.2 (Santiago)", architecture: "x86_64", version: "Kernel 2.6.32-220.el6.x86_64" } } 2019-04-18T22:25:48.747+0000 I COMMAND [conn45] command admin.$cmd command: isMaster { isMaster: 1, client: { driver: { name: "NetworkInterfaceTL", version: "4.1.10-147-g2c8a3592b0" }, os: { type: "Linux", name: "Red Hat Enterprise Linux Server release 6.2 (Santiago)", architecture: "x86_64", version: "Kernel 2.6.32-220.el6.x86_64" } }, hostInfo: "ip-10-122-17-221:27018", compression: [ "zstd", "zlib", "snappy", "noop" ], internalClient: { minWireVersion: 8, maxWireVersion: 8 }, hangUpOnStepDown: false, saslSupportedMechs: "local.__system", $db: "admin" } numYields:0 reslen:880 locks:{} protocol:op_query 0ms ... 2019-04-18T22:28:18.918+0000 I COMMAND [conn45] command admin.$cmd command: replSetUpdatePosition { replSetUpdatePosition: 1, optimes: [ { durableOpTime: { ts: Timestamp(1555626497, 3017), t: 1 }, durableWallTime: new Date(1555626497804), appliedOpTime: { ts: Timestamp(1555626497, 3018), t: 1 }, appliedWallTime: new Date(1555626497881), memberId: 0, cfgver: 1 }, { durableOpTime: { ts: Timestamp(1555626498, 5072), t: 1 }, durableWallTime: new Date(1555626498915), appliedOpTime: { ts: Timestamp(1555626498, 5072), t: 1 }, appliedWallTime: new Date(1555626498915), memberId: 1, cfgver: 1 }, { durableOpTime: { ts: Timestamp(0, 0), t: -1 }, durableWallTime: new Date(-9223372036854775808), appliedOpTime: { ts: Timestamp(1555626497, 6), t: 1 }, appliedWallTime: new Date(1555626497075), memberId: 2, cfgver: 1 } ], $replData: { term: 1, lastOpCommitted: { ts: Timestamp(1555626498, 5071), t: 1 }, lastCommittedWall: new Date(1555626498899), lastOpVisible: { ts: Timestamp(1555626498, 5071), t: 1 }, configVersion: 1, replicaSetId: ObjectId('5cb8f956c92f6916e5db17a3'), primaryIndex: 0, syncSourceIndex: 0 }, $clusterTime: { clusterTime: Timestamp(1555626498, 5072), signature: { hash: BinData(0, E508C0B96DCD2E0F8319ECF3BF161FB1E1B1FB2C), keyId: 6681364246506242049 } }, $db: "admin" } numYields:0 reslen:396 locks:{} protocol:op_msg 0ms
And "lastOpCommitted: { ts: Timestamp(0, 0), t: -1 }, lastCommittedWall: new Date(-9223372036854775808)"
2019-04-18T22:25:39.637+0000 I COMMAND [conn17] command admin.$cmd command: replSetUpdatePosition { replSetUpdatePosition: 1, optimes: [ { durableOpTime: { ts: Timestamp(1555626326, 1), t: -1 }, durableWallTime: new Date(1555626326893), appliedOpTime: { ts: Timestamp(1555626338, 1), t: 1 }, appliedWallTime: new Date(1555626338907), memberId: 0, cfgver: 1 }, { durableOpTime: { ts: Timestamp(1555626338, 1), t: 1 }, durableWallTime: new Date(1555626338907), appliedOpTime: { ts: Timestamp(1555626338, 1), t: 1 }, appliedWallTime: new Date(1555626338907), memberId: 1, cfgver: 1 } ], $replData: { term: 1, lastOpCommitted: { ts: Timestamp(0, 0), t: -1 }, lastCommittedWall: new Date(-9223372036854775808), lastOpVisible: { ts: Timestamp(0, 0), t: -1 }, configVersion: 1, replicaSetId: ObjectId('5cb8f956c92f6916e5db17a3'), primaryIndex: 0, syncSourceIndex: 0 }, $clusterTime: { clusterTime: Timestamp(1555626339, 1), signature: { hash: BinData(0, 0000000000000000000000000000000000000000), keyId: 0 } }, $db: "admin" } numYields:0 reslen:396 locks:{} protocol:op_msg 0ms
I imagine this could also happen in appliedWallTime too.
- causes
-
PYTHON-1822 Test failure - Database.current_op fails decoding a UTC datetime
- Closed
- is depended on by
-
SERVER-40683 Make wall clock times in replication structures required after 4.2
- Closed
- is related to
-
SERVER-40078 Add wall clock time corresponding to lastCommitted optime to optimes subdocument
- Closed
-
SERVER-40080 Add lastApplied and lastDurable wall clock times to replSetGetStatus optimes subdocument
- Closed
-
SERVER-40353 Add wall clock time corresponding to readConcernMajority OpTime to optimes subdocument
- Closed
- related to
-
SERVER-40565 Omit last applied and last durable wall clock times from replSetGetStatus when associated optimes are null
- Closed
-
SERVER-43465 Remove InvalidBSON try/catch blocks for ReplSetGetStatus wall clock times
- Closed