Uploaded image for project: 'WiredTiger'
  1. WiredTiger
  2. WT-7959

Skipped_pages is less than expected_pages_skipped in test_cursor17

    • Type: Icon: Build Failure Build Failure
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • WT10.0.1, 5.0.4, 4.4.10, 5.1.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • 0
    • Storage - Ra 2021-09-06

      spinlock-pthread-adaptive-test failed on RHEL 8.0

      Host: ec2-54-82-67-31.compute-1.amazonaws.com
      Project: WiredTiger (develop)
      Commit: diff: WT-7928 VLCS checkpoint and additional test suite improvements (redux) (#6892)

      • * Another fix for column stores, plus some tidyup.

      There was a missing call to __wt_txn_update_check on one branch of
      __wt_col_modify. This allowed e.g. removal of values from the past
      without causing a conflict and rollback, which creates an extra
      inconsistent tombstone that provokes an assertion failure during
      reconciliation.

      Accompanying tidyup, mostly from Keith Bostic:

      • rename __wt_txn_update_check to __wt_txn_modify_check, for accuracy;
      • unify the __wt_col/row_modify error paths to rectify some things that
        were missed/mishandled in the column code;
      • in __wt_col/row_modify lay down more comments and improve existing
        comments.
      • Add new Python test that explicitly exercises the bug.

      To see the problem you need a value multiple generations in the past.
      (The issue was originally found by test_checkpoint, and this test was
      only written after it had been understood and fixed.)

      • Fixes and improvements to the C tests.
      • Fix test/checkpoint to not try to rewind time while the database is
        running. That doesn't work.
      • In test/checkpoint close a race between worker threads sampling the
        time to choose the commit timestamp, and actually committing, by not
        unlocking the clock_lock until after commit. Otherwise occasionally
        the clock thread increments the stable timestamp in this window and
        things go south.
      • The latter also fixes a problem where transactions can apparently
        commit out of order, resulting in assertions about invalid time
        windows while handling the history store. I'm not sure if that's
        expected (that is, without this change the test is wrong) or if it
        reflects an actual problem that this change masks.

      (To reproduce it reliably, one can revert the clock_lock change and
      then also change the worker thread call to __wt_random_init_seed to
      just __wt_random_init; this makes every thread use the same random
      seed, so they pound on the same keys at once and readily conflict
      with one another.)

      • Re-enable disabled test_checkpoint cases and add some more for
        columns.
      • Add column-store (both fixed and variable) cases in make check for
        test/cursor_order.
      • Re-enable columns in test/csuite/random_abort; they work now.
      • Add column-store cases to more of the Python tests.
      • Fix whitespace via s_all. (oops)
      • Fix comment, per request.
      • Don't use 'int' and 'string' (as opposed to 'column') as scenario names.

      Change these all to use 'integer-row', 'string-row', and use 'column'
      rather than 'col'.

      (most of this piece was in a previous ticket; the tests here got
      missed then because it was sitting on a different git branch at the
      time)

      • Avoid undefined behavior calling memcpy in __wt_rec_col_fix. | 12 Aug 21 06:36 UTC
        Evergreen Subscription: ; Evergreen Event:

      Task Logs (spinlock-pthread-adaptive-test)

            Assignee:
            sulabh.mahajan@mongodb.com Sulabh Mahajan
            Reporter:
            xgen-evg-user Xgen-Evergreen-User
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated:
              Resolved: