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

Failed: null pointer passed as argument which is declared to never be null.

    • Type: Icon: Build Failure Build Failure
    • Resolution: Duplicate
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Labels:
      None

      Signature:

       [2021/08/11 05:26:37.489] cursor_order: fixed-length columns
       [2021/08/11 05:26:37.489] ../src/reconcile/rec_col.c:330:27: runtime error: null pointer passed as argument 2, which is declared to never be null
       [2021/08/11 05:26:37.489] /usr/include/string.h:43:28: note: nonnull attribute specified here
       [2021/08/11 05:26:37.489]     #0 0x7fe938856b42 in __wt_rec_col_fix /data/mci/363037b12357e18d11f32c4cb85a9706/wiredtiger/build_posix/../src/reconcile/rec_col.c:330:5
       [2021/08/11 05:26:37.489]     #1 0x7fe9388abd10 in __reconcile /data/mci/363037b12357e18d11f32c4cb85a9706/wiredtiger/build_posix/../src/reconcile/rec_write.c:179:19
       [2021/08/11 05:26:37.489]     #2 0x7fe9388aa2bb in __wt_reconcile /data/mci/363037b12357e18d11f32c4cb85a9706/wiredtiger/build_posix/../src/reconcile/rec_write.c:99:11
       [2021/08/11 05:26:37.489]     #3 0x7fe938707dd1 in __evict_review /data/mci/363037b12357e18d11f32c4cb85a9706/wiredtiger/build_posix/../src/evict/evict_page.c:744:9
       [2021/08/11 05:26:37.489]     #4 0x7fe938700ad8 in __wt_evict /data/mci/363037b12357e18d11f32c4cb85a9706/wiredtiger/build_posix/../src/evict/evict_page.c:159:5
       [2021/08/11 05:26:37.489]     #5 0x7fe9386dc360 in __evict_page /data/mci/363037b12357e18d11f32c4cb85a9706/wiredtiger/build_posix/../src/evict/evict_lru.c:2301:5
       [2021/08/11 05:26:37.489]     #6 0x7fe9386d413b in __evict_lru_pages /data/mci/363037b12357e18d11f32c4cb85a9706/wiredtiger/build_posix/../src/evict/evict_lru.c:1129:20
       [2021/08/11 05:26:37.489]     #7 0x7fe9386e076e in __evict_pass /data/mci/363037b12357e18d11f32c4cb85a9706/wiredtiger/build_posix/../src/evict/evict_lru.c:731:13
       [2021/08/11 05:26:37.489]     #8 0x7fe9386d38a4 in __evict_server /data/mci/363037b12357e18d11f32c4cb85a9706/wiredtiger/build_posix/../src/evict/evict_lru.c:388:5
       [2021/08/11 05:26:37.489]     #9 0x7fe9386d31b1 in __wt_evict_thread_run /data/mci/363037b12357e18d11f32c4cb85a9706/wiredtiger/build_posix/../src/evict/evict_lru.c:297:15
       [2021/08/11 05:26:37.489]     #10 0x7fe9389ee88c in __thread_run /data/mci/363037b12357e18d11f32c4cb85a9706/wiredtiger/build_posix/../src/support/thread_group.c:31:9
       [2021/08/11 05:26:37.489]     #11 0x7fe9374d86da in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x76da)
       [2021/08/11 05:26:37.489]     #12 0x7fe936c4b71e in clone /build/glibc-S9d2JN/glibc-2.27/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:95
       [2021/08/11 05:26:37.489] FAIL smoke.sh (exit status: 1) 

      make-check-test failed on ! Ubuntu 18.04 UBSAN

      Host: ec2-34-236-148-113.compute-1.amazonaws.com
      Project: WiredTiger (develop)
      Commit: diff: WT-7928 VLCS checkpoint and additional test suite improvements (#6870)

      • 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 change was in a previous ticket; this lot got missed then
      because it was sitting on a different git branch at the time) | 11 Aug 21 04:43 UTC
      Evergreen Subscription: ; Evergreen Event:

      Task Logs (make-check-test)

            Assignee:
            backlog-server-storage-engines [DO NOT USE] Backlog - Storage Engines Team
            Reporter:
            xgen-evg-user Xgen-Evergreen-User
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: