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

Fuzzer does not tolerate failures during multiplanning in $expr

    • Type: Icon: Bug Bug
    • Resolution: Won't Fix
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Labels:
      None
    • ALL
    • QE 2021-11-29, QE 2021-12-13, QE 2021-12-27, QE 2022-01-10, QE 2022-01-24
    • 15

      Occasionally, during multiplanning, a $expr will fail nondeterministically during execution of the candidate plans. In the classic engine, we used ExprMatchExpressionMatchesReturnsFalseOnException as a failpoint to deal with these types of errors. However, since SBE cannot easily simulate a try/catch, we decided in SERVER-56152 to instead relax the fuzzers to handle these types of errors.

      In agg_compare_results.js, we relax the fuzzers by checking if both sides used SBE, and if there was a failure in a $expr, we ignore it. However, the way we check if both sides used SBE is to examine the explain output. In some cases, such as BF-23057, the failure happens before the explain output has a chance to be generated. Therefore, it is not caught that both sides are using SBE, and the failure is not ignored by the fuzzer.

      SERVER-60848, currently in-progress, will add logging and easier ways to check if SBE was used in a particular query. I propose that, rather than examining the explain output to check if both sides used SBE, we simply modify the check to access this information more directly, presumably checking a value that will be set/created in SERVER-60848.

      However, there has been a lot of discussion surrounding this BF, and I am open to discussion and alternative approaches to this ticket.

            Assignee:
            jennifer.peshansky@mongodb.com Jennifer Peshansky (Inactive)
            Reporter:
            jennifer.peshansky@mongodb.com Jennifer Peshansky (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: