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

system.profile not written for slow bulk writes done in a transaction

    • Type: Icon: Bug Bug
    • Resolution: Cannot Reproduce
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Labels:
    • ALL
    • Query 2020-03-23, Query 2020-04-06, Query 2020-04-20, Query 2020-05-04

      I assume this is similar to SERVER-21772. This occurs for me when running the Linkbench benchmark with the 3.11 Java driver. I am unable to reproduce this via JS in Mongo shell.

      The transaction has ~1000 documents in a bulk write operation. When I disable the use of transactions system.profile gets some inserts. When transactions are enabled it does not get any. The bulk writes are update with upsert=true and ordered=false. 

      I have begun instrumenting code and when transactions are disabled then finishCurOp is called and system.profile gets inserts. But I don't see calls to finishCurOp for the bulk writes when done within a transaction.

      The other odd thing is that CurOp::_dbprofile == 0 when transactions are used so shouldDBProfile returns false, which explains when system.profile doesn't get inserts. So I assume that a call to enter_inlock is missing, similar to SERVER-21772. Or this occurs because capped collections can't be inserted within a transaction. I am just guessing as I am new to the code.

            Assignee:
            arun.banala@mongodb.com Arun Banala
            Reporter:
            mark.callaghan@mongodb.com Mark Callaghan (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated:
              Resolved: