disagg: force final checkpoint even if no changes if 'create' flag is on the connection (test_stat06.py)

    • Type: Bug
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Checkpoints
    • Storage Engines, Storage Engines - Persistence
    • None
    • None

      If a Python test immediately closes the connection and then reopens it, it gets an error:

      [pid:6802]: Traceback (most recent call last):
        File "/home/dda/wt/git/wt-15262-python-tests-stability-triage/test/suite/wttest.py", line 243, in _callTestMethod
          method()
        File "/home/dda/wt/git/wt-15262-python-tests-stability-triage/test/suite/test_stat06.py", line 51, in test_stats_off
          self.conn = self.wiredtiger_open(None, "statistics=(none),statistics_log=(json)")
        File "/home/dda/wt/git/wt-15262-python-tests-stability-triage/test/suite/wttest.py", line 356, in wiredtiger_open
          conn = wiredtiger.wiredtiger_open(home, config)
        File "/home/dda/wt/git/wt-15262-python-tests-stability-triage/test/suite/wthooks.py", line 202, in <lambda>
          f = lambda *args: hooked_function(wiredtiger, orig_func, hook_info_name, *args)
        File "/home/dda/wt/git/wt-15262-python-tests-stability-triage/test/suite/wthooks.py", line 125, in hooked_function
          ret = call_func(*args)
        File "/home/dda/wt/git/wt-15262-python-tests-stability-triage/test/suite/hook_disagg.py", line 393, in <lambda>
          wiredtiger_open_replace(orig_wiredtiger_open, homedir, config))
        File "/home/dda/wt/git/wt-15262-python-tests-stability-triage/test/suite/hook_disagg.py", line 158, in wiredtiger_open_replace
          result = orig_wiredtiger_open(homedir, config)
      _wiredtiger.WiredTigerError: WT_NOTFOUND: item not found
      

      Presumably this is because the checkpoint has no content, so WT will not create it. This is normally a good policy, but if the create flag was on in the wiredtiger_open call, WT should always create the checkpoint on close, even if no content.

      test_stat06.py shows this behavior: WT-15262 is inserting a workaround, so you'll need to remove the FIXME workaround to see the error. After doing that, run $ wt-testsuite --hook disagg -v 2 stat06 to see the above error.

            Assignee:
            [DO NOT USE] Backlog - Storage Engines Team
            Reporter:
            Donald Anderson
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: