accre / lstore

LStore - A fault-tolerant, performant distributed data storage framework.
http://www.lstore.org
Apache License 2.0
4 stars 5 forks source link

Race in gop_init #141

Open PerilousApricot opened 7 years ago

PerilousApricot commented 7 years ago
WARNING: ThreadSanitizer: data race (pid=36353)
  Write of size 8 at 0x7d6c0009cdd8 by thread T46:
    #0 free /home/meloam/llvm/llvm-3.9.0.src/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:634 (globus-gridftp-server+0x00000042516e)
    #1 gop_init /home/meloam/lstore/src/gop/gop.c:692:26 (libgop.so.0+0x000000014539)
    #2 init_opque /home/meloam/lstore/src/gop/opque.c:241:5 (libgop.so.0+0x000000024b25)
    #3 gop_opque_new /home/meloam/lstore/src/gop/opque.c:269:5 (libgop.so.0+0x000000024e4c)
    #4 segjerase_write_func /home/meloam/lstore/src/lio/segment/jerasure.c:1503:9 (liblio.so.0+0x00000014e02c)
    #5 thread_pool_exec_fn /home/meloam/lstore/src/gop/thread_pool_op.c:232:14 (libgop.so.0+0x00000002a7b1)
    #6 thread_pool_func /home/meloam/lstore/vendor/apr-util-accre/misc/apr_thread_pool.c:271:13 (libgop.so.0+0x00000005bd0b)

  Previous write of size 8 at 0x7d6c0009cdd8 by thread T29 (mutexes: write M189):
    #0 tbx_pch_release /home/meloam/lstore/src/toolbox/pigeon_coop.c:175:15 (libtoolbox.so.0+0x00000001c8e4)
    #1 gop_generic_free /home/meloam/lstore/src/gop/gop.c:709:5 (libgop.so.0+0x0000000148f6)
    #2 gop_opque_free /home/meloam/lstore/src/gop/opque.c:341:5 (libgop.so.0+0x0000000253e3)
    #3 ongoing_heartbeat_thread /home/meloam/lstore/src/gop/mq_ongoing.c:157:9 (libgop.so.0+0x00000003e87a)

  Location is heap block of size 1600 at 0x7d6c0009ca00 allocated by thread T34:
    #0 malloc /home/meloam/llvm/llvm-3.9.0.src/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:591 (globus-gridftp-server+0x00000044d5cf)
    #1 gop_control_new /home/meloam/lstore/src/gop/opque.c:77:5 (libgop.so.0+0x000000022feb)
    #2 tbx_pch_reserve /home/meloam/lstore/src/toolbox/pigeon_coop.c:254:25 (libtoolbox.so.0+0x00000001dbbb)
    #3 gop_init /home/meloam/lstore/src/gop/gop.c:690:11 (libgop.so.0+0x00000001447d)
    #4 init_tp_op /home/meloam/lstore/src/gop/thread_pool_op.c:290:5 (libgop.so.0+0x00000002aee8)
    #5 gop_tp_op_new /home/meloam/lstore/src/gop/thread_pool_op.c:329:5 (libgop.so.0+0x00000002b3b7)
    #6 segjerase_write /home/meloam/lstore/src/lio/segment/jerasure.c:1735:11 (liblio.so.0+0x0000001515d2)
    #7 cache_rw_pages /home/meloam/lstore/src/lio/segment/cache.c:401:28 (liblio.so.0+0x00000010ee46)
    #8 cache_flush_range_gop_func /home/meloam/lstore/src/lio/segment/cache.c:2826:35 (liblio.so.0+0x000000130e3c)
    #9 thread_pool_exec_fn /home/meloam/lstore/src/gop/thread_pool_op.c:232:14 (libgop.so.0+0x00000002a7b1)
    #10 gop_waitall /home/meloam/lstore/src/gop/gop.c:436:13 (libgop.so.0+0x0000000120e9)
    #11 gop_waitall /home/meloam/lstore/src/gop/gop.c:423:22 (libgop.so.0+0x000000011bcd)
    #12 _amp_attempt_free_mem /home/meloam/lstore/src/lio/cache/amp.c:984:9 (liblio.so.0+0x00000001df38)
    #13 _amp_force_free_mem /home/meloam/lstore/src/lio/cache/amp.c:1024:19 (liblio.so.0+0x00000001e34c)
    #14 _amp_wait_for_page /home/meloam/lstore/src/lio/cache/amp.c:1079:13 (liblio.so.0+0x00000001e8c7)
    #15 _amp_create_empty_page /home/meloam/lstore/src/lio/cache/amp.c:1126:52 (liblio.so.0+0x00000001ece6)
    #16 cache_page_force_get /home/meloam/lstore/src/lio/segment/cache.c:571:13 (liblio.so.0+0x000000112da1)
    #17 cache_write_pages_get /home/meloam/lstore/src/lio/segment/cache.c:1606:13 (liblio.so.0+0x000000122906)
    #18 cache_rw_func /home/meloam/lstore/src/lio/segment/cache.c:2570:22 (liblio.so.0+0x0000001289ec)
    #19 _cache_ppages_flush_list /home/meloam/lstore/src/lio/segment/cache.c:2063:14 (liblio.so.0+0x000000126b96)
    #20 cache_ppages_handle /home/meloam/lstore/src/lio/segment/cache.c:2338:9 (liblio.so.0+0x00000012de87)
    #21 cache_rw_func /home/meloam/lstore/src/lio/segment/cache.c:2512:39 (liblio.so.0+0x0000001277c9)
    #22 thread_pool_exec_fn /home/meloam/lstore/src/gop/thread_pool_op.c:232:14 (libgop.so.0+0x00000002a7b1)
    #23 gop_sync_exec /home/meloam/lstore/src/gop/gop.c:607:13 (libgop.so.0+0x0000000139e4)
    #24 lio_write_ex_fn /home/meloam/lstore/src/lio/lio_core_io.c:1022:11 (liblio.so.0+0x00000004a185)
    #25 lio_write /home/meloam/lstore/src/lio/lio_core_io.c:1198:14 (liblio.so.0+0x00000004bd1e)
    #26 gfs_xfer_callback /home/meloam/lstore/binding/gridftp/src/lstore_dsi.c:688:33 (libglobus_gridftp_server_lstore.so+0x0000000042c0)
    #27 gfs_recv_callback /home/meloam/lstore/binding/gridftp/src/lstore_dsi.c:636:5 (libglobus_gridftp_server_lstore.so+0x000000003bff)
    #28 globus_l_gfs_data_read_cb <null> (libglobus_gridftp_server.so.6+0x000000076206)
    #29 globus_l_ftp_eb_read_callback <null> (libglobus_ftp_control.so.1+0x00000002c3aa)
    #30 globus_l_io_bounce_io_cb <null> (libglobus_io.so.3+0x000000018ad0)
    #31 globus_l_xio_read_write_callback_kickout <null> (libglobus_xio.so.0+0x0000000199fe)
    #32 globus_i_xio_read_write_callback <null> (libglobus_xio.so.0+0x00000001959b)
    #33 globus_l_xio_driver_op_read_kickout <null> (libglobus_xio.so.0+0x00000003309e)
    #34 globus_xio_driver_finished_read <null> (libglobus_xio.so.0+0x00000006339b)
    #35 globus_l_xio_tcp_finish_read <null> (libglobus_xio.so.0+0x0000000caafb)
    #36 globus_l_xio_tcp_system_read_cb <null> (libglobus_xio.so.0+0x0000000caca0)
    #37 globus_l_xio_system_kickout <null> (libglobus_xio.so.0+0x000000075a91)
    #38 globus_l_callback_thread_poll <null> (libglobus_common.so.0+0x00000002517e)
    #39 globus_l_thread_pool_thread_start <null> (libglobus_common.so.0+0x000000063084)
    #40 thread_starter <null> (libglobus_thread_pthread.so+0x000000003b30)

  Mutex M189 (0x7d90000520a8) created at:
    #0 pthread_mutex_init /home/meloam/llvm/llvm-3.9.0.src/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:1119 (globus-gridftp-server+0x000000433f55)
    #1 apr_thread_mutex_create /home/meloam/lstore/vendor/apr-accre/locks/unix/thread_mutex.c:71:14 (liblio.so.0+0x0000001a8b26)
    #2 lio_create_nl /home/meloam/lstore/src/lio/lio_config.c:973:28 (liblio.so.0+0x00000003a03a)
    #3 lio_create /home/meloam/lstore/src/lio/lio_config.c:1101:10 (liblio.so.0+0x00000003e8b6)
    #4 lio_init /home/meloam/lstore/src/lio/lio_config.c:1397:14 (liblio.so.0+0x00000004125b)
    #5 activate /home/meloam/lstore/binding/gridftp/src/thunk.c:38:5 (libglobus_gridftp_server_lstore.so+0x000000006780)
    #6 globus_l_gfs_lstore_activate /home/meloam/lstore/binding/gridftp/src/lstore_dsi.c:452:18 (libglobus_gridftp_server_lstore.so+0x000000003961)
    #7 globus_module_activate_proxy <null> (libglobus_common.so.0+0x000000047d96)
    #8 globus_extension_activate <null> (libglobus_common.so.0+0x0000000737ce)
    #9 globus_i_gfs_data_new_dsi <null> (libglobus_gridftp_server.so.6+0x0000000317cb)
    #10 globus_i_gfs_data_init <null> (libglobus_gridftp_server.so.6+0x000000031155)
    #11 main <null> (globus-gridftp-server+0x0000004acbc2)

  Thread T46 (tid=23933, running) created by thread T25 at:
    #0 pthread_create /home/meloam/llvm/llvm-3.9.0.src/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:902 (globus-gridftp-server+0x000000425266)
    #1 add_task /home/meloam/lstore/vendor/apr-util-accre/misc/apr_thread_pool.c:575:14 (libgop.so.0+0x00000005c165)
    #2 _opque_start_execution /home/meloam/lstore/src/gop/opque.c:443:13 (libgop.so.0+0x0000000264b3)
    #3 _gop_start_execution /home/meloam/lstore/src/gop/gop.c:217:9 (libgop.so.0+0x00000000efd1)
    #4 gop_waitany /home/meloam/lstore/src/gop/gop.c:368:13 (libgop.so.0+0x000000010885)
    #5 cache_rw_pages /home/meloam/lstore/src/lio/segment/cache.c:498:15 (liblio.so.0+0x000000110b0d)
    #6 cache_flush_range_gop_func /home/meloam/lstore/src/lio/segment/cache.c:2826:35 (liblio.so.0+0x000000130e3c)
    #7 thread_pool_exec_fn /home/meloam/lstore/src/gop/thread_pool_op.c:232:14 (libgop.so.0+0x00000002a7b1)
    #8 thread_pool_func /home/meloam/lstore/vendor/apr-util-accre/misc/apr_thread_pool.c:271:13 (libgop.so.0+0x00000005bd0b)

  Thread T29 (tid=36385, running) created by main thread at:
    #0 pthread_create /home/meloam/llvm/llvm-3.9.0.src/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:902 (globus-gridftp-server+0x000000425266)
    #1 gop_mq_ongoing_create /home/meloam/lstore/src/gop/mq_ongoing.c:690:9 (libgop.so.0+0x000000043188)
    #2 lio_create_nl /home/meloam/lstore/src/lio/lio_config.c:973:28 (liblio.so.0+0x00000003a03a)
    #3 lio_create /home/meloam/lstore/src/lio/lio_config.c:1101:10 (liblio.so.0+0x00000003e8b6)
    #4 lio_init /home/meloam/lstore/src/lio/lio_config.c:1397:14 (liblio.so.0+0x00000004125b)
    #5 activate /home/meloam/lstore/binding/gridftp/src/thunk.c:38:5 (libglobus_gridftp_server_lstore.so+0x000000006780)
    #6 globus_l_gfs_lstore_activate /home/meloam/lstore/binding/gridftp/src/lstore_dsi.c:452:18 (libglobus_gridftp_server_lstore.so+0x000000003961)
    #7 globus_module_activate_proxy <null> (libglobus_common.so.0+0x000000047d96)
    #8 globus_extension_activate <null> (libglobus_common.so.0+0x0000000737ce)
    #9 globus_i_gfs_data_new_dsi <null> (libglobus_gridftp_server.so.6+0x0000000317cb)
    #10 globus_i_gfs_data_init <null> (libglobus_gridftp_server.so.6+0x000000031155)
    #11 main <null> (globus-gridftp-server+0x0000004acbc2)

  Thread T34 (tid=36443, running) created by thread T2 at:
    #0 pthread_create /home/meloam/llvm/llvm-3.9.0.src/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:902 (globus-gridftp-server+0x000000425266)
    #1 globus_l_pthread_thread_create <null> (libglobus_thread_pthread.so+0x0000000032df)
    #2 globus_thread_create <null> (libglobus_common.so.0+0x000000060f71)
    #3 globus_i_thread_start <null> (libglobus_common.so.0+0x0000000633c9)
    #4 globus_l_callback_blocked_cb <null> (libglobus_common.so.0+0x000000026398)
    #5 globus_thread_blocking_space_will_block <null> (libglobus_common.so.0+0x00000005eaa3)
    #6 globus_l_gfs_blocking_dispatch_kickout <null> (libglobus_gridftp_server.so.6+0x000000046843)
    #7 globus_l_gfs_authorize_cb <null> (libglobus_gridftp_server.so.6+0x0000000340c8)
    #8 globus_l_gfs_acl_kickout <null> (libglobus_gridftp_server.so.6+0x00000002a911)
    #9 globus_l_callback_thread_poll <null> (libglobus_common.so.0+0x00000002517e)
    #10 globus_l_thread_pool_thread_start <null> (libglobus_common.so.0+0x000000062cf4)
    #11 thread_starter <null> (libglobus_thread_pthread.so+0x000000003b30)

SUMMARY: ThreadSanitizer: data race /home/meloam/lstore/src/gop/gop.c:692:26 in gop_init