Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major - P3
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: WT2.7.0
    • Labels:
      None
    • # Replies:
      5
    • Last comment by Customer:
      true

      Description

      I've been using a little test program to pound on WT-2182, and it always fails in a run or two with the current develop branch:

      file:xx, eviction-worker: src/evict/evict_page.c, 478:
      LF_ISSET(WT_EVICT_LOOKASIDE) || __wt_page_is_modified(page) ||
          __wt_txn_visible_all(session, page->modify->rec_max_txn)
      file:xx, eviction-worker: aborting WiredTiger library
      file:xx, eviction-worker: process ID 47149: waiting for debugger...
       
       
      (gdb) where
      #0  0x0000000800d0006a in select () from /lib/libc.so.7
      #1  0x00000008009b1b02 in select () from /lib/libthr.so.3
      #2  0x000000000044bf9a in __wt_sleep (seconds=100, micro_seconds=0)
          at src/os_posix/os_sleep.c:23
      #3  0x0000000000485e77 in __wt_attach (session=0x801447800)
          at src/support/global.c:118
      #4  0x0000000000528077 in __wt_abort (session=0x801447800)
          at src/os_posix/os_abort.c:22
      #5  0x00000000004854ec in __wt_assert (session=0x801447800, error=0, 
          file_name=0x55dc02 "src/evict/evict_page.c", line_number=478, 
          fmt=0x56d8a7 "%s") at src/support/err.c:469
      #6  0x000000000042ccfa in __evict_review (session=0x801447800, 
          ref=0x8124fb550, inmem_splitp=0x7fffff7fbb3e, closing=false)
          at src/evict/evict_page.c:475
      #7  0x000000000042c07b in __wt_evict (session=0x801447800, ref=0x8124fb550, 
          closing=false) at src/evict/evict_page.c:79
      #8  0x0000000000428273 in __evict_page (session=0x801447800, is_server=false)
          at src/evict/evict_lru.c:1467
      #9  0x0000000000427ccf in __wt_cache_eviction_worker (session=0x801447800, 
          busy=false, pct_full=95) at src/evict/evict_lru.c:1552
      #10 0x000000000054e3b3 in __wt_cache_eviction_check (session=0x801447800, 
          busy=false, didworkp=0x0) at cache.i:256
      #11 0x000000000054e21d in __cursor_enter (session=0x801447800) at cursor.i:63
      #12 0x000000000054e190 in __curfile_enter (cbt=0x80181c300) at cursor.i:96
      #13 0x0000000000549a2b in __cursor_func_init (cbt=0x80181c300, reenter=true)
          at cursor.i:200
      #14 0x000000000054a2ba in __wt_btcur_insert (cbt=0x80181c300)
          at src/btree/bt_cursor.c:498
      #15 0x00000000004fc8d9 in __curfile_insert (cursor=0x80181c300)
          at src/cursor/cur_file.c:245
      #16 0x0000000000403e27 in insert_append (arg=0x0) at op.c:90
      

      It's a simple test program: a tiny cache with a single thread inserting records (either a roughly random or append-only workload), and N eviction worker, cursor-next and cursor-prev threads.

      1. t.c
        4 kB
        Keith Bostic

        Issue Links

          Activity

          Hide
          keith.bostic Keith Bostic added a comment - - edited

          The commit that triggered the failure is 4337414.

          There was a typo in an assert in the source: we were calling LF_SET instead of LF_ISSET, but that was keeping the test from ever happening, and now it's asserting.

          Show
          keith.bostic Keith Bostic added a comment - - edited The commit that triggered the failure is 4337414 . There was a typo in an assert in the source: we were calling LF_SET instead of LF_ISSET , but that was keeping the test from ever happening, and now it's asserting.
          Hide
          keith.bostic Keith Bostic added a comment -

          And, there's a related change in WT-2189 (78f50r3), to reset the maximum transaction for each reconciliation.

          Show
          keith.bostic Keith Bostic added a comment - And, there's a related change in WT-2189 ( 78f50r3 ), to reset the maximum transaction for each reconciliation.
          Hide
          keith.bostic Keith Bostic added a comment -

          The problem is we skip visibility tests for the lookaside table, so the

          __wt_txn_visible_all(session, page->modify->rec_max_txn));
          

          test for a page in the lookaside table can reasonably fail.

          Show
          keith.bostic Keith Bostic added a comment - The problem is we skip visibility tests for the lookaside table, so the __wt_txn_visible_all(session, page->modify->rec_max_txn)); test for a page in the lookaside table can reasonably fail.
          Hide
          xgen-internal-githook Githook User added a comment -

          Author:

          {u'username': u'keithbostic', u'name': u'Keith Bostic', u'email': u'keith@wiredtiger.com'}

          Message: WT-2190: reconciliation skips update visibility tests for the lookaside
          table, so the __wt_txn_visible_all(session, page->modify->rec_max_txn));
          test for a page in the lookaside table can reasonably fail.
          Branch: develop
          https://github.com/wiredtiger/wiredtiger/commit/7518a6926ffc5745b1118fcb2ec41282bfd2617a

          Show
          xgen-internal-githook Githook User added a comment - Author: {u'username': u'keithbostic', u'name': u'Keith Bostic', u'email': u'keith@wiredtiger.com'} Message: WT-2190 : reconciliation skips update visibility tests for the lookaside table, so the __wt_txn_visible_all(session, page->modify->rec_max_txn)); test for a page in the lookaside table can reasonably fail. Branch: develop https://github.com/wiredtiger/wiredtiger/commit/7518a6926ffc5745b1118fcb2ec41282bfd2617a
          Hide
          xgen-internal-githook Githook User added a comment -

          Author:

          {u'username': u'michaelcahill', u'name': u'Michael Cahill', u'email': u'michael.cahill@mongodb.com'}

          Message: WT-2190 Fix assertion to use logical OR.
          Branch: develop
          https://github.com/wiredtiger/wiredtiger/commit/2daed113d9d055c6c26695ce317f917213a650f2

          Show
          xgen-internal-githook Githook User added a comment - Author: {u'username': u'michaelcahill', u'name': u'Michael Cahill', u'email': u'michael.cahill@mongodb.com'} Message: WT-2190 Fix assertion to use logical OR. Branch: develop https://github.com/wiredtiger/wiredtiger/commit/2daed113d9d055c6c26695ce317f917213a650f2

            People

            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:
                Days since reply:
                1 year, 25 weeks ago
                Date of 1st Reply: