test/format (mode=switch) [Elegant stepdown bugs] The stable btree should not contain inserts prior to draining

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Reconciliation
    • Storage Engines - Foundations
    • 414.079
    • SE Foundations - Q4+ Backlog
    • None

      Context

      This bug was discovered during testing on the dedicated elegant step-down feature branch https://github.com/wiredtiger/wiredtiger/compare/develop...wt-17785-enable-elegant-stepdown-mainine. Currently, step-down restarts for test/format. In this branch, we are replacing the restart with a synchronous, elegant step-down triggered via reconfigure(role=follower). This ticket captures one of the bugs as a result of elegant stepdown.

      Evergreen Task / Link

      https://spruce.mongodb.com/version/6a2fca40a887220007157e50/tasks

      Example task (non-stress variants only): Ubuntu 20.04 ARM64 Non-standalone / data-validation-1
      https://spruce.mongodb.com/task/wiredtiger_ubuntu2004_arm64_nonstandalone_format_stress_test_disagg_switch_data_validation_1_patch_9dd7114d26cbe9226ad97fb12c94a99ea1f8b52f_6a2fca40a887220007157e50_26_06_15_09_48_03

      Logs & Stack Trace

      file:T00002.wt_stable, disagg-drain: [WT_VERB_DEFAULT][ERROR]: __layered_assert_stable_btree_state, 33: WiredTiger assertion failed: 'cbt->ins == ((void *)0)'. The stable btree should not contain inserts prior to draining
      file:T00002.wt_stable, disagg-drain: [WT_VERB_DEFAULT][ERROR]: __wt_abort, 29: aborting WiredTiger library
      
      #3  __layered_assert_stable_btree_state ()           at src/conn/conn_layered_ingest.c:33
      #4  __layered_move_updates ()                        at src/conn/conn_layered_ingest.c:103
      #5  __layered_copy_ingest_table ()                   at src/conn/conn_layered_ingest.c
      #6  __layered_drain_ingest_table_and_truncate_list ()
      #7  __layered_drain_worker_run ()                    (disaggregated ingest-drain worker, during step-up)
      

      Notes

      Same family as WT-17794 / WT-17817 / WT-17819 — the stable (.wt_stable) btree is left in a state the follower/drain paths do not expect across an elegant step-down. This is the third assertion in __layered_assert_stable_btree_state (conn_layered_ingest.c): WT-17817 covers the :47 aborted-prepared assert, WT-17819 the :76 no-value assert, and this one the :33 cbt->ins == NULL assert — the stable btree has a non-empty insert list during the ingest drain.

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

              Created:
              Updated: