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

Failure comparing keys

    • Type: Icon: Task Task
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • WT2.6.0
    • Affects Version/s: None
    • Component/s: None
    • Labels:

      It looks like the prefix length has gone wrong. @keithbostic, can you please take a look?

      http://build.wiredtiger.com:8080/job/wiredtiger-linux-directio/3128/

      There is a tarball of the build_posix tree at tinderbox:~jenkins/workspace/wiredtiger-linux-directio/build_posix.3128.tar.gz.

      (gdb) where
      #0  _mm_loadu_si128 (__P=0x7fd600795ff4)
          at /usr/lib/gcc/x86_64-redhat-linux/4.8.3/include/emmintrin.h:684
      WT-1  __wt_lex_compare_skip (user_item=0x7fd6000b82e8, user_item=0x7fd6000b82e8,
          tree_item=0x7fd6000b8430, tree_item=0x7fd6000b8430,
          matchp=<synthetic pointer>) at ../src/include/btree_cmp.i:153
      WT-2  __wt_row_search (session=session@entry=0x1cf47f0,
          srch_key=srch_key@entry=0x7fd6000b82e8, leaf=0x2452c60,
          cbt=cbt@entry=0x7fd6000b8210, insert=insert@entry=1)
          at ../src/btree/row_srch.c:371
      WT-3  0x00000000004d6a79 in __cursor_row_search (insert=1, leaf=<optimized out>,
          cbt=0x7fd6000b8210, session=0x1cf47f0) at ../src/btree/bt_cursor.c:241
      WT-4  __wt_btcur_search_near (cbt=cbt@entry=0x7fd6000b8210,
          exactp=exactp@entry=0x7fd61eb17b20) at ../src/btree/bt_cursor.c:399
      WT-5  0x000000000049e6aa in __curfile_search_near (cursor=0x7fd6000b8210,
          exact=0x7fd61eb17b20) at ../src/cursor/cur_file.c:222
      WT-6  0x00000000004af16b in __clsm_next (cursor=0x7fd60031ce10)
          at ../src/lsm/lsm_cursor.c:799
      (gdb) f 1
      WT-1  __wt_lex_compare_skip (user_item=0x7fd6000b82e8, user_item=0x7fd6000b82e8,
          tree_item=0x7fd6000b8430, tree_item=0x7fd6000b8430,
          matchp=<synthetic pointer>) at ../src/include/btree_cmp.i:153
      153					u = _mm_loadu_si128((__m128i *)userp);
      (gdb) list
      148			else
      149				for (; len > 0;
      150				    len -= WT_VECTOR_SIZE,
      151				    userp += WT_VECTOR_SIZE, treep += WT_VECTOR_SIZE,
      152				    *matchp += WT_VECTOR_SIZE) {
      153					u = _mm_loadu_si128((__m128i *)userp);
      154					t = _mm_loadu_si128((__m128i *)treep);
      155					res_eq = _mm_cmpeq_epi8(u, t);
      156					if (_mm_movemask_epi8(res_eq) != 65535)
      157						break;
      (gdb) print usz
      $1 = 22
      (gdb) print tsz
      $2 = 19
      (gdb) print *matchp
      $3 = 2341604
      (gdb) print userp - user_item->data
      $4 = 2341604
      (gdb) print len
      $10 = 18446744073707210016
      

            Assignee:
            keith.bostic@mongodb.com Keith Bostic (Inactive)
            Reporter:
            michael.cahill@mongodb.com Michael Cahill (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: