| Summary: | deadlock in KProcessController destructor | ||
|---|---|---|---|
| Product: | [Unmaintained] kdelibs | Reporter: | Benjamin Reed <ranger> |
| Component: | general | Assignee: | Stephan Kulow <coolo> |
| Status: | RESOLVED NOT A BUG | ||
| Severity: | crash | ||
| Priority: | NOR | ||
| Version First Reported In: | unspecified | ||
| Target Milestone: | --- | ||
| Platform: | Compiled Sources | ||
| OS: | Other | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
I checked in a "workaround" for this, which is to say, I #ifdef'd it out on darwin :) However, it feels wrong to do so, any ideas how I can go about fixing this properly? not sure this is valid anymore; once I do some new profiling there will be opportunities to reopen such bugs. :) |
Version: (using KDE Devel) Installed from: Compiled sources Compiler: i686-apple-darwin8-gcc-4.0.1 (GCC) 4.0.1 (Apple Computer, Inc. build 5363) OS: Other I'm still trying to do more investigation, but HEAD seems to exhibit deadlocks in the KProcessController destructor. Here is the output of a tool called "Spin Control" which samples apps locked in the "spinning beachball of death": ---(snip!)--- Call graph: 6000 Thread_4a03 6000 start 6000 _start 6000 main 6000 KApplication::~KApplication [in-charge]() 6000 KProcessController::deref() 6000 KProcessController::~KProcessController [in-charge deleting]() 6000 close 6000 close 6000 Thread_4b03 6000 _pthread_body 6000 QThreadPrivate::start(void*) 6000 QProcessManager::run() 6000 select 6000 select 6000 Thread_4c03 6000 _pthread_body 6000 __CFSocketManager 6000 select 6000 select Total number in stack (recursive counted multiple, when >=5): Sort by top of stack, same collapsed (when >= 5): select 12000 close 6000 ---(snip!)--- it looks like there are 3 threads, one is trying to close one of the FDs created in the pipe(), and the other two are selecting on them. For some reason they never finish though.