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

Extend assertAggFuzzerResultDivergenceIsAcceptable() to cover any pipeline that has $group stage and spilling is not disabled

    • Type: Icon: Task Task
    • Resolution: Won't Fix
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: 7.0.5
    • Component/s: None
    • None
    • QE 2023-12-11, QE 2023-12-25
    • 200

      $group doesn't guarantee the order in which records inside the group are being aggregated, this can cause divergencies in resulting values if involved types are not  associative over given aggregation function (e.g. when summing up floating point numbers)

      Generally we should not expect even the same $group query over the same data set to generate the same result. 

      Release and debug variants of group stage use different spilling strategy that causes some multiversion tests to generate results with slightly different roundoff errors. 

      There is a function in src/fuzzers/agg/agg_compare_results.js called assertAggFuzzerResultDivergenceIsAcceptable() that covers exactly this scenario. It should be extended to cover the case when $group stage is allowed to spill to disk.

            Assignee:
            serhii.lysenko@mongodb.com Serhii Lysenko
            Reporter:
            serhii.lysenko@mongodb.com Serhii Lysenko
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: