test_key_provider_disagg02 cannot detect whether the key rotation crash points fire

XMLWordPrintableJSON

    • Storage Engines, Storage Engines - Persistence
    • 160.53
    • SE Persistence backlog
    • None

      Issue Summary

      test_key_provider_disagg02 nominally covers the three key rotation checkpoint crash points (before_key_rotation, during_key_rotation, after_key_rotation), but it cannot detect whether any of them fire. Replacing all three trigger comparisons in src/conn/conn_layered_page_log.c with a comparison that never matches leaves the test passing 6/6.

      Context

      Two reasons, both in the test:
      * The subprocess exit status is discarded: [ignore_result, new_home_dir] = self.run_subprocess_function(...).
      * run_subprocess_function is called without a scenario, so the child runs the whole scenario list, crashes in the first one, and no other crash point is ever reached. All six parent scenarios end up exercising pull/before_key_rotation.

      The only post-crash check, validate_turtle_page, asserts the turtle's newest entry references the main KEK page at the expected version, which also holds for a cleanly shut down database.

      Proposed Solution
      * Assert the subprocess was killed, reusing the portable assert_crashed helper from test_checkpoint_crash01 ([WT-18392]): -SIGKILL on POSIX, merely non-zero on Windows, since __wt_debug_crash kills the process on POSIX and aborts on Windows.
      * Pass scenario=self.scenario_number to run_subprocess_function so each scenario exercises its own crash point.

      No outcome assertion is added for these three points: __wt_disagg_put_crypt_helper is called both after the metadata sync and from inside __checkpoint_tree before the commit, so they have no single position relative to the checkpoint transaction commit.

      Definition of Done
      * test_key_provider_disagg02 passes 6/6 unmodified.
      * Neutralising all three crash points fails all six scenarios.
      * Neutralising only after_key_rotation fails exactly the two after_key_rotation scenarios.

            Assignee:
            Etienne Petrel
            Reporter:
            Etienne Petrel
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: