google / re2

RE2 is a fast, safe, thread-friendly alternative to backtracking regular expression engines like those used in PCRE, Perl, and Python. It is a C++ library.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Tsan crash in re2::DFA::AnalyzeSearchHelper (actually in abseil)

rschu1ze opened this issue · comments

re2 is extensively used by ClickHouse and (indirectly) subject to our large-scale unit/component/integration testing. We recently ran across a sporadic thread sanitizer assert (ClickHouse/ClickHouse#54623, abbreviated stack below), which we first thought could be related to re2. Turned out, it is an open issue with absl's synchronization (google/sanitizers#953). re2 recently moved from its own lock implementation to abseil's locking. Since I could not find this issue in re2's GitHub and because other users might run into similar issues, allow me to register it here + immediately close the report.

==================
WARNING: ThreadSanitizer: data race (pid=723)
  Atomic write of size 4 at 0x7fad1572a140 by thread T482 (mutexes: read M0):
    #0 int std::__1::__cxx_atomic_fetch_add[abi:v15000]<int>(std::__1::__cxx_atomic_base_impl<int>*, int, std::__1::memory_order) build_docker/./contrib/llvm-project/libcxx/include/atomic:1009:12 (clickhouse+0x2029e7c3) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #1 std::__1::__atomic_base<int, true>::fetch_add[abi:v15000](int, std::__1::memory_order) build_docker/./contrib/llvm-project/libcxx/include/atomic:1687:17 (clickhouse+0x2029e7c3)
    #2 absl::lts_20211102::synchronization_internal::Waiter::Post() build_docker/./contrib/abseil-cpp/absl/synchronization/internal/waiter.cc:110:14 (clickhouse+0x2029e7c3)
    #3 AbslInternalPerThreadSemPost_lts_20211102 build_docker/./contrib/abseil-cpp/absl/synchronization/internal/per_thread_sem.cc:73:64 (clickhouse+0x2029de3d) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #4 absl::lts_20211102::synchronization_internal::PerThreadSem::Post(absl::lts_20211102::base_internal::ThreadIdentity*) build_docker/./contrib/abseil-cpp/absl/synchronization/internal/per_thread_sem.h:107:3 (clickhouse+0x2029866c) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #5 absl::lts_20211102::Mutex::IncrementSynchSem(absl::lts_20211102::Mutex*, absl::lts_20211102::base_internal::PerThreadSynch*) build_docker/./contrib/abseil-cpp/absl/synchronization/mutex.cc:566:3 (clickhouse+0x2029866c)
    #6 absl::lts_20211102::Mutex::Wakeup(absl::lts_20211102::base_internal::PerThreadSynch*) build_docker/./contrib/abseil-cpp/absl/synchronization/mutex.cc:1156:3 (clickhouse+0x2029866c)
    #7 absl::lts_20211102::Mutex::UnlockSlow(absl::lts_20211102::SynchWaitParams*) build_docker/./contrib/abseil-cpp/absl/synchronization/mutex.cc:2321:19 (clickhouse+0x2029d928) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #8 absl::lts_20211102::Mutex::Unlock() build_docker/./contrib/abseil-cpp/absl/synchronization/mutex.cc:1712:11 (clickhouse+0x2029a70e) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #9 absl::lts_20211102::MutexLock::~MutexLock() build_docker/./contrib/abseil-cpp/absl/synchronization/mutex.h:543:52 (clickhouse+0x201d3ccc) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #10 re2::DFA::AnalyzeSearchHelper(re2::DFA::SearchParams*, re2::DFA::StartInfo*, unsigned int) build_docker/./contrib/re2/re2/dfa.cc:1746:1 (clickhouse+0x201d3ccc)
    #11 re2::DFA::AnalyzeSearch(re2::DFA::SearchParams*) build_docker/./contrib/re2/re2/dfa.cc:1693:8 (clickhouse+0x201d38f0) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #12 re2::DFA::Search(std::__1::basic_string_view<char, std::__1::char_traits<char>>, std::__1::basic_string_view<char, std::__1::char_traits<char>>, bool, bool, bool, bool*, char const**, re2::SparseSetT<void>*) build_docker/./contrib/re2/re2/dfa.cc:1772:8 (clickhouse+0x201d3e4e) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #13 re2::Prog::SearchDFA(std::__1::basic_string_view<char, std::__1::char_traits<char>>, std::__1::basic_string_view<char, std::__1::char_traits<char>>, re2::Prog::Anchor, re2::Prog::MatchKind, std::__1::basic_string_view<char, std::__1::char_traits<char>>*, bool*, re2::SparseSetT<void>*) build_docker/./contrib/re2/re2/dfa.cc:1884:23 (clickhouse+0x201d42b0) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #14 re2::RE2::Match(std::__1::basic_string_view<char, std::__1::char_traits<char>>, unsigned long, unsigned long, re2::RE2::Anchor, std::__1::basic_string_view<char, std::__1::char_traits<char>>*, int) const build_docker/./contrib/re2/re2/re2.cc:795:18 (clickhouse+0x201afb09) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #15 re2::RE2::DoMatch(std::__1::basic_string_view<char, std::__1::char_traits<char>>, re2::RE2::Anchor, unsigned long*, re2::RE2::Arg const* const*, int) const build_docker/./contrib/re2/re2/re2.cc:935:8 (clickhouse+0x201aed47) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #16 re2::RE2::FindAndConsumeN(std::__1::basic_string_view<char, std::__1::char_traits<char>>*, re2::RE2 const&, re2::RE2::Arg const* const*, int) build_docker/./contrib/re2/re2/re2.cc:432:10 (clickhouse+0x201af059) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #17 bool re2::RE2::Apply<bool (*)(std::__1::basic_string_view<char, std::__1::char_traits<char>>*, re2::RE2 const&, re2::RE2::Arg const* const*, int), std::__1::basic_string_view<char, std::__1::char_traits<char>>*, re2::RE2::Arg>(bool (*)(std::__1::basic_string_view<char, std::__1::char_traits<char>>*, re2::RE2 const&, re2::RE2::Arg const* const*, int), std::__1::basic_string_view<char, std::__1::char_traits<char>>*, re2::RE2 const&, re2::RE2::Arg const&) build_docker/./contrib/re2/re2/re2.h:360:12 (clickhouse+0xfd80bb5) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #18 bool re2::RE2::FindAndConsume<std::__1::basic_string_view<char, std::__1::char_traits<char>>*>(std::__1::basic_string_view<char, std::__1::char_traits<char>>*, re2::RE2 const&, std::__1::basic_string_view<char, std::__1::char_traits<char>>*&&) build_docker/./contrib/re2/re2/re2.h:453:12 (clickhouse+0xfd80bb5)
    #19 DB::makeRegexpPatternFromGlobs(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) build_docker/./src/Common/parseGlobs.cpp:40:12 (clickhouse+0xfd80bb5)
[...]

  Previous write of size 8 at 0x7fad1572a140 by thread T1586 (mutexes: read M1):
    #0 mmap <null> (clickhouse+0x7d0b414) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #1 absl::lts_20211102::base_internal::DoAllocWithArena(unsigned long, absl::lts_20211102::base_internal::LowLevelAlloc::Arena*) build_docker/./contrib/abseil-cpp/absl/base/internal/low_level_alloc.cc:562:21 (clickhouse+0x202a4395) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #2 absl::lts_20211102::base_internal::LowLevelAlloc::Alloc(unsigned long) build_docker/./contrib/abseil-cpp/absl/base/internal/low_level_alloc.cc:606:18 (clickhouse+0x2347443e) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #3 absl::lts_20211102::synchronization_internal::NewThreadIdentity() build_docker/./contrib/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc:113:24 (clickhouse+0x2029e1f8) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #4 absl::lts_20211102::synchronization_internal::CreateThreadIdentity() build_docker/./contrib/abseil-cpp/absl/synchronization/internal/create_thread_identity.cc:129:45 (clickhouse+0x2029e1f8)
    #5 absl::lts_20211102::synchronization_internal::GetOrCreateCurrentThreadIdentity() build_docker/./contrib/abseil-cpp/absl/synchronization/internal/create_thread_identity.h:51:12 (clickhouse+0x20298d83) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #6 absl::lts_20211102::Synch_GetPerThread() build_docker/./contrib/abseil-cpp/absl/synchronization/mutex.cc:538:30 (clickhouse+0x20298d83)
    #7 absl::lts_20211102::Synch_GetPerThreadAnnotated(absl::lts_20211102::Mutex*) build_docker/./contrib/abseil-cpp/absl/synchronization/mutex.cc:546:23 (clickhouse+0x20298d83)
    #8 absl::lts_20211102::Mutex::LockSlowWithDeadline(absl::lts_20211102::MuHowS const*, absl::lts_20211102::Condition const*, absl::lts_20211102::synchronization_internal::KernelTimeout, int) build_docker/./contrib/abseil-cpp/absl/synchronization/mutex.cc:1865:42 (clickhouse+0x20298d83)
    #9 absl::lts_20211102::Mutex::LockSlow(absl::lts_20211102::MuHowS const*, absl::lts_20211102::Condition const*, int) build_docker/./contrib/abseil-cpp/absl/synchronization/mutex.cc:1768:3 (clickhouse+0x2029cc91) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #10 absl::lts_20211102::Mutex::Lock() build_docker/./contrib/abseil-cpp/absl/synchronization/mutex.cc:1481:13 (clickhouse+0x202987d9) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #11 absl::lts_20211102::MutexLock::MutexLock(absl::lts_20211102::Mutex*) build_docker/./contrib/abseil-cpp/absl/synchronization/mutex.h:526:16 (clickhouse+0x201dc2d8) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #12 re2::DFA::RunStateOnByteUnlocked(re2::DFA::State*, int) build_docker/./contrib/re2/re2/dfa.cc:1015:19 (clickhouse+0x201dc2d8)
    #13 bool re2::DFA::InlinedSearchLoop<true, false, true>(re2::DFA::SearchParams*) build_docker/./contrib/re2/re2/dfa.cc:1425:12 (clickhouse+0x201dc2d8)
    #14 re2::DFA::SearchTFT(re2::DFA::SearchParams*) build_docker/./contrib/re2/re2/dfa.cc:1585:10 (clickhouse+0x201d3600) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #15 re2::DFA::FastSearchLoop(re2::DFA::SearchParams*) build_docker/./contrib/re2/re2/dfa.cc:1613:10 (clickhouse+0x201d3ee4) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #16 re2::DFA::Search(std::__1::basic_string_view<char, std::__1::char_traits<char>>, std::__1::basic_string_view<char, std::__1::char_traits<char>>, bool, bool, bool, bool*, char const**, re2::SparseSetT<void>*) build_docker/./contrib/re2/re2/dfa.cc:1787:14 (clickhouse+0x201d3ee4)
    #17 re2::Prog::SearchDFA(std::__1::basic_string_view<char, std::__1::char_traits<char>>, std::__1::basic_string_view<char, std::__1::char_traits<char>>, re2::Prog::Anchor, re2::Prog::MatchKind, std::__1::basic_string_view<char, std::__1::char_traits<char>>*, bool*, re2::SparseSetT<void>*) build_docker/./contrib/re2/re2/dfa.cc:1884:23 (clickhouse+0x201d42b0) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #18 re2::RE2::Match(std::__1::basic_string_view<char, std::__1::char_traits<char>>, unsigned long, unsigned long, re2::RE2::Anchor, std::__1::basic_string_view<char, std::__1::char_traits<char>>*, int) const build_docker/./contrib/re2/re2/re2.cc:769:19 (clickhouse+0x201afa6b) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #19 re2::RE2::DoMatch(std::__1::basic_string_view<char, std::__1::char_traits<char>>, re2::RE2::Anchor, unsigned long*, re2::RE2::Arg const* const*, int) const build_docker/./contrib/re2/re2/re2.cc:935:8 (clickhouse+0x201aed47) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #20 re2::RE2::FindAndConsumeN(std::__1::basic_string_view<char, std::__1::char_traits<char>>*, re2::RE2 const&, re2::RE2::Arg const* const*, int) build_docker/./contrib/re2/re2/re2.cc:432:10 (clickhouse+0x201af059) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #21 bool re2::RE2::Apply<bool (*)(std::__1::basic_string_view<char, std::__1::char_traits<char>>*, re2::RE2 const&, re2::RE2::Arg const* const*, int), std::__1::basic_string_view<char, std::__1::char_traits<char>>*, re2::RE2::Arg>(bool (*)(std::__1::basic_string_view<char, std::__1::char_traits<char>>*, re2::RE2 const&, re2::RE2::Arg const* const*, int), std::__1::basic_string_view<char, std::__1::char_traits<char>>*, re2::RE2 const&, re2::RE2::Arg const&) build_docker/./contrib/re2/re2/re2.h:360:12 (clickhouse+0xfd80bb5) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #22 bool re2::RE2::FindAndConsume<std::__1::basic_string_view<char, std::__1::char_traits<char>>*>(std::__1::basic_string_view<char, std::__1::char_traits<char>>*, re2::RE2 const&, std::__1::basic_string_view<char, std::__1::char_traits<char>>*&&) build_docker/./contrib/re2/re2/re2.h:453:12 (clickhouse+0xfd80bb5)
    #23 DB::makeRegexpPatternFromGlobs(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) build_docker/./src/Common/parseGlobs.cpp:40:12 (clickhouse+0xfd80bb5)
    #24 DB::(anonymous namespace)::listFilesWithRegexpMatchingImpl(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, unsigned long&, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>>&, bool) build_docker/./src/Storages/StorageFile.cpp:205:19 (clickhouse+0x1a25dbf7) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #25 DB::(anonymous namespace)::listFilesWithRegexpMatching(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, unsigned long&) build_docker/./src/Storages/StorageFile.cpp:268:5 (clickhouse+0x1a250fae) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #26 DB::StorageFile::getPathsList(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::shared_ptr<DB::Context const>, unsigned long&) build_docker/./src/Storages/StorageFile.cpp:433:17 (clickhouse+0x1a250fae)
[...]

  Mutex M0 (0x7b30006f7fb8) created at:
    #0 __tsan_mutex_create <null> (clickhouse+0x7d26f5f) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #1 absl::lts_20211102::Mutex::Mutex() build_docker/./contrib/abseil-cpp/absl/synchronization/mutex.h:935:3 (clickhouse+0x201d0149) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #2 re2::DFA::DFA(re2::Prog*, re2::Prog::MatchKind, long) build_docker/./contrib/re2/re2/dfa.cc:417:6 (clickhouse+0x201d0149)
    #3 re2::Prog::GetDFA(re2::Prog::MatchKind)::$_2::operator()(re2::Prog*) const build_docker/./contrib/re2/re2/dfa.cc:1819:34 (clickhouse+0x201d6380) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #4 decltype(std::declval<re2::Prog::GetDFA(re2::Prog::MatchKind)::$_2>()(std::declval<re2::Prog*>())) absl::lts_20211102::base_internal::Callable::Invoke<re2::Prog::GetDFA(re2::Prog::MatchKind)::$_2, re2::Prog*>(re2::Prog::GetDFA(re2::Prog::MatchKind)::$_2&&, re2::Prog*&&) build_docker/./contrib/abseil-cpp/absl/base/internal/invoke.h:153:12 (clickhouse+0x201d6380)
    #5 decltype(Invoker<re2::Prog::GetDFA(re2::Prog::MatchKind)::$_2, re2::Prog*>::type::Invoke(std::declval<re2::Prog::GetDFA(re2::Prog::MatchKind)::$_2>(), std::declval<re2::Prog*>())) absl::lts_20211102::base_internal::invoke<re2::Prog::GetDFA(re2::Prog::MatchKind)::$_2, re2::Prog*>(re2::Prog::GetDFA(re2::Prog::MatchKind)::$_2&&, re2::Prog*&&) build_docker/./contrib/abseil-cpp/absl/base/internal/invoke.h:180:10 (clickhouse+0x201d6380)
    #6 void absl::lts_20211102::base_internal::CallOnceImpl<re2::Prog::GetDFA(re2::Prog::MatchKind)::$_2, re2::Prog*>(std::__1::atomic<unsigned int>*, absl::lts_20211102::base_internal::SchedulingMode, re2::Prog::GetDFA(re2::Prog::MatchKind)::$_2&&, re2::Prog*&&) build_docker/./contrib/abseil-cpp/absl/base/call_once.h:178:5 (clickhouse+0x201d6380)
    #7 void absl::lts_20211102::call_once<re2::Prog::GetDFA(re2::Prog::MatchKind)::$_2, re2::Prog*>(absl::lts_20211102::once_flag&, re2::Prog::GetDFA(re2::Prog::MatchKind)::$_2&&, re2::Prog*&&) build_docker/./contrib/abseil-cpp/absl/base/call_once.h:210:5 (clickhouse+0x201d4403) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #8 re2::Prog::GetDFA(re2::Prog::MatchKind) build_docker/./contrib/re2/re2/dfa.cc:1815:5 (clickhouse+0x201d4403)
    #9 re2::Prog::SearchDFA(std::__1::basic_string_view<char, std::__1::char_traits<char>>, std::__1::basic_string_view<char, std::__1::char_traits<char>>, re2::Prog::Anchor, re2::Prog::MatchKind, std::__1::basic_string_view<char, std::__1::char_traits<char>>*, bool*, re2::SparseSetT<void>*) build_docker/./contrib/re2/re2/dfa.cc:1882:14 (clickhouse+0x201d4403)
    #10 re2::RE2::Match(std::__1::basic_string_view<char, std::__1::char_traits<char>>, unsigned long, unsigned long, re2::RE2::Anchor, std::__1::basic_string_view<char, std::__1::char_traits<char>>*, int) const build_docker/./contrib/re2/re2/re2.cc:795:18 (clickhouse+0x201afb09) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #11 re2::RE2::DoMatch(std::__1::basic_string_view<char, std::__1::char_traits<char>>, re2::RE2::Anchor, unsigned long*, re2::RE2::Arg const* const*, int) const build_docker/./contrib/re2/re2/re2.cc:935:8 (clickhouse+0x201aed47) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #12 re2::RE2::FindAndConsumeN(std::__1::basic_string_view<char, std::__1::char_traits<char>>*, re2::RE2 const&, re2::RE2::Arg const* const*, int) build_docker/./contrib/re2/re2/re2.cc:432:10 (clickhouse+0x201af059) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #13 bool re2::RE2::Apply<bool (*)(std::__1::basic_string_view<char, std::__1::char_traits<char>>*, re2::RE2 const&, re2::RE2::Arg const* const*, int), std::__1::basic_string_view<char, std::__1::char_traits<char>>*, re2::RE2::Arg>(bool (*)(std::__1::basic_string_view<char, std::__1::char_traits<char>>*, re2::RE2 const&, re2::RE2::Arg const* const*, int), std::__1::basic_string_view<char, std::__1::char_traits<char>>*, re2::RE2 const&, re2::RE2::Arg const&) build_docker/./contrib/re2/re2/re2.h:360:12 (clickhouse+0xfd80bb5) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #14 bool re2::RE2::FindAndConsume<std::__1::basic_string_view<char, std::__1::char_traits<char>>*>(std::__1::basic_string_view<char, std::__1::char_traits<char>>*, re2::RE2 const&, std::__1::basic_string_view<char, std::__1::char_traits<char>>*&&) build_docker/./contrib/re2/re2/re2.h:453:12 (clickhouse+0xfd80bb5)
    #15 DB::makeRegexpPatternFromGlobs(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) build_docker/./src/Common/parseGlobs.cpp:40:12 (clickhouse+0xfd80bb5)
[...]

  Mutex M1 (0x7b30004381b8) created at:
    #0 __tsan_mutex_create <null> (clickhouse+0x7d26f5f) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #1 absl::lts_20211102::Mutex::Mutex() build_docker/./contrib/abseil-cpp/absl/synchronization/mutex.h:935:3 (clickhouse+0x201d0149) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #2 re2::DFA::DFA(re2::Prog*, re2::Prog::MatchKind, long) build_docker/./contrib/re2/re2/dfa.cc:417:6 (clickhouse+0x201d0149)
    #3 re2::Prog::GetDFA(re2::Prog::MatchKind)::$_0::operator()(re2::Prog*) const build_docker/./contrib/re2/re2/dfa.cc:1806:30 (clickhouse+0x201d6172) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #4 decltype(std::declval<re2::Prog::GetDFA(re2::Prog::MatchKind)::$_0>()(std::declval<re2::Prog*>())) absl::lts_20211102::base_internal::Callable::Invoke<re2::Prog::GetDFA(re2::Prog::MatchKind)::$_0, re2::Prog*>(re2::Prog::GetDFA(re2::Prog::MatchKind)::$_0&&, re2::Prog*&&) build_docker/./contrib/abseil-cpp/absl/base/internal/invoke.h:153:12 (clickhouse+0x201d6172)
    #5 decltype(Invoker<re2::Prog::GetDFA(re2::Prog::MatchKind)::$_0, re2::Prog*>::type::Invoke(std::declval<re2::Prog::GetDFA(re2::Prog::MatchKind)::$_0>(), std::declval<re2::Prog*>())) absl::lts_20211102::base_internal::invoke<re2::Prog::GetDFA(re2::Prog::MatchKind)::$_0, re2::Prog*>(re2::Prog::GetDFA(re2::Prog::MatchKind)::$_0&&, re2::Prog*&&) build_docker/./contrib/abseil-cpp/absl/base/internal/invoke.h:180:10 (clickhouse+0x201d6172)
    #6 void absl::lts_20211102::base_internal::CallOnceImpl<re2::Prog::GetDFA(re2::Prog::MatchKind)::$_0, re2::Prog*>(std::__1::atomic<unsigned int>*, absl::lts_20211102::base_internal::SchedulingMode, re2::Prog::GetDFA(re2::Prog::MatchKind)::$_0&&, re2::Prog*&&) build_docker/./contrib/abseil-cpp/absl/base/call_once.h:178:5 (clickhouse+0x201d6172)
    #7 void absl::lts_20211102::call_once<re2::Prog::GetDFA(re2::Prog::MatchKind)::$_0, re2::Prog*>(absl::lts_20211102::once_flag&, re2::Prog::GetDFA(re2::Prog::MatchKind)::$_0&&, re2::Prog*&&) build_docker/./contrib/abseil-cpp/absl/base/call_once.h:210:5 (clickhouse+0x201d4425) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #8 re2::Prog::GetDFA(re2::Prog::MatchKind) build_docker/./contrib/re2/re2/dfa.cc:1805:5 (clickhouse+0x201d4425)
    #9 re2::Prog::SearchDFA(std::__1::basic_string_view<char, std::__1::char_traits<char>>, std::__1::basic_string_view<char, std::__1::char_traits<char>>, re2::Prog::Anchor, re2::Prog::MatchKind, std::__1::basic_string_view<char, std::__1::char_traits<char>>*, bool*, re2::SparseSetT<void>*) build_docker/./contrib/re2/re2/dfa.cc:1882:14 (clickhouse+0x201d4425)
    #10 re2::RE2::Match(std::__1::basic_string_view<char, std::__1::char_traits<char>>, unsigned long, unsigned long, re2::RE2::Anchor, std::__1::basic_string_view<char, std::__1::char_traits<char>>*, int) const build_docker/./contrib/re2/re2/re2.cc:769:19 (clickhouse+0x201afa6b) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #11 re2::RE2::DoMatch(std::__1::basic_string_view<char, std::__1::char_traits<char>>, re2::RE2::Anchor, unsigned long*, re2::RE2::Arg const* const*, int) const build_docker/./contrib/re2/re2/re2.cc:935:8 (clickhouse+0x201aed47) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #12 re2::RE2::FindAndConsumeN(std::__1::basic_string_view<char, std::__1::char_traits<char>>*, re2::RE2 const&, re2::RE2::Arg const* const*, int) build_docker/./contrib/re2/re2/re2.cc:432:10 (clickhouse+0x201af059) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #13 bool re2::RE2::Apply<bool (*)(std::__1::basic_string_view<char, std::__1::char_traits<char>>*, re2::RE2 const&, re2::RE2::Arg const* const*, int), std::__1::basic_string_view<char, std::__1::char_traits<char>>*, re2::RE2::Arg>(bool (*)(std::__1::basic_string_view<char, std::__1::char_traits<char>>*, re2::RE2 const&, re2::RE2::Arg const* const*, int), std::__1::basic_string_view<char, std::__1::char_traits<char>>*, re2::RE2 const&, re2::RE2::Arg const&) build_docker/./contrib/re2/re2/re2.h:360:12 (clickhouse+0xfd80bb5) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
    #14 bool re2::RE2::FindAndConsume<std::__1::basic_string_view<char, std::__1::char_traits<char>>*>(std::__1::basic_string_view<char, std::__1::char_traits<char>>*, re2::RE2 const&, std::__1::basic_string_view<char, std::__1::char_traits<char>>*&&) build_docker/./contrib/re2/re2/re2.h:453:12 (clickhouse+0xfd80bb5)
    #15 DB::makeRegexpPatternFromGlobs(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) build_docker/./src/Common/parseGlobs.cpp:40:12 (clickhouse+0xfd80bb5)
    #16 DB::StorageS3Source::DisclosedGlobIterator::Impl::Impl(DB::S3::Client const&, DB::S3::URI const&, std::__1::shared_ptr<DB::IAST>&, DB::NamesAndTypesList const&, std::__1::shared_ptr<DB::Context const>, std::__1::vector<DB::StorageS3Source::KeyWithInfo, std::__1::allocator<DB::StorageS3Source::KeyWithInfo>>*, DB::S3Settings::RequestSettings const&, std::__1::function<void (DB::FileProgress)>) build_docker/./src/Storages/StorageS3.cpp:168:46 (clickhouse+0x1a4f30e1) (BuildId: 19b366acaf6df2e2c42d1de25398d5fd4cedfc70)
[...]
==================