| Summary: | kwayland-integration fails idleTest due to heap-use-after-free | ||
|---|---|---|---|
| Product: | [Frameworks and Libraries] kwayland | Reporter: | Heiko Becker <heiko.becker> |
| Component: | general | Assignee: | Martin Flöser <mgraesslin> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | ||
| Priority: | NOR | ||
| Version First Reported In: | 5.38.0 | ||
| Target Milestone: | --- | ||
| Platform: | Compiled Sources | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
|
Description
Heiko Becker
2017-09-14 13:09:00 UTC
This should be fixed by kwayland-integration commit e27d843cc3204c4dee64166d5ea60beaf0bf5d47
Unload poller's connection thread earlier in teardown
Summary:
KIdleTime is a global static, it's destructor it deletes the backend in
a deleteLater; This is *after* the app has been deleted.
This means we end up deleting Poller's ConnectionThread after the static
QVector managing the ConnectionThreads in the main app has been deleted,
leading to a confusing crash.
We can fix this by deleting the connection thread in unload rather than
the actual object destruction.
This fixes a crash on app close, most notably the recursive drkonqi
crash.
Test Plan:
Verified what was happening by subclassing the vector and adding debug
Had the drkonqi crash loop, made this change, no more crashes
Reviewers: graesslin
Reviewed By: graesslin
Subscribers: anthonyfieroni, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D8285
(In reply to Martin Flöser from comment #1) > This should be fixed by kwayland-integration commit > e27d843cc3204c4dee64166d5ea60beaf0bf5d47 Indeed it is. Thanks! |