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