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.
- related to
-
WT-1 placeholder WT-1
- Closed
-
WT-2 What does metadata look like?
- Closed
-
WT-3 What file formats are required?
- Closed
-
WT-4 Flexible cursor traversals
- Closed
-
WT-5 How does pget work: is it necessary?
- Closed
-
WT-6 Complex schema example
- Closed
-
WT-7 Do we need the handle->err/errx methods?
- Closed
-
WT-8 Do we need table load, bulk-load and/or dump methods?
- Closed
-
WT-9 Does adding schema need to be transactional?
- Closed
-
WT-10 Basic "getting started" tutorial
- Closed
-
WT-11 placeholder #11
- Closed
-
WT-12 Write more examples
- Closed