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

Remove assertion in __wt_find_lookaside_upd for cursor comparison

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • WT10.0.0, 4.4.0-rc0, 4.7.0
    • Affects Version/s: None
    • Component/s: None
    • None
    • 5
    • Storage Engines 2019-10-21

      We're currently getting an assertion failure in test_las02.py on our long-running feature branch.

      (lldb) bt
      * thread #1, name = 'python', stop reason = signal SIGABRT
        * frame #0: 0x00007ffff7a22e97 libc.so.6`__GI_raise(sig=2) at raise.c:51
          frame #1: 0x00007ffff7a24801 libc.so.6`__GI_abort at abort.c:79
          frame #2: 0x00007ffff58b5f1f libwiredtiger-3.2.2.so`__wt_abort(session=0x0000555555dca748) at os_abort.c:30
          frame #3: 0x00007ffff57e5114 libwiredtiger-3.2.2.so`__wt_find_lookaside_upd(session=0x0000555555dca748, cbt=0x0000555555e94440, updp=0x00007fffffffc3e8, allow_prepare=false) at cache_las.c:1266
          frame #4: 0x00007ffff5759430 libwiredtiger-3.2.2.so`__wt_txn_read(session=0x0000555555dca748, cbt=0x0000555555e94440, upd=0x0000555555ec0fd0, updp=0x00007fffffffc498) at txn.i:837
          frame #5: 0x00007ffff5758147 libwiredtiger-3.2.2.so`__cursor_row_next(cbt=0x0000555555e94440, newpage=true, restart=false) at bt_curnext.c:388
          frame #6: 0x00007ffff5756bf5 libwiredtiger-3.2.2.so`__wt_btcur_next(cbt=0x0000555555e94440, truncating=false) at bt_curnext.c:659
          frame #7: 0x00007ffff5828de8 libwiredtiger-3.2.2.so`__curfile_next(cursor=0x0000555555e94440) at cur_file.c:92
          frame #8: 0x00007ffff5bd2d2d _wiredtiger.so`_wrap_Cursor_next(self=<unavailable>, args=<unavailable>) at wiredtiger_wrap.c:4161
          frame #9: 0x0000555555650724 python`PyEval_EvalFrameEx + 31188
          frame #10: 0x000055555564d8cd python`PyEval_EvalFrameEx + 19325
          frame #11: 0x0000555555646b0a python`PyEval_EvalCodeEx + 1754
          frame #12: 0x00005555556620b9 python`___lldb_unnamed_symbol3296$$python + 73
          frame #13: 0x000055555567a3ae python`___lldb_unnamed_symbol3409$$python + 414
          frame #14: 0x00005555556322ae python`PyObject_Call + 62
          frame #15: 0x00005555556ec716 python`___lldb_unnamed_symbol4213$$python + 70
          frame #16: 0x0000555555649812 python`PyEval_EvalFrameEx + 2754
          frame #17: 0x000055555564d8cd python`PyEval_EvalFrameEx + 19325
          frame #18: 0x000055555564d8cd python`PyEval_EvalFrameEx + 19325
          frame #19: 0x0000555555646b0a python`PyEval_EvalCodeEx + 1754
          frame #20: 0x000055555566235c python`___lldb_unnamed_symbol3296$$python + 748
          frame #21: 0x00005555556322ae python`PyObject_Call + 62
          frame #22: 0x000055555564b4f3 python`PyEval_EvalFrameEx + 10147
          frame #23: 0x0000555555646b0a python`PyEval_EvalCodeEx + 1754
          frame #24: 0x00005555556620b9 python`___lldb_unnamed_symbol3296$$python + 73
          frame #25: 0x000055555567a3ae python`___lldb_unnamed_symbol3409$$python + 414
          frame #26: 0x00005555556322ae python`PyObject_Call + 62
          frame #27: 0x00005555556d6953 python`___lldb_unnamed_symbol3982$$python + 51
          frame #28: 0x000055555564df9e python`PyEval_EvalFrameEx + 21070
          frame #29: 0x0000555555646b0a python`PyEval_EvalCodeEx + 1754
          frame #30: 0x000055555566235c python`___lldb_unnamed_symbol3296$$python + 748
          frame #31: 0x00005555556322ae python`PyObject_Call + 62
          frame #32: 0x000055555564b4f3 python`PyEval_EvalFrameEx + 10147
          frame #33: 0x0000555555646b0a python`PyEval_EvalCodeEx + 1754
          frame #34: 0x00005555556620b9 python`___lldb_unnamed_symbol3296$$python + 73
          frame #35: 0x000055555567a3ae python`___lldb_unnamed_symbol3409$$python + 414
          frame #36: 0x00005555556322ae python`PyObject_Call + 62
          frame #37: 0x00005555556d6953 python`___lldb_unnamed_symbol3982$$python + 51
          frame #38: 0x000055555564df9e python`PyEval_EvalFrameEx + 21070
          frame #39: 0x000055555564d8cd python`PyEval_EvalFrameEx + 19325
          frame #40: 0x0000555555646b0a python`PyEval_EvalCodeEx + 1754
          frame #41: 0x000055555564e77a python`PyEval_EvalFrameEx + 23082
          frame #42: 0x0000555555646b0a python`PyEval_EvalCodeEx + 1754
          frame #43: 0x0000555555646429 python`PyEval_EvalCode + 25
          frame #44: 0x00005555556764cf python`___lldb_unnamed_symbol3389$$python + 47
          frame #45: 0x0000555555671442 python`PyRun_FileExFlags + 130
          frame #46: 0x00005555556708bd python`PyRun_SimpleFileExFlags + 397
          frame #47: 0x000055555562075b python`Py_Main + 1675
          frame #48: 0x00007ffff7a05b97 libc.so.6`__libc_start_main(main=(python`main), argc=3, argv=0x00007fffffffe4e8, init=<unavailable>, fini=<unavailable>, rtld_fini=<unavailable>, stack_end=0x00007fffffffe4d8) at libc-start.c:310
          frame #49: 0x000055555561ffda python`_start + 42
      (lldb) frame select 3
      frame #3: 0x00007ffff57e5114 libwiredtiger-3.2.2.so`__wt_find_lookaside_upd(session=0x0000555555dca748, cbt=0x0000555555e94440, updp=0x00007fffffffc3e8, allow_prepare=false) at cache_las.c:1266
         1263	     * Prior to calling this function, we should have successfully searched the correct key with our
         1264	     * cursor.
         1265	     */
      -> 1266	    WT_ASSERT(session, cbt->compare == 0);
         1267
         1268	    /* Row-store has the key available, create the column-store key on demand. */
         1269	    switch (cbt->btree->type) {
      

      I haven't seen this on my own box but it seems to be reproducing readily on haribabu.kommi's box saru.

            Assignee:
            alex.cameron@mongodb.com Alex Cameron (Inactive)
            Reporter:
            alex.cameron@mongodb.com Alex Cameron (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: