Fix incorrect use of WT_NOTFOUND in __clayered_open_stable()

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Cursors
    • None
    • Storage Engines, Storage Engines - Foundations
    • SE Foundations - 2025-10-24
    • 5

      We are seeing repeated panic's from this code, quite often (always?) no follower nodes, which makes themessage about "could not access stable table on leader" surprising.

      I'm guessing that the code here should use ENOENT, which can be returned by __wt_open_cursor. That would make the panic case specific to when we couldn't open the cursor and we're on a follower.

          ret = __wt_open_cursor(session, stable_uri, &clayered->iface, cfg, &clayered->stable_cursor);
      
          if (ret == ENOENT && !leader) {
              /*
               * This is fine, we may not have seen a checkpoint with this table yet. The open will be
               * deferred.
               */
              ret = 0;
          } else if (ret == WT_NOTFOUND)
              WT_ERR_PANIC(session, WT_PANIC, "Layered table could not access stable table on leader");
          else
              WT_ERR(ret);
      

            Assignee:
            Will Korteland
            Reporter:
            Keith Smith
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated: