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

idempotency tests have oplog visiblity issues

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 4.3.1, 4.2.2
    • Affects Version/s: None
    • Component/s: Replication
    • None
    • Fully Compatible
    • ALL
    • v4.2
    • Repl 2019-09-09, Repl 2019-09-23, Repl 2019-10-07
    • 14

      The MultiApplier reads from the oplog to piece together a multi-document prepared transaction. The code is currently affected by oplog visibility issues, surfaced in an idempotency test. This ticket is to fix those problems.

      Original description:
      For example, this line:
      https://github.com/mongodb/mongo/blob/36aacf391a13eba67648f1cf625fe26515454a70/src/mongo/db/repl/sync_tail_test.cpp#L3072
      Attempts to process a prepare and a commit oplog entry in the same batch. By tweaking timing, I can get that test to fail with this error:

      2019-08-20T14:18:22.223-0400 F  -        [main] Fatal assertion 31145 IncompleteTransactionHistory: oplog no longer contains the complete write history of this transaction, log with opTime { ts: Timestamp(90, 0), t: 1 } cannot be found at src/mongo/db/transaction_history_iterator.cpp 137
      

      There are several tests in sync_tail_test that attempt to do this. It isn't clear to me why the test is currently passing most of the time. I managed to trigger this failure simply by switching the underlying storage engine from emphemeralForTest to wiredTiger.

            Assignee:
            lingzhi.deng@mongodb.com Lingzhi Deng
            Reporter:
            milkie@mongodb.com Eric Milkie
            Votes:
            0 Vote for this issue
            Watchers:
            11 Start watching this issue

              Created:
              Updated:
              Resolved: