kevinwkt wrote:

👋  Looks like the recent changes introduced a memory leak that makes asan very 
unhappy when running the test suite:

A bunch of tests (e.g., target_tests, expression_tests) are failing during 
teardown with:

```SUMMARY: AddressSanitizer: 112 byte(s) leaked in 1 allocation(s).
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and 
include the crash backtrace and instructions to reproduce the bug.
Direct leak of 112 byte(s) in 1 object(s) allocated from:
    #0 0x563965aa2c9d in operator new(unsigned long) 
compiler-rt/lib/asan/asan_new_delete.cpp:109:35
    #1 0x7f517888ade5 in 
lldb_private::Process::PrivateStateThread::PrivateStateThread(...) 
lldb/include/lldb/Target/Process.h:3210:5
    #2 0x7f5178889dcf in lldb_private::Process::Process(...) 
lldb/source/Target/Process.cpp:446:42
    #3 0x7f517afdeca1 in 
std::make_shared<DummyProcess>(...)/libcxx/include/__memory/shared_ptr.h:690:10
```
Could you take a look? 🙏 

It's pointing to the initial construction inside the Process::Process member 
initializer list:

```
Process::Process(lldb::TargetSP target_sp, lldb::ListenerSP listener_sp,
                 const UnixSignalsSP &unix_signals_sp)
    : ProcessProperties(this),
      // ...
      m_current_private_state_thread(new PrivateStateThread(             
<<<<<<< ASAN points here
          *this, eStateUnloaded, eStateUnloaded, false, "rename-this-thread")),
      // ...
```

I believe it's most likely because Process::~Process() deletes or clears out 
its other members, but it is completely missing a delete 
m_current_private_state_thread; to pair with this raw pointer allocation. So 
any time a `Process` instance completes its lifecycle (particularly prominent 
in unit tests spinning up mock targets/processes), it leaves an orphaned 
`PrivateStateThread` behind, but that's just my theory.

https://github.com/llvm/llvm-project/pull/179799
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to