Bug 416173

Summary: EKOS hangs when an INDI driver crashes
Product: [Applications] kstars Reporter: Wolfgang Reissenberger <wreissen>
Component: generalAssignee: Jasem Mutlaq <mutlaqja>
Status: RESOLVED FIXED    
Severity: major    
Priority: NOR    
Version: 3.3.9   
Target Milestone: ---   
Platform: Debian stable   
OS: Linux   
Latest Commit: Version Fixed In: 3.4.2

Description Wolfgang Reissenberger 2020-01-12 16:29:00 UTC
SUMMARY
When an INDI driver crashes and gets restarted by the indiserver, EKOS does not handle this properly. In these cases, EKOS simply hangs and KStars needs to be killed.

STEPS TO REPRODUCE
1. Start KStars and connect to an INDI server
2. kill the process of one of the INDI drivers

OBSERVED RESULT
On the INDI side, the INDI server restarts the driver. EKOS simply hangs. In the debugger, the problem occurs in INDI::BaseClient::disconnectServer() at line 291:

    listen_thread->join();

It seems like listen_thread is waiting for something. At least, it does not terminate as expected.

EXPECTED RESULT
EKOS should handle the driver restart as offered by the INDI server.

SOFTWARE/OS VERSIONS
Linux: Debian 10, Raspbian 9 and Raspbian 10 show the same behavior.
Comment 1 Jasem Mutlaq 2020-03-25 15:48:32 UTC
Git commit f8c3d1359ac456449f2a7dc507ca8f4f73a8d406 by Jasem Mutlaq.
Committed on 25/03/2020 at 15:45.
Pushed by mutlaqja into branch 'master'.

Change remoteProperty connection to the default queued connection.
Related: bug 398192
FIXED-IN:3.4.2

M  +15   -16   kstars/ekos/capture/capture.cpp
M  +2    -1    kstars/ekos/capture/capture.h
M  +21   -21   kstars/ekos/guide/guide.cpp
M  +2    -1    kstars/ekos/guide/guide.h
M  +1    -2    kstars/indi/drivermanager.cpp
M  +6    -2    kstars/indi/guimanager.cpp
M  +41   -31   kstars/indi/indidevice.cpp
M  +51   -43   kstars/indi/indidevice.h

https://commits.kde.org/kstars/f8c3d1359ac456449f2a7dc507ca8f4f73a8d406