[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