Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-40737

Use Date_t() as default wallTime value in OpTimeAndWallTimes

    XMLWordPrintable

    Details

    • Type: Task
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 4.3.1, 4.2.0-rc1
    • Component/s: Replication
    • Labels:
      None
    • Backwards Compatibility:
      Fully Compatible
    • Backport Requested:
      v4.2, v4.0, v3.6
    • Sprint:
      Execution Team 2019-06-17

      Description

      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.

        Attachments

          Issue Links

            Activity

              People

              • Votes:
                0 Vote for this issue
                Watchers:
                7 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: