Change minutes to uint64 to avoid overflow in __wt_gen_drain

XMLWordPrintableJSON

    • Storage - Ra 2022-04-18
    • 1

      (CID 122000) There's potential for an integer overflow bug when calculating the time diff when waiting for generation drain. The comparison time_diff_ms > minutes * WT_MINUTE * WT_THOUSAND has a uint64 on the left, and a uint32 on the right. So, the RHS will overflow if minutes is ever greater than 71582. That's 49 straight days of generation drain - if that ever happens, there are likely other problems, but we should still fix it. There's a WT_ASSERT that minutes < 4, but we won't see that in a release build.

      We can fix this by casting anything on the RHS to a uint64.

              Assignee:
              Clarisse Cheah
              Reporter:
              Will Korteland
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: