Sanitizer failed with a memory leak of ikeys:
http://build.wiredtiger.com:8080/job/wiredtiger-test-format-stress-sanitizer/2733/
We allocate them in __wt_row_ikey and there are a bunch of places we free them. We somehow missed 3 apparently.
Here's the stack:
Direct leak of 142 byte(s) in 3 object(s) allocated from: #0 0x48df19 in calloc (<http://build.wiredtiger.com:8080/job/wiredtiger-test-format-stress-sanitizer/ws/build_posix/test/format/t+0x48df19)> WT-1 0x67d388 in __wt_calloc <http://build.wiredtiger.com:8080/job/wiredtiger-test-format-stress-sanitizer/ws/build_posix/../src/os_posix/os_alloc.c>:39 WT-2 0xa70628 in __wt_row_ikey <http://build.wiredtiger.com:8080/job/wiredtiger-test-format-stress-sanitizer/ws/build_posix/../src/btree/row_key.c>:494 WT-3 0x9e9d0d in __split_ref_deepen_move <http://build.wiredtiger.com:8080/job/wiredtiger-test-format-stress-sanitizer/ws/build_posix/../src/btree/bt_split.c>:294 WT-4 0x9e70de in __split_deepen <http://build.wiredtiger.com:8080/job/wiredtiger-test-format-stress-sanitizer/ws/build_posix/../src/btree/bt_split.c>:503 WT-5 0x9da638 in __split_parent <http://build.wiredtiger.com:8080/job/wiredtiger-test-format-stress-sanitizer/ws/build_posix/../src/btree/bt_split.c>:1052 WT-6 0x9de764 in __wt_split_multi <http://build.wiredtiger.com:8080/job/wiredtiger-test-format-stress-sanitizer/ws/build_posix/../src/btree/bt_split.c>:1503 WT-7 0x5c94da in __evict_page_dirty_update <http://build.wiredtiger.com:8080/job/wiredtiger-test-format-stress-sanitizer/ws/build_posix/../src/evict/evict_page.c>:215 WT-8 0x5c2f85 in __wt_evict <http://build.wiredtiger.com:8080/job/wiredtiger-test-format-stress-sanitizer/ws/build_posix/../src/evict/evict_page.c>:109 WT-9 0x5a7aba in __wt_evict_page <http://build.wiredtiger.com:8080/job/wiredtiger-test-format-stress-sanitizer/ws/build_posix/../src/evict/evict_lru.c>:630 WT-10 0x5ab00b in __wt_evict_lru_page <http://build.wiredtiger.com:8080/job/wiredtiger-test-format-stress-sanitizer/ws/build_posix/../src/evict/evict_lru.c>:1310 WT-11 0xd4df90 in __wt_cache_full_check <http://build.wiredtiger.com:8080/job/wiredtiger-test-format-stress-sanitizer/ws/build_posix/../src/include/cache.i>:193 WT-12 0xd4fdce in __cursor_enter <http://build.wiredtiger.com:8080/job/wiredtiger-test-format-stress-sanitizer/ws/build_posix/../src/include/cursor.i>:63:33 WT-13 0xd4efa6 in __curfile_enter <http://build.wiredtiger.com:8080/job/wiredtiger-test-format-stress-sanitizer/ws/build_posix/../src/include/cursor.i>:98:32 WT-14 0xd2feee in __cursor_func_init <http://build.wiredtiger.com:8080/job/wiredtiger-test-format-stress-sanitizer/ws/build_posix/../src/include/cursor.i>:197:33 WT-15 0xd2d7bc in __wt_btcur_search <http://build.wiredtiger.com:8080/job/wiredtiger-test-format-stress-sanitizer/ws/build_posix/../src/btree/bt_cursor.c>:308:32 WT-16 0xb35693 in __curfile_search <http://build.wiredtiger.com:8080/job/wiredtiger-test-format-stress-sanitizer/ws/build_posix/../src/cursor/cur_file.c>:200 WT-17 0x4bfdc2 in read_row <http://build.wiredtiger.com:8080/job/wiredtiger-test-format-stress-sanitizer/ws/build_posix/test/format/../../../test/format/ops.c>:602 WT-18 0x4bd790 in ops <http://build.wiredtiger.com:8080/job/wiredtiger-test-format-stress-sanitizer/ws/build_posix/test/format/../../../test/format/ops.c>:476 WT-19 0x3f17e07ee4 in start_thread (/lib64/libpthread.so.0+0x3f17e07ee4)
Here's the CONFIG:
############################################ # RUN PARAMETERS ############################################ abort=0 auto_throttle=1 firstfit=0 bitcnt=2 bloom=1 bloom_bit_count=41 bloom_hash_count=16 bloom_oldest=0 cache=13 checkpoints=1 checksum=uncompressed chunk_size=2 compaction=0 compression=zlib data_extend=0 data_source=table delete_pct=12 dictionary=0 evict_max=3 file_type=row-store backups=0 huffman_key=0 huffman_value=0 insert_pct=14 internal_key_truncation=1 internal_page_max=16 isolation=snapshot key_gap=18 key_max=80 key_min=26 leak_memory=0 leaf_page_max=9 logging=0 logging_archive=0 logging_prealloc=0 logging=0 lsm_worker_threads=3 merge_max=15 mmap=1 ops=100000 prefix_compression=1 prefix_compression_min=8 repeat_data_pct=46 reverse=0 rows=100000 runs=1 split_pct=47 statistics=0 threads=25 timer=0 value_max=2874 value_min=3 wiredtiger_config= write_pct=20 ############################################
- is related to
-
WT-1605 underflow cache stat and low throughput
- Closed
-
WT-1619 Use a single in-memory byte value.
- Closed
-
WT-1707 Add some paranoia
- Closed
-
WT-1736 test/format sanitizer memory leak
- Closed
- 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
-
WT-13 Define supported platforms
- Closed
-
WT-14 Windows build
- Closed
-
WT-15 Automated build/test infrastructure
- Closed
-
WT-16 Test suite
- Closed
-
WT-17 Multithreaded tests
- Closed
-
WT-18 Coverage tests
- Closed
-
WT-19 Memory access / leak tests
- Closed
-
WT-20 API design
- Closed
-
WT-1747 Don't cache an ikey before winning the race to split into a parent.
- Closed