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

test/format failure: lsm_cursor.c, 417

    XMLWordPrintable

    Details

    • Type: Task
    • Status: Closed
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: WT1.6.5
    • Labels:

      Description

      A new failure if I configure test/format with lsm_bloom_newest=true,lsm_bloom_oldest=true and run with multiple threads (I don't know for sure this doesn't happen without that configuration, but I haven't seen it without it).

      t: process 86377
      t, file:wt-000004.lsm, cursor.update: ../src/lsm/lsm_cursor.c, 417: (F_ISSET(chunk, WT_LSM_CHUNK_BLOOM) && !F_ISSET(clsm, WT_CLSM_MERGE)) ? clsm->blooms[i] != NULL : clsm->blooms[i] == NULL
      t, file:wt-000004.lsm, cursor.update: aborting WiredTiger library
      

      ############################################
      #  RUN PARAMETERS
      ############################################
      # bitcnt not applicable to this run
      cache=80
      compression=snappy
      data_extend=0
      data_source=lsm
      delete_pct=8
      dictionary=0
      file_type=row-store
      hot_backups=0
      huffman_key=0
      huffman_value=1
      insert_pct=54
      internal_key_truncation=0
      internal_page_max=15
      key_gap=20
      key_max=64
      key_min=24
      leaf_page_max=11
      ops=50000
      prefix=1
      repeat_data_pct=32
      reverse=0
      rows=1000
      runs=0
      split_pct=66
      statistics=1
      threads=26
      value_max=128
      value_min=10
      # wiredtiger_config not applicable to this run
      write_pct=64
      ############################################
      

      Here's the stack:

      (gdb) where
      #0  0x00000008015d1cbc in select () from /lib/libc.so.7
      WT-1  0x0000000800ea24e4 in select () from /lib/libthr.so.3
      WT-2  0x000000000041954e in __wt_sleep (seconds=100, micro_seconds=0)
          at ../src/os_posix/os_sleep.c:22
      WT-3  0x000000000042982f in __wt_attach (session=0x8024a55a0)
          at ../src/support/global.c:97
      WT-4  0x000000000047aa38 in __wt_abort (session=0x8024a55a0)
          at ../src/os_posix/os_abort.c:21
      WT-5  0x0000000000429327 in __wt_assert (session=Could not find the frame base for "__wt_assert".
      ) at ../src/support/err.c:408
      WT-6  0x0000000000472b0d in __clsm_open_cursors (clsm=0x804807480, update=1, 
          start_chunk=0, start_id=0) at ../src/lsm/lsm_cursor.c:414
      WT-7  0x0000000000473b2e in __clsm_enter (clsm=0x804807480, update=1)
          at ../src/lsm/lsm_cursor.c:93
      WT-8  0x0000000000475c66 in __clsm_update (cursor=0x804807480)
          at ../src/lsm/lsm_cursor.c:1136
      WT-9  0x0000000000406d18 in row_update (cursor=0x804807480, key=0x7ffffcde6f30, 
          value=0x7ffffcde6f10, keyno=848) at ../../../test/format/ops.c:690
      WT-10 0x0000000000405fb4 in ops (arg=0x8025b8da0)
          at ../../../test/format/ops.c:358
      WT-11 0x0000000800ea00a4 in pthread_getprio () from /lib/libthr.so.3
      WT-12 0x0000000000000000 in ?? ()
      Error accessing memory address 0x7ffffcde7000: Bad address.
      

      Here's the assert:

      /* Make sure the Bloom config matches. */
      WT_ASSERT(session,
          (F_ISSET(chunk, WT_LSM_CHUNK_BLOOM) &&
          !F_ISSET(clsm, WT_CLSM_MERGE)) ?
          clsm->blooms[i] != NULL : clsm->blooms[i] == NULL);
       
      (gdb) printf "%x\n", chunk->flags        <<< WT_LSM_CHUNK_BLOOM set
      11
      (gdb) printf "%x\n", clsm->flags        <<< WT_CLSM_MERGE not set
      20
      (gdb) p clsm->blooms[i]
      $3 = (WT_BLOOM *) 0x0
       
      (gdb) p nchunks
      $4 = 4
      (gdb) p start_chunk 
      $11 = 0
      (gdb) p lsm_tree->chunk[0]
      $5 = (WT_LSM_CHUNK *) 0x802417200
      (gdb) p *lsm_tree->chunk[0]
      $6 = {id = 1, generation = 0, uri = 0x802464320 "file:wt-000001.lsm", 
        bloom_uri = 0x803827040 "file:wt-000001.bf", count = 1075, create_ts = {
          tv_sec = 1379195571, tv_nsec = 55675115}, txnid_max = 1075, flags = 17}
      (gdb) p *lsm_tree->chunk[1]
      $7 = {id = 2, generation = 0, uri = 0x803c27840 "file:wt-000002.lsm", 
        bloom_uri = 0x0, count = 21391, create_ts = {tv_sec = 1379195571, 
          tv_nsec = 180813648}, txnid_max = 25772, flags = 0}
      (gdb) p *lsm_tree->chunk[2] 
      $8 = {id = 3, generation = 0, uri = 0x803e9da00 "file:wt-000003.lsm", 
        bloom_uri = 0x0, count = 11788, create_ts = {tv_sec = 1379195595, 
          tv_nsec = 635669820}, txnid_max = 26859, flags = 0}
      (gdb) p *lsm_tree->chunk[3] 
      $9 = {id = 4, generation = 0, uri = 0x803c278a0 "file:wt-000004.lsm", 
        bloom_uri = 0x0, count = 7954, create_ts = {tv_sec = 1379195618, 
          tv_nsec = 306281762}, txnid_max = 33089, flags = 0}
      (gdb) p lsm_tree->chunk[4]
      $10 = (WT_LSM_CHUNK *) 0x0
       
      (gdb) p chunk
      $12 = (WT_LSM_CHUNK *) 0x802417200
      (gdb) p lsm_tree->chunk[0]
      $13 = (WT_LSM_CHUNK *) 0x802417200
       
      There are no bloom filters
       
      (gdb) p clsm->bloom_alloc / sizeof(void *)
      $108 = 10
      (gdb) set $i=0
      (gdb) while ($i < 10)
       >p clsm->blooms[$i]
       >set $i=$i + 1
       >end
      $109 = (WT_BLOOM *) 0x0
      $110 = (WT_BLOOM *) 0x0
      $111 = (WT_BLOOM *) 0x0
      $112 = (WT_BLOOM *) 0x0
      $113 = (WT_BLOOM *) 0x0
      $114 = (WT_BLOOM *) 0x0
      $115 = (WT_BLOOM *) 0x0
      $116 = (WT_BLOOM *) 0x0
      $117 = (WT_BLOOM *) 0x0
      $118 = (WT_BLOOM *) 0x0
      

      This one doesn't happen very often, maybe every 50 runs or so.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                keith.bostic Keith Bostic
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: