Solve: SUMMARY: ThreadSanitizer: data race /home/ubuntu/work/git/wiredtiger/src/reconcile/rec_write.c:186 in __reconcile_post_wrapup

    • Type: Bug
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Reconciliation
    • None
    • Storage Engines, Storage Engines - Foundations
    • None
    • 3

      Can be reproduced by running the following command under TSAN from build folder:

      TSAN_OPTIONS="history_size=7:suppressions=../test/evergreen/tsan_warnings.supp" ./examples/c/ex_backup/ex_backup 2>tsan_warnings_error.log 

      The warning TSAN info:

      ==================WARNING: ThreadSanitizer: data race (pid=196550)  Read of size 4 at 0x7b5c00001294 by main thread (mutexes: write M364, write M3, write M414):    #0 __reconcile_post_wrapup /home/ubuntu/work/git/wiredtiger/src/reconcile/rec_write.c:186 (libwiredtiger.so.12.0.0+0x43ec0b)    #1 __reconcile /home/ubuntu/work/git/wiredtiger/src/reconcile/rec_write.c:334 (libwiredtiger.so.12.0.0+0x44d912)    #2 __wt_reconcile /home/ubuntu/work/git/wiredtiger/src/reconcile/rec_write.c:98 (libwiredtiger.so.12.0.0+0x44b9a4)    #3 __wt_sync_file /home/ubuntu/work/git/wiredtiger/src/btree/bt_sync.c:363 (libwiredtiger.so.12.0.0+0x17700c)    #4 __checkpoint_tree /home/ubuntu/work/git/wiredtiger/src/checkpoint/checkpoint_txn.c:2523 (libwiredtiger.so.12.0.0+0x1e57b1)    #5 __checkpoint_tree_helper /home/ubuntu/work/git/wiredtiger/src/checkpoint/checkpoint_txn.c:2661 (libwiredtiger.so.12.0.0+0x1e60bc)    #6 __checkpoint_apply_to_dhandles /home/ubuntu/work/git/wiredtiger/src/checkpoint/checkpoint_txn.c:340 (libwiredtiger.so.12.0.0+0x1d9a7c)    #7 __checkpoint_db_internal /home/ubuntu/work/git/wiredtiger/src/checkpoint/checkpoint_txn.c:1330 (libwiredtiger.so.12.0.0+0x1e77a9)    #8 __checkpoint_db_wrapper /home/ubuntu/work/git/wiredtiger/src/checkpoint/checkpoint_txn.c:1697 (libwiredtiger.so.12.0.0+0x1e9a7e)    #9 __wt_checkpoint_db /home/ubuntu/work/git/wiredtiger/src/checkpoint/checkpoint_txn.c:1776 (libwiredtiger.so.12.0.0+0x1e9e9f)    #10 __curbackup_close /home/ubuntu/work/git/wiredtiger/src/cursor/cur_backup.c:284 (libwiredtiger.so.12.0.0+0x24e88c)    #11 take_full_backup /home/ubuntu/work/git/wiredtiger/examples/c/ex_backup.c:292 (ex_backup+0x45bf)    #12 main /home/ubuntu/work/git/wiredtiger/examples/c/ex_backup.c:441 (ex_backup+0x4a8a)
        Previous write of size 4 at 0x7b5c00001294 by thread T5 (mutexes: write M34):    #0 __reconcile_post_wrapup /home/ubuntu/work/git/wiredtiger/src/reconcile/rec_write.c:187 (libwiredtiger.so.12.0.0+0x43ec20)    #1 __reconcile /home/ubuntu/work/git/wiredtiger/src/reconcile/rec_write.c:323 (libwiredtiger.so.12.0.0+0x44d0e5)    #2 __wt_reconcile /home/ubuntu/work/git/wiredtiger/src/reconcile/rec_write.c:98 (libwiredtiger.so.12.0.0+0x44b9a4)    #3 __evict_reconcile /home/ubuntu/work/git/wiredtiger/src/evict/evict_page.c:1031 (libwiredtiger.so.12.0.0+0x34a0b0)    #4 __wt_evict /home/ubuntu/work/git/wiredtiger/src/evict/evict_page.c:236 (libwiredtiger.so.12.0.0+0x35544c)    #5 __evict_page /home/ubuntu/work/git/wiredtiger/src/evict/evict_lru.c:2879 (libwiredtiger.so.12.0.0+0x339bb6)    #6 __evict_lru_pages /home/ubuntu/work/git/wiredtiger/src/evict/evict_lru.c:1380 (libwiredtiger.so.12.0.0+0x33aea5)    #7 __evict_pass /home/ubuntu/work/git/wiredtiger/src/evict/evict_lru.c:893 (libwiredtiger.so.12.0.0+0x34553f)    #8 __evict_server /home/ubuntu/work/git/wiredtiger/src/evict/evict_lru.c:461 (libwiredtiger.so.12.0.0+0x345dfd)    #9 __evict_thread_run /home/ubuntu/work/git/wiredtiger/src/evict/evict_lru.c:330 (libwiredtiger.so.12.0.0+0x34671c)    #10 __thread_run /home/ubuntu/work/git/wiredtiger/src/support/thread_group.c:31 (libwiredtiger.so.12.0.0+0x522071)
        Location is heap block of size 792 at 0x7b5c00001180 allocated by main thread:    #0 calloc ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:672 (libtsan.so.0+0x31edc)    #1 __wt_calloc /home/ubuntu/work/git/wiredtiger/src/os_common/os_alloc.c:68 (libwiredtiger.so.12.0.0+0x3bee0c)    #2 __wt_conn_dhandle_alloc /home/ubuntu/work/git/wiredtiger/src/conn/conn_dhandle.c:233 (libwiredtiger.so.12.0.0+0x222bb4)    #3 __session_find_shared_dhandle /home/ubuntu/work/git/wiredtiger/src/session/session_dhandle.c:848 (libwiredtiger.so.12.0.0+0x4baf43)    #4 __session_get_dhandle /home/ubuntu/work/git/wiredtiger/src/session/session_dhandle.c:878 (libwiredtiger.so.12.0.0+0x4bd2b6)    #5 __wt_session_get_dhandle /home/ubuntu/work/git/wiredtiger/src/session/session_dhandle.c:908 (libwiredtiger.so.12.0.0+0x4bd80f)    #6 __create_file /home/ubuntu/work/git/wiredtiger/src/schema/schema_create.c:307 (libwiredtiger.so.12.0.0+0x460b8f)    #7 __schema_create /home/ubuntu/work/git/wiredtiger/src/schema/schema_create.c:1520 (libwiredtiger.so.12.0.0+0x4656ba)    #8 __wt_schema_create /home/ubuntu/work/git/wiredtiger/src/schema/schema_create.c:1580 (libwiredtiger.so.12.0.0+0x4617f8)    #9 __create_colgroup /home/ubuntu/work/git/wiredtiger/src/schema/schema_create.c:620 (libwiredtiger.so.12.0.0+0x461fdd)    #10 __create_table /home/ubuntu/work/git/wiredtiger/src/schema/schema_create.c:980 (libwiredtiger.so.12.0.0+0x46319c)    #11 __schema_create /home/ubuntu/work/git/wiredtiger/src/schema/schema_create.c:1528 (libwiredtiger.so.12.0.0+0x465736)    #12 __wt_schema_create /home/ubuntu/work/git/wiredtiger/src/schema/schema_create.c:1580 (libwiredtiger.so.12.0.0+0x4617f8)    #13 __wt_session_create /home/ubuntu/work/git/wiredtiger/src/session/session_api.c:1032 (libwiredtiger.so.12.0.0+0x4afee3)    #14 __session_create /home/ubuntu/work/git/wiredtiger/src/session/session_api.c:1074 (libwiredtiger.so.12.0.0+0x4b0809)    #15 main /home/ubuntu/work/git/wiredtiger/examples/c/ex_backup.c:436 (ex_backup+0x4a27)
        Mutex M364 (0x7f0803947298) created at:    #0 pthread_mutex_init ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:1227 (libtsan.so.0+0x4bee1)    #1 __wt_spin_init /home/ubuntu/work/git/wiredtiger/src/include/mutex_inline.h:142 (libwiredtiger.so.12.0.0+0x4a69c8)    #2 __open_session /home/ubuntu/work/git/wiredtiger/src/session/session_api.c:2428 (libwiredtiger.so.12.0.0+0x4a69c8)    #3 __wt_open_session /home/ubuntu/work/git/wiredtiger/src/session/session_api.c:2551 (libwiredtiger.so.12.0.0+0x4b431e)    #4 __conn_open_session /home/ubuntu/work/git/wiredtiger/src/conn/conn_api.c:1379 (libwiredtiger.so.12.0.0+0x20680c)    #5 main /home/ubuntu/work/git/wiredtiger/examples/c/ex_backup.c:434 (ex_backup+0x49ad)
        Mutex M3 (0x7b9400000798) created at:    #0 pthread_mutex_init ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:1227 (libtsan.so.0+0x4bee1)    #1 __wt_spin_init /home/ubuntu/work/git/wiredtiger/src/include/mutex_inline.h:142 (libwiredtiger.so.12.0.0+0x22718f)    #2 __wti_connection_init /home/ubuntu/work/git/wiredtiger/src/conn/conn_handle.c:50 (libwiredtiger.so.12.0.0+0x22718f)    #3 wiredtiger_open /home/ubuntu/work/git/wiredtiger/src/conn/conn_api.c:2945 (libwiredtiger.so.12.0.0+0x214fe0)    #4 main /home/ubuntu/work/git/wiredtiger/examples/c/ex_backup.c:431 (ex_backup+0x4968)
        Mutex M414 (0x7b5c000013e8) created at:    #0 pthread_mutex_init ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:1227 (libtsan.so.0+0x4bee1)    #1 __wt_spin_init /home/ubuntu/work/git/wiredtiger/src/include/mutex_inline.h:142 (libwiredtiger.so.12.0.0+0x103963)    #2 __btree_conf /home/ubuntu/work/git/wiredtiger/src/btree/bt_handle.c:613 (libwiredtiger.so.12.0.0+0x103963)    #3 __wt_btree_open /home/ubuntu/work/git/wiredtiger/src/btree/bt_handle.c:120 (libwiredtiger.so.12.0.0+0x105f42)    #4 __wt_conn_dhandle_open /home/ubuntu/work/git/wiredtiger/src/conn/conn_dhandle.c:624 (libwiredtiger.so.12.0.0+0x2247e7)    #5 __wt_session_get_dhandle /home/ubuntu/work/git/wiredtiger/src/session/session_dhandle.c:944 (libwiredtiger.so.12.0.0+0x4bd918)    #6 __create_file /home/ubuntu/work/git/wiredtiger/src/schema/schema_create.c:307 (libwiredtiger.so.12.0.0+0x460b8f)    #7 __schema_create /home/ubuntu/work/git/wiredtiger/src/schema/schema_create.c:1520 (libwiredtiger.so.12.0.0+0x4656ba)    #8 __wt_schema_create /home/ubuntu/work/git/wiredtiger/src/schema/schema_create.c:1580 (libwiredtiger.so.12.0.0+0x4617f8)    #9 __create_colgroup /home/ubuntu/work/git/wiredtiger/src/schema/schema_create.c:620 (libwiredtiger.so.12.0.0+0x461fdd)    #10 __create_table /home/ubuntu/work/git/wiredtiger/src/schema/schema_create.c:980 (libwiredtiger.so.12.0.0+0x46319c)    #11 __schema_create /home/ubuntu/work/git/wiredtiger/src/schema/schema_create.c:1528 (libwiredtiger.so.12.0.0+0x465736)    #12 __wt_schema_create /home/ubuntu/work/git/wiredtiger/src/schema/schema_create.c:1580 (libwiredtiger.so.12.0.0+0x4617f8)    #13 __wt_session_create /home/ubuntu/work/git/wiredtiger/src/session/session_api.c:1032 (libwiredtiger.so.12.0.0+0x4afee3)    #14 __session_create /home/ubuntu/work/git/wiredtiger/src/session/session_api.c:1074 (libwiredtiger.so.12.0.0+0x4b0809)    #15 main /home/ubuntu/work/git/wiredtiger/examples/c/ex_backup.c:436 (ex_backup+0x4a27)
        Mutex M34 (0x7b5c00000150) created at:    #0 pthread_mutex_init ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:1227 (libtsan.so.0+0x4bee1)    #1 __wt_spin_init /home/ubuntu/work/git/wiredtiger/src/include/mutex_inline.h:142 (libwiredtiger.so.12.0.0+0x32d39e)    #2 __wt_evict_create /home/ubuntu/work/git/wiredtiger/src/evict/evict_conn.c:293 (libwiredtiger.so.12.0.0+0x32d39e)    #3 __wti_connection_open /home/ubuntu/work/git/wiredtiger/src/conn/conn_open.c:53 (libwiredtiger.so.12.0.0+0x234877)    #4 wiredtiger_open /home/ubuntu/work/git/wiredtiger/src/conn/conn_api.c:3206 (libwiredtiger.so.12.0.0+0x216b4f)    #5 main /home/ubuntu/work/git/wiredtiger/examples/c/ex_backup.c:431 (ex_backup+0x4968)
        Thread T5 'eviction-ser 1' (tid=196559, running) created by main thread at:    #0 pthread_create ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:969 (libtsan.so.0+0x605b8)    #1 __wt_thread_create /home/ubuntu/work/git/wiredtiger/src/os_posix/os_thread.c:60 (libwiredtiger.so.12.0.0+0x3d1562)    #2 __thread_group_resize /home/ubuntu/work/git/wiredtiger/src/support/thread_group.c:203 (libwiredtiger.so.12.0.0+0x523323)    #3 __wt_thread_group_create /home/ubuntu/work/git/wiredtiger/src/support/thread_group.c:289 (libwiredtiger.so.12.0.0+0x523a0d)    #4 __wt_evict_threads_create /home/ubuntu/work/git/wiredtiger/src/evict/evict_lru.c:597 (libwiredtiger.so.12.0.0+0x33b93f)    #5 __wti_connection_workers /home/ubuntu/work/git/wiredtiger/src/conn/conn_open.c:299 (libwiredtiger.so.12.0.0+0x2357c6)    #6 wiredtiger_open /home/ubuntu/work/git/wiredtiger/src/conn/conn_api.c:3324 (libwiredtiger.so.12.0.0+0x217137)    #7 main /home/ubuntu/work/git/wiredtiger/examples/c/ex_backup.c:431 (ex_backup+0x4968)
      SUMMARY: ThreadSanitizer: data race /home/ubuntu/work/git/wiredtiger/src/reconcile/rec_write.c:186 in __reconcile_post_wrapup================== 

       

            Assignee:
            Ivan Kochin
            Reporter:
            Ivan Kochin
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: