https://bugs.kde.org/show_bug.cgi?id=446531

Harald Sitter <sit...@kde.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |sit...@kde.org

--- Comment #10 from Harald Sitter <sit...@kde.org> ---
I suspect this broke as part of
https://invent.kde.org/frameworks/plasma-framework/-/commit/5984d4960fa5ecf60a20b1fbc782fb841faa4af7
because the emit is potentially triggering blocking call chains (through
qobject connects) into other parts of the dataengine that may mutate d->sources
such that the iterator is no longer valid once erase() runs. At least that's
the only explanation I have for the backtrace. The trace only really happens if
the iterator is invalid (e.g. if you erase(end()++) you'd get that trace).

That being said, I don't see where that call chain happens nor can I reproduce
the crash. A blind fix would be to move the emits out of iteration scopes. This
way we preserve the notify-before-removal behavior while also ensuring that
iterators cannot go invalid mid-flight.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to