[Lldb-commits] [lldb] [lldb] Make ProcessRunLock recursive on the read side per-thread (PR #201685)
via lldb-commits
lldb-commits at lists.llvm.org
Fri Jun 5 17:51:23 PDT 2026
github-actions[bot] wrote:
<!--PREMERGE ADVISOR COMMENT: Linux-->
# :penguin: Linux x64 Test Results
The build failed before running any tests. Click on a failure below to see the details.
<details>
<summary>tools/lldb/source/Host/CMakeFiles/lldbHost.dir/common/ProcessRunLock.cpp.o</summary>
```
FAILED: tools/lldb/source/Host/CMakeFiles/lldbHost.dir/common/ProcessRunLock.cpp.o
sccache /opt/llvm/bin/clang++ -DHAVE_ROUND -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GLIBCXX_USE_CXX11_ABI=1 -D_GNU_SOURCE -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/lldb/source/Host -I/home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/source/Host -I/home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/include -I/home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/lldb/include -I/home/gha/actions-runner/_work/llvm-project/llvm-project/build/include -I/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include -I/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/../clang/include -I/home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/lldb/../clang/include -I/home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/source -I/home/gha/actions-runner/_work/llvm-project/llvm-project/build/tools/lldb/source -gmlt -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Wno-unknown-pragmas -Wno-strict-aliasing -Wno-vla-extension -O3 -DNDEBUG -std=c++17 -UNDEBUG -fno-exceptions -funwind-tables -fno-rtti -MD -MT tools/lldb/source/Host/CMakeFiles/lldbHost.dir/common/ProcessRunLock.cpp.o -MF tools/lldb/source/Host/CMakeFiles/lldbHost.dir/common/ProcessRunLock.cpp.o.d -o tools/lldb/source/Host/CMakeFiles/lldbHost.dir/common/ProcessRunLock.cpp.o -c /home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/source/Host/common/ProcessRunLock.cpp
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/source/Host/common/ProcessRunLock.cpp:9:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/include/lldb/Host/ProcessRunLock.h:18:
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/DenseMap.h:731:35: error: no member named 'getHashValue' in 'llvm::DenseMapInfo<std::thread::id>'
731 | unsigned BucketNo = KeyInfoT::getHashValue(Val) & Mask;
| ~~~~~~~~~~^
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/DenseMap.h:747:50: note: in instantiation of function template specialization 'llvm::DenseMapBase<llvm::DenseMap<std::thread::id, unsigned int>, std::thread::id, unsigned int, llvm::DenseMapInfo<std::thread::id>, llvm::detail::DenseMapPair<std::thread::id, unsigned int>>::doFind<std::thread::id>' requested here
747 | static_cast<const DenseMapBase *>(this)->doFind(Val));
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/DenseMap.h:239:27: note: in instantiation of function template specialization 'llvm::DenseMapBase<llvm::DenseMap<std::thread::id, unsigned int>, std::thread::id, unsigned int, llvm::DenseMapInfo<std::thread::id>, llvm::detail::DenseMapPair<std::thread::id, unsigned int>>::doFind<std::thread::id>' requested here
239 | if (BucketT *Bucket = doFind(Val))
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/DenseMap.h:226:12: note: in instantiation of function template specialization 'llvm::DenseMapBase<llvm::DenseMap<std::thread::id, unsigned int>, std::thread::id, unsigned int, llvm::DenseMapInfo<std::thread::id>, llvm::detail::DenseMapPair<std::thread::id, unsigned int>>::find_as<std::thread::id>' requested here
226 | return find_as(Val);
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/source/Host/common/ProcessRunLock.cpp:105:33: note: in instantiation of member function 'llvm::DenseMapBase<llvm::DenseMap<std::thread::id, unsigned int>, std::thread::id, unsigned int, llvm::DenseMapInfo<std::thread::id>, llvm::detail::DenseMapPair<std::thread::id, unsigned int>>::find' requested here
105 | auto it = lock->m_recursion.find(self);
| ^
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/source/Host/common/ProcessRunLock.cpp:9:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/include/lldb/Host/ProcessRunLock.h:18:
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/DenseMap.h:737:33: error: no member named 'isEqual' in 'llvm::DenseMapInfo<std::thread::id>'
737 | if (LLVM_LIKELY(KeyInfoT::isEqual(Val, Bucket->getFirst())))
| ~~~~~~~~~~^
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/Support/Compiler.h:332:51: note: expanded from macro 'LLVM_LIKELY'
332 | #define LLVM_LIKELY(EXPR) __builtin_expect((bool)(EXPR), true)
| ^~~~
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/source/Host/common/ProcessRunLock.cpp:9:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/include/lldb/Host/ProcessRunLock.h:18:
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/DenseMap.h:765:35: error: no member named 'getHashValue' in 'llvm::DenseMapInfo<std::thread::id>'
765 | unsigned BucketNo = KeyInfoT::getHashValue(Val) & Mask;
| ~~~~~~~~~~^
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/DenseMap.h:635:9: note: in instantiation of function template specialization 'llvm::DenseMapBase<llvm::DenseMap<std::thread::id, unsigned int>, std::thread::id, unsigned int, llvm::DenseMapInfo<std::thread::id>, llvm::detail::DenseMapPair<std::thread::id, unsigned int>>::LookupBucketFor<std::thread::id>' requested here
635 | if (LookupBucketFor(Key, TheBucket))
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/DenseMap.h:419:12: note: in instantiation of function template specialization 'llvm::DenseMapBase<llvm::DenseMap<std::thread::id, unsigned int>, std::thread::id, unsigned int, llvm::DenseMapInfo<std::thread::id>, llvm::detail::DenseMapPair<std::thread::id, unsigned int>>::lookupOrInsertIntoBucket<const std::thread::id &>' requested here
419 | return lookupOrInsertIntoBucket(Key).first->second;
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/source/Host/common/ProcessRunLock.cpp:121:20: note: in instantiation of member function 'llvm::DenseMapBase<llvm::DenseMap<std::thread::id, unsigned int>, std::thread::id, unsigned int, llvm::DenseMapInfo<std::thread::id>, llvm::detail::DenseMapPair<std::thread::id, unsigned int>>::operator[]' requested here
121 | lock->m_recursion[self] = 1;
| ^
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/source/Host/common/ProcessRunLock.cpp:9:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/include/lldb/Host/ProcessRunLock.h:18:
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/DenseMap.h:776:33: error: no member named 'isEqual' in 'llvm::DenseMapInfo<std::thread::id>'
776 | if (LLVM_LIKELY(KeyInfoT::isEqual(Val, ThisBucket->getFirst()))) {
| ~~~~~~~~~~^
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/Support/Compiler.h:332:51: note: expanded from macro 'LLVM_LIKELY'
332 | #define LLVM_LIKELY(EXPR) __builtin_expect((bool)(EXPR), true)
| ^~~~
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/source/Host/common/ProcessRunLock.cpp:9:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/include/lldb/Host/ProcessRunLock.h:18:
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/DenseMap.h:711:7: error: no matching member function for call to 'LookupBucketFor'
711 | LookupBucketFor(Lookup, TheBucket);
| ^~~~~~~~~~~~~~~
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/DenseMap.h:639:17: note: in instantiation of function template specialization 'llvm::DenseMapBase<llvm::DenseMap<std::thread::id, unsigned int>, std::thread::id, unsigned int, llvm::DenseMapInfo<std::thread::id>, llvm::detail::DenseMapPair<std::thread::id, unsigned int>>::findBucketForInsertion<std::thread::id>' requested here
639 | TheBucket = findBucketForInsertion(Key, TheBucket);
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/DenseMap.h:419:12: note: in instantiation of function template specialization 'llvm::DenseMapBase<llvm::DenseMap<std::thread::id, unsigned int>, std::thread::id, unsigned int, llvm::DenseMapInfo<std::thread::id>, llvm::detail::DenseMapPair<std::thread::id, unsigned int>>::lookupOrInsertIntoBucket<const std::thread::id &>' requested here
419 | return lookupOrInsertIntoBucket(Key).first->second;
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/source/Host/common/ProcessRunLock.cpp:121:20: note: in instantiation of member function 'llvm::DenseMapBase<llvm::DenseMap<std::thread::id, unsigned int>, std::thread::id, unsigned int, llvm::DenseMapInfo<std::thread::id>, llvm::detail::DenseMapPair<std::thread::id, unsigned int>>::operator[]' requested here
121 | lock->m_recursion[self] = 1;
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/DenseMap.h:754:8: note: candidate template ignored: substitution failure [with LookupKeyT = std::thread::id]
754 | bool LookupBucketFor(const LookupKeyT &Val, BucketT *&FoundBucket) {
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/DenseMap.h:523:37: error: no member named 'getHashValue' in 'llvm::DenseMapInfo<std::thread::id>'
523 | unsigned BucketNo = KeyInfoT::getHashValue(OtherB[I].getFirst()) & Mask;
| ~~~~~~~~~~^
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/DenseMap.h:520:68: note: while substituting into a lambda expression here
520 | llvm::densemap::detail::forEachUsed(OtherU, E, [&](unsigned I) {
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/DenseMap.h:691:9: note: in instantiation of member function 'llvm::DenseMapBase<llvm::DenseMap<std::thread::id, unsigned int>, std::thread::id, unsigned int, llvm::DenseMapInfo<std::thread::id>, llvm::detail::DenseMapPair<std::thread::id, unsigned int>>::moveFrom' requested here
691 | Tmp.moveFrom(derived());
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/DenseMap.h:710:13: note: in instantiation of member function 'llvm::DenseMapBase<llvm::DenseMap<std::thread::id, unsigned int>, std::thread::id, unsigned int, llvm::DenseMapInfo<std::thread::id>, llvm::detail::DenseMapPair<std::thread::id, unsigned int>>::grow' requested here
710 | this->grow(NumBuckets * 2);
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/DenseMap.h:639:17: note: in instantiation of function template specialization 'llvm::DenseMapBase<llvm::DenseMap<std::thread::id, unsigned int>, std::thread::id, unsigned int, llvm::DenseMapInfo<std::thread::id>, llvm::detail::DenseMapPair<std::thread::id, unsigned int>>::findBucketForInsertion<std::thread::id>' requested here
639 | TheBucket = findBucketForInsertion(Key, TheBucket);
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/DenseMap.h:419:12: note: in instantiation of function template specialization 'llvm::DenseMapBase<llvm::DenseMap<std::thread::id, unsigned int>, std::thread::id, unsigned int, llvm::DenseMapInfo<std::thread::id>, llvm::detail::DenseMapPair<std::thread::id, unsigned int>>::lookupOrInsertIntoBucket<const std::thread::id &>' requested here
419 | return lookupOrInsertIntoBucket(Key).first->second;
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/source/Host/common/ProcessRunLock.cpp:121:20: note: in instantiation of member function 'llvm::DenseMapBase<llvm::DenseMap<std::thread::id, unsigned int>, std::thread::id, unsigned int, llvm::DenseMapInfo<std::thread::id>, llvm::detail::DenseMapPair<std::thread::id, unsigned int>>::operator[]' requested here
121 | lock->m_recursion[self] = 1;
| ^
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/source/Host/common/ProcessRunLock.cpp:9:
In file included from /home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/include/lldb/Host/ProcessRunLock.h:18:
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/DenseMap.h:599:30: error: no member named 'getHashValue' in 'llvm::DenseMapInfo<std::thread::id>'
599 | auto Ideal = KeyInfoT::getHashValue(BJ.getFirst());
| ~~~~~~~~~~^
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/DenseMap.h:376:5: note: in instantiation of function template specialization 'llvm::DenseMapBase<llvm::DenseMap<std::thread::id, unsigned int>, std::thread::id, unsigned int, llvm::DenseMapInfo<std::thread::id>, llvm::detail::DenseMapPair<std::thread::id, unsigned int>>::eraseFromFilledBucket<(lambda at /home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/DenseMap.h:376:38)>' requested here
376 | eraseFromFilledBucket(TheBucket, [](BucketT &) {});
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/llvm/include/llvm/ADT/DenseMap.h:387:28: note: in instantiation of member function 'llvm::DenseMapBase<llvm::DenseMap<std::thread::id, unsigned int>, std::thread::id, unsigned int, llvm::DenseMapInfo<std::thread::id>, llvm::detail::DenseMapPair<std::thread::id, unsigned int>>::eraseFromFilledBucket' requested here
387 | void erase(iterator I) { eraseFromFilledBucket(&*I); }
| ^
/home/gha/actions-runner/_work/llvm-project/llvm-project/lldb/source/Host/common/ProcessRunLock.cpp:156:27: note: in instantiation of member function 'llvm::DenseMapBase<llvm::DenseMap<std::thread::id, unsigned int>, std::thread::id, unsigned int, llvm::DenseMapInfo<std::thread::id>, llvm::detail::DenseMapPair<std::thread::id, unsigned int>>::erase' requested here
156 | m_lock->m_recursion.erase(it);
| ^
7 errors generated.
```
</details>
If these failures are unrelated to your changes (for example tests are broken or flaky at HEAD), please open an issue at https://github.com/llvm/llvm-project/issues and add the `infrastructure` label.
https://github.com/llvm/llvm-project/pull/201685
More information about the lldb-commits
mailing list