Add more scenarios for the internal page deltas

XMLWordPrintableJSON

    • Storage Engines, Storage Engines - Transactions
    • SE Transactions - 2025-08-29, SE Transactions - 2025-09-12
    • 5

      In one PR test in the wiredtiger_disagg_integration branch, I saw this error:

      [2025/07/02 12:34:57.012] ======================================================================
      [2025/07/02 12:34:57.012] [pid:56634]: FAIL: test_layered32.test_layered32.test_internal_page_delta_random(rotn.snappy.palm.layered.ts.write_both)
      [2025/07/02 12:34:57.012] ----------------------------------------------------------------------
      [2025/07/02 12:34:57.012] [pid:56634]: testtools.testresult.real._StringException: Traceback (most recent call last):
      [2025/07/02 12:34:57.012]   File "/data/mci/479feb40289ab4d4822a466c0f802fbf/wiredtiger/test/suite/wttest.py", line 243, in _callTestMethod
      [2025/07/02 12:34:57.012]     method()
      [2025/07/02 12:34:57.012]   File "/data/mci/479feb40289ab4d4822a466c0f802fbf/wiredtiger/test/suite/test_layered32.py", line 217, in test_internal_page_delta_random
      [2025/07/02 12:34:57.012]     self.verify(kv_modfied, inital_value)
      [2025/07/02 12:34:57.012]   File "/data/mci/479feb40289ab4d4822a466c0f802fbf/wiredtiger/test/suite/test_layered32.py", line 118, in verify
      [2025/07/02 12:34:57.012]     self.assertEqual(cursor.get_value(), expected_kv[str(i)])
      [2025/07/02 12:34:57.012] AssertionError: '219abc' != '1602abc'
      [2025/07/02 12:34:57.012] - 219abc
      [2025/07/02 12:34:57.012] + 1602abc 

      The failing task is here: https://spruce.mongodb.com/task/wiredtiger_feature_ubuntu2004_unit_test_bucket10_patch_4940cffd91879240b40195dde0184fd2d040061e_68655a7725f67a00070966fe_25_07_02_16_12_41/logs?execution=0

      This looks like it could be a serious error.  I tried running layered32 100 times but haven't seen the error.  This test has some good randomness - changing number of keys written and in what range on each run.  It uses random.randint(), which appears to start with a different seed every time python is initialized.  It would be very useful to generate a random seed in the test itself, then we could print the seed via self.pr() or something that can be discovered if the test fails, and rerun with a specific seed.

      I think the expectations for the ticket are to try to reproduce, but mainly change the test so that any failure can be repeated.

        1. Screenshot 2025-08-28 at 3.44.14 PM.png
          110 kB
          Ravi Giri
        2. Screenshot 2025-08-28 at 10.37.17 PM.png
          1022 kB
          Ravi Giri
        3. Screenshot 2025-08-28 at 10.41.39 PM.png
          135 kB
          Ravi Giri
        4. Screenshot 2025-09-01 at 11.21.04 PM.png
          39 kB
          Ravi Giri

            Assignee:
            Ravi Giri
            Reporter:
            Donald Anderson
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved: