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 _rs_simple_load #143

Closed PerilousApricot closed 7 years ago

PerilousApricot commented 7 years ago
WARNING: ThreadSanitizer: data race (pid=38141)
  Write of size 8 at 0x7d280000eec0 by thread T31 (mutexes: write M199):
    #0 _rs_simple_load /home/meloam/lstore/src/lio/rs/simple.c:895:20 (liblio.so.0+0x000000105d4b)
    #1 _rs_simple_refresh /home/meloam/lstore/src/lio/rs/simple.c:961:15 (liblio.so.0+0x0000001024f5)
    #2 rss_check_thread /home/meloam/lstore/src/lio/rs/simple.c:845:9 (liblio.so.0+0x000000105680)

  Previous read of size 8 at 0x7d280000eec0 by main thread (mutexes: write M176):
    #0 rs_simple_destroy /home/meloam/lstore/src/lio/rs/simple.c:979:5 (liblio.so.0+0x0000001067ba)
    #1 lio_destroy_nl /home/meloam/lstore/src/lio/lio_config.c:766:9 (liblio.so.0+0x00000003d8ae)
    #2 lio_destroy /home/meloam/lstore/src/lio/lio_config.c:836:5 (liblio.so.0+0x00000003e816)
    #3 lio_shutdown /home/meloam/lstore/src/lio/lio_config.c:1431:5 (liblio.so.0+0x0000000415e9)
    #4 deactivate /home/meloam/lstore/binding/gridftp/src/thunk.c:77:5 (libglobus_gridftp_server_lstore.so+0x000000006adf)
    #5 globus_l_gfs_lstore_deactivate /home/meloam/lstore/binding/gridftp/src/lstore_dsi.c:488:18 (libglobus_gridftp_server_lstore.so+0x000000003ab8)
    #6 globus_l_extension_shutdown_extension <null> (libglobus_common.so.0+0x000000074ff4)
    #7 globus_l_extension_deactivate_proxy <null> (libglobus_common.so.0+0x0000000748e4)
    #8 globus_module_deactivate <null> (libglobus_common.so.0+0x000000048b4d)
    #9 globus_module_deactivate_all <null> (libglobus_common.so.0+0x000000048e3a)
    #10 main <null> (globus-gridftp-server+0x0000004ad69e)

  Location is heap block of size 152 at 0x7d280000eec0 allocated by main thread:
    #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 rs_simple_create /home/meloam/lstore/src/lio/rs/simple.c:1016:5 (liblio.so.0+0x000000106a6e)
    #2 lio_create_nl /home/meloam/lstore/src/lio/lio_config.c:1006:19 (liblio.so.0+0x00000003aae9)
    #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)

  Mutex M199 (0x7d90000760a8) 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:1006:19 (liblio.so.0+0x00000003aae9)
    #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)

  Mutex M176 (0x7d90000160a8) 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 activate /home/meloam/lstore/binding/gridftp/src/thunk.c:38:5 (libglobus_gridftp_server_lstore.so+0x000000006780)
    #3 globus_l_gfs_lstore_activate /home/meloam/lstore/binding/gridftp/src/lstore_dsi.c:452:18 (libglobus_gridftp_server_lstore.so+0x000000003961)
    #4 globus_module_activate_proxy <null> (libglobus_common.so.0+0x000000047d96)
    #5 globus_extension_activate <null> (libglobus_common.so.0+0x0000000737ce)
    #6 globus_i_gfs_data_new_dsi <null> (libglobus_gridftp_server.so.6+0x0000000317cb)
    #7 globus_i_gfs_data_init <null> (libglobus_gridftp_server.so.6+0x000000031155)
    #8 main <null> (globus-gridftp-server+0x0000004acbc2)

  Thread T31 (tid=38177, 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 rs_simple_create /home/meloam/lstore/src/lio/rs/simple.c:1063:5 (liblio.so.0+0x0000001076f0)
    #2 lio_create_nl /home/meloam/lstore/src/lio/lio_config.c:1006:19 (liblio.so.0+0x00000003aae9)
    #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)

SUMMARY: ThreadSanitizer: data race /home/meloam/lstore/src/lio/rs/simple.c:895:20 in _rs_simple_load
tacketar commented 7 years ago

Fixed with patch 2af31f0681fd405d066bf221b08f40fb32d66b03

tacketar commented 7 years ago

I'm pretty sure this was fixed long ago and the patch was just recently merged.