We're seeing memory errors caused by the RLP library itself when running with tcmalloc's debug allocator. This issue with the RLP library is tracked in
When this issue was encountered in the rlp_language_test C++ unit test, we simply disabled it when running with tcmalloc's debug allocator.
The RLP library has various memory errors that tcmalloc detects in debug builds. When TCMalloc detects an error it will log the error, and call abort() while holding a spinlock. Our abort handler prints stack traces by calling backtrace() and this function needs to allocate memory on most architectures. This memory allocation will thus cause a deadlock in the spinlock since the spinlock is not recursive.