Bug 408119 - Kdiff3 get stuck when comparing remote folders
Summary: Kdiff3 get stuck when comparing remote folders
Status: RESOLVED FIXED
Alias: None
Product: kdiff3
Classification: Applications
Component: application (show other bugs)
Version: 1.8.x
Platform: Neon Linux
: NOR normal
Target Milestone: ---
Assignee: michael
URL:
Keywords:
: 423049 (view as bug list)
Depends on:
Blocks:
 
Reported: 2019-05-30 14:35 UTC by jmaspons
Modified: 2020-07-14 04:32 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In: 1.8.4


Attachments
Progress stuck in the first attempt. Notice the http protocol for getting the file status (41.39 KB, image/png)
2019-05-30 14:35 UTC, jmaspons
Details
Progress stuck after cancelling and restarting a comparison. Notice the fish:/ protocol for getting the file status (41.73 KB, image/png)
2019-05-30 14:38 UTC, jmaspons
Details
attachment-7450-0.html (56 bytes, text/html)
2019-06-04 17:18 UTC, michael
Details

Note You need to log in before you can comment on or make changes to this bug.
Description jmaspons 2019-05-30 14:35:01 UTC
Created attachment 120402 [details]
Progress stuck in the first attempt. Notice the http protocol for getting the file status

SUMMARY


STEPS TO REPRODUCE
1. Select 2 folders. One of them is a remote folder using ssh (fish:/)
2. Start comparison

OBSERVED RESULT
Immediately after starting the comparison the Directory Comparison Status appear with 0 subdirectories, different and equal files. The attached image of the progress bar stay forever with no CPU activity.

I can access the same remote folder from dolphin or the file picker without problems

EXPECTED RESULT
Kdiff3 works flawlessly like used to do until the last update.

SOFTWARE/OS VERSIONS
Neon user edition
KDE Plasma Version: 5.15.5
KDE Frameworks Version: 5.58.0
Qt Version: 5.12.0
Comment 1 jmaspons 2019-05-30 14:38:57 UTC
Created attachment 120403 [details]
Progress stuck after cancelling and restarting a comparison. Notice the fish:/ protocol for getting the file status
Comment 2 jmaspons 2019-06-04 15:36:14 UTC
I downgraded kdiff3 to 1.8.0 and the problem is already there. Version 0.9.98 works flawlessly with remote connections using fish:/
Comment 3 michael 2019-06-04 17:18:50 UTC
Created attachment 120573 [details]
attachment-7450-0.html

I'll get a quick fix tonight.
Comment 4 michael 2019-06-09 23:58:13 UTC
Obviously this isn't quite as easy as I thought. I just pushed patches to fix the url handling so that part is fixed. Also the operation can also now be canceled successfully in the event that this hang occurs without crashing or other weirdness. The hang itself is the result kdiff3 sometimes not getting a job finished notification. Not sure exactly where the problem is there.
Comment 5 jmaspons 2019-06-10 07:57:28 UTC
Probably not related but it's not the first time that remote comparison breaks https://sourceforge.net/p/kdiff3/bugs/186/
Comment 6 michael 2020-07-14 04:13:45 UTC
Git commit 29a610ad14ff0563e1876a15ab956d47cad6fe88 by Michael Reeves.
Committed on 14/07/2020 at 04:09.
Pushed by mreeves into branch '1.8'.

Insure ProgressProxy::exitEventLoop is always called on job termination.

M  +19   -6    src/fileaccess.cpp
M  +1    -0    src/fileaccess.h

https://invent.kde.org/sdk/kdiff3/commit/29a610ad14ff0563e1876a15ab956d47cad6fe88
Comment 7 michael 2020-07-14 04:14:33 UTC
Git commit 8cb84255c89080d63bd717c4d664952d504c2a20 by Michael Reeves.
Committed on 14/07/2020 at 04:14.
Pushed by mreeves into branch 'master'.

Insure ProgressProxy::exitEventLoop is always called on job termination.

M  +19   -6    src/fileaccess.cpp
M  +2    -1    src/fileaccess.h

https://invent.kde.org/sdk/kdiff3/commit/8cb84255c89080d63bd717c4d664952d504c2a20
Comment 8 michael 2020-07-14 04:24:23 UTC
*** Bug 423049 has been marked as a duplicate of this bug. ***
Comment 9 michael 2020-07-14 04:32:35 UTC
Fixed the cause of the hang. KDiff3 should now detect all job terminations. This also prevents crashes when later trying to kill the non-existant job. A simple comparison over 'fish://' on my dev setup now completes without issue.