[GH-ISSUE #1997] ThreadSanitizer race with -o use_cache #1007

Closed
opened 2026-03-04 01:50:35 +03:00 by kerem · 1 comment
Owner

Originally created by @gaul on GitHub (Jul 24, 2022).
Original GitHub issue: https://github.com/s3fs-fuse/s3fs-fuse/issues/1997

Found via: ALL_TESTS=1 test/run_tests_using_sanitizers.sh:

WARNING: ThreadSanitizer: data race (pid=357135)
  Write of size 8 at 0x7b080003c940 by thread T86 (mutexes: write M0):
    #0 free <null> (s3fs+0x4f2c17) (BuildId: fec0ffd43ba7199e3ae2bc18b293027eb0a0f8f8)
    #1 OPENSSL_sk_free <null> (libcrypto.so.3+0x1fe4f9) (BuildId: 1cc34c0eccf5c38e231a0926e6acc94da2d9bc94)
    #2 S3fsCurl::HeadRequest(char const*, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, header_nocase_cmp, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >&) /home/gaul/work/s3fs-fuse/src/curl.cpp:3172:87 (s3fs+0x590a7e) (BuildId: fec0ffd43ba7199e3ae2bc18b293027eb0a0f8f8)
    #3 get_object_attribute(char const*, stat*, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, header_nocase_cmp, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >*, bool, bool*, bool) /home/gaul/work/s3fs-fuse/src/s3fs.cpp:385:28 (s3fs+0x54de97) (BuildId: fec0ffd43ba7199e3ae2bc18b293027eb0a0f8f8)
    #4 check_object_access(char const*, int, stat*) /home/gaul/work/s3fs-fuse/src/s3fs.cpp:528:23 (s3fs+0x5620d4) (BuildId: fec0ffd43ba7199e3ae2bc18b293027eb0a0f8f8)
    #5 s3fs_flush(char const*, fuse_file_info*) /home/gaul/work/s3fs-fuse/src/s3fs.cpp:2419:14 (s3fs+0x55d04c) (BuildId: fec0ffd43ba7199e3ae2bc18b293027eb0a0f8f8)
    #6 <null> <null> (libfuse.so.2+0xfd24) (BuildId: 3e8eb5181e5720c90efd95a67ed13b04b03076d9)

  Previous read of size 8 at 0x7b080003c940 by thread T90:
    #0 memcpy <null> (s3fs+0x4ce636) (BuildId: fec0ffd43ba7199e3ae2bc18b293027eb0a0f8f8)
    #1 OPENSSL_sk_dup <null> (libcrypto.so.3+0x1ffd89) (BuildId: 1cc34c0eccf5c38e231a0926e6acc94da2d9bc94)
    #2 S3fsCurl::HeadRequest(char const*, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, header_nocase_cmp, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >&) /home/gaul/work/s3fs-fuse/src/curl.cpp:3172:87 (s3fs+0x590a7e) (BuildId: fec0ffd43ba7199e3ae2bc18b293027eb0a0f8f8)
    #3 get_object_attribute(char const*, stat*, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, header_nocase_cmp, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >*, bool, bool*, bool) /home/gaul/work/s3fs-fuse/src/s3fs.cpp:385:28 (s3fs+0x54de97) (BuildId: fec0ffd43ba7199e3ae2bc18b293027eb0a0f8f8)
    #4 check_object_access(char const*, int, stat*) /home/gaul/work/s3fs-fuse/src/s3fs.cpp:528:23 (s3fs+0x5620d4) (BuildId: fec0ffd43ba7199e3ae2bc18b293027eb0a0f8f8)
    #5 s3fs_flush(char const*, fuse_file_info*) /home/gaul/work/s3fs-fuse/src/s3fs.cpp:2419:14 (s3fs+0x55d04c) (BuildId: fec0ffd43ba7199e3ae2bc18b293027eb0a0f8f8)
    #6 <null> <null> (libfuse.so.2+0xfd24) (BuildId: 3e8eb5181e5720c90efd95a67ed13b04b03076d9)

  Mutex M0 (0x000001a6f170) created at:
    #0 pthread_mutex_init <null> (s3fs+0x4f2158) (BuildId: fec0ffd43ba7199e3ae2bc18b293027eb0a0f8f8)
    #1 S3fsCurl::InitS3fsCurl() /home/gaul/work/s3fs-fuse/src/curl.cpp:142:13 (s3fs+0x57bdf8) (BuildId: fec0ffd43ba7199e3ae2bc18b293027eb0a0f8f8)
    #2 main /home/gaul/work/s3fs-fuse/src/s3fs.cpp:4556:9 (s3fs+0x54f4ad) (BuildId: fec0ffd43ba7199e3ae2bc18b293027eb0a0f8f8)

  Thread T86 (tid=358261, running) created by thread T85 at:
    #0 pthread_create <null> (s3fs+0x4cd866) (BuildId: fec0ffd43ba7199e3ae2bc18b293027eb0a0f8f8)
    #1 <null> <null> (libfuse.so.2+0xc354) (BuildId: 3e8eb5181e5720c90efd95a67ed13b04b03076d9)

  Thread T90 (tid=358306, running) created by thread T8 at:
    #0 pthread_create <null> (s3fs+0x4cd866) (BuildId: fec0ffd43ba7199e3ae2bc18b293027eb0a0f8f8)
    #1 <null> <null> (libfuse.so.2+0xc354) (BuildId: 3e8eb5181e5720c90efd95a67ed13b04b03076d9)
Originally created by @gaul on GitHub (Jul 24, 2022). Original GitHub issue: https://github.com/s3fs-fuse/s3fs-fuse/issues/1997 Found via: `ALL_TESTS=1 test/run_tests_using_sanitizers.sh`: ``` WARNING: ThreadSanitizer: data race (pid=357135) Write of size 8 at 0x7b080003c940 by thread T86 (mutexes: write M0): #0 free <null> (s3fs+0x4f2c17) (BuildId: fec0ffd43ba7199e3ae2bc18b293027eb0a0f8f8) #1 OPENSSL_sk_free <null> (libcrypto.so.3+0x1fe4f9) (BuildId: 1cc34c0eccf5c38e231a0926e6acc94da2d9bc94) #2 S3fsCurl::HeadRequest(char const*, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, header_nocase_cmp, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >&) /home/gaul/work/s3fs-fuse/src/curl.cpp:3172:87 (s3fs+0x590a7e) (BuildId: fec0ffd43ba7199e3ae2bc18b293027eb0a0f8f8) #3 get_object_attribute(char const*, stat*, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, header_nocase_cmp, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >*, bool, bool*, bool) /home/gaul/work/s3fs-fuse/src/s3fs.cpp:385:28 (s3fs+0x54de97) (BuildId: fec0ffd43ba7199e3ae2bc18b293027eb0a0f8f8) #4 check_object_access(char const*, int, stat*) /home/gaul/work/s3fs-fuse/src/s3fs.cpp:528:23 (s3fs+0x5620d4) (BuildId: fec0ffd43ba7199e3ae2bc18b293027eb0a0f8f8) #5 s3fs_flush(char const*, fuse_file_info*) /home/gaul/work/s3fs-fuse/src/s3fs.cpp:2419:14 (s3fs+0x55d04c) (BuildId: fec0ffd43ba7199e3ae2bc18b293027eb0a0f8f8) #6 <null> <null> (libfuse.so.2+0xfd24) (BuildId: 3e8eb5181e5720c90efd95a67ed13b04b03076d9) Previous read of size 8 at 0x7b080003c940 by thread T90: #0 memcpy <null> (s3fs+0x4ce636) (BuildId: fec0ffd43ba7199e3ae2bc18b293027eb0a0f8f8) #1 OPENSSL_sk_dup <null> (libcrypto.so.3+0x1ffd89) (BuildId: 1cc34c0eccf5c38e231a0926e6acc94da2d9bc94) #2 S3fsCurl::HeadRequest(char const*, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, header_nocase_cmp, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >&) /home/gaul/work/s3fs-fuse/src/curl.cpp:3172:87 (s3fs+0x590a7e) (BuildId: fec0ffd43ba7199e3ae2bc18b293027eb0a0f8f8) #3 get_object_attribute(char const*, stat*, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, header_nocase_cmp, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >*, bool, bool*, bool) /home/gaul/work/s3fs-fuse/src/s3fs.cpp:385:28 (s3fs+0x54de97) (BuildId: fec0ffd43ba7199e3ae2bc18b293027eb0a0f8f8) #4 check_object_access(char const*, int, stat*) /home/gaul/work/s3fs-fuse/src/s3fs.cpp:528:23 (s3fs+0x5620d4) (BuildId: fec0ffd43ba7199e3ae2bc18b293027eb0a0f8f8) #5 s3fs_flush(char const*, fuse_file_info*) /home/gaul/work/s3fs-fuse/src/s3fs.cpp:2419:14 (s3fs+0x55d04c) (BuildId: fec0ffd43ba7199e3ae2bc18b293027eb0a0f8f8) #6 <null> <null> (libfuse.so.2+0xfd24) (BuildId: 3e8eb5181e5720c90efd95a67ed13b04b03076d9) Mutex M0 (0x000001a6f170) created at: #0 pthread_mutex_init <null> (s3fs+0x4f2158) (BuildId: fec0ffd43ba7199e3ae2bc18b293027eb0a0f8f8) #1 S3fsCurl::InitS3fsCurl() /home/gaul/work/s3fs-fuse/src/curl.cpp:142:13 (s3fs+0x57bdf8) (BuildId: fec0ffd43ba7199e3ae2bc18b293027eb0a0f8f8) #2 main /home/gaul/work/s3fs-fuse/src/s3fs.cpp:4556:9 (s3fs+0x54f4ad) (BuildId: fec0ffd43ba7199e3ae2bc18b293027eb0a0f8f8) Thread T86 (tid=358261, running) created by thread T85 at: #0 pthread_create <null> (s3fs+0x4cd866) (BuildId: fec0ffd43ba7199e3ae2bc18b293027eb0a0f8f8) #1 <null> <null> (libfuse.so.2+0xc354) (BuildId: 3e8eb5181e5720c90efd95a67ed13b04b03076d9) Thread T90 (tid=358306, running) created by thread T8 at: #0 pthread_create <null> (s3fs+0x4cd866) (BuildId: fec0ffd43ba7199e3ae2bc18b293027eb0a0f8f8) #1 <null> <null> (libfuse.so.2+0xc354) (BuildId: 3e8eb5181e5720c90efd95a67ed13b04b03076d9) ```
kerem closed this issue 2026-03-04 01:50:35 +03:00
Author
Owner

@ggtakec commented on GitHub (Jul 16, 2023):

@gaul Consolidate this issue into #2220.

<!-- gh-comment-id:1637091877 --> @ggtakec commented on GitHub (Jul 16, 2023): @gaul Consolidate this issue into #2220.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/s3fs-fuse#1007
No description provided.