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

--- Comment #18 from Helga <[email protected]> ---
I've poked around this issue for a few days to reproduce it better, with the
following conclusions:

1. The issue may or may not reproduce on the same set of files on the same
computer. It reproduces a lot more consistently if we schedule it with
scx_chaos - leading me to guess it's borne of some kind of race condition.
2. Compiling Qt, KF6 and kdiff3 with -fsanitize=thread does not result in any
warnings at least until the window is closed, despite the issue clearly
reproducing. This more or less rules out data races, although not logical race
conditions in general.
(this also confirms that this issue reproduces on both system Qt6.9 and
self-built Qt6.10)
3. Putting printouts
* right before `Q_EMIT pDTW->finishRecalcWordWrap(m_visibleTextWidth);` in
RecalcWordWrapThread::run() 
* in DiffTextWindow::setupConnections()
* in KDiff3App::slotFinishRecalcWordWrap()
* in the constructors/destructors of KDiff3App and DiffTextWindow

shows the following picture:
* Connection is made between relevant signal and slot for three instances of
DiffTextWindow and 1 instance of KDiff3App
* Execution gets to signal emit statement
* KDiff3App::slotFinishRecalcWordWrap() slot is never triggered - this is
probably the immediate cause of the bug, though I can't understand why that
happens
* DiffTextWindow and KDiff3App are created before the connection is made and
destroyed when the window is closed. The same instances are seen in the
constructor, connection statements and signal emission.

This is, unfortunately, where I got stuck so far. The signal and slot code
seems entirely correct, it just doesn't fire for some reason.

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

Reply via email to