Random cursor on empty tiered table loops forever

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Fixed
    • Priority: Minor - P4
    • WT10.0.1, 4.4.7, 5.0.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • None
    • None
    • None

      The random cursor implementation for tiered cursors is quite simple.  It picks a tier at random and picks a random element from it.  If that tier is empty it tries again.  The problem (as the code below shows) is that if all the tiers are empty it will never stop trying.

          for (;;) {
              __curtiered_random_tier(session, curtiered, &c);
              /*
               * This call to next_random on the tier can potentially end in WT_NOTFOUND if the tier we
               * picked is empty. We want to retry in that case.
               */
              WT_ERR_NOTFOUND_OK(__wt_curfile_next_random(c), true);
              if (ret == WT_NOTFOUND)
                  continue;
      

            Assignee:
            Keith Smith
            Reporter:
            Keith Smith
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: