In an attempt to get more information of what's going on I ran KStars in gdb and took a back trace after it got unresponsive. Here's what I did:

On my Raspberry Pi
- Start indiserver in FIFO mode
- Start the indi_gpsd, indi_eqmod_telescope, indi_atik_ccd and indi_primefocus drivers. The last one is my own.

On my ubuntu laptop:
- Start KStars in gdb
- Connect to the indiserver
- Connect to indi_primefocus
- Disconnect indi_primefocus

Everything up to here works as expected. Now if I stop the infi_primefocus driver in the server, it's UI controls are removed from ekos and kstars indi control panel but it will hang. KStars becomes unresponsive. At this point I hit ctrl+c in gdb and dumped out the back trace:

^C
Thread 1 "kstars" received signal SIGINT, Interrupt.
0x00007ffff2fd098d in pthread_join (threadid=140736607545088, thread_return=0x0)
    at pthread_join.c:90
90	pthread_join.c: No such file or directory.
(gdb) bt
#0  0x00007ffff2fd098d in pthread_join (threadid=140736607545088, thread_return=0x0)
    at pthread_join.c:90
#1  0x00007ffff2163b97 in std::thread::join() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#2  0x0000000100602d3f in INDI::BaseClient::disconnectServer() ()
#3  0x0000000100234648 in DriverManager::disconnectRemoteHost (this=0x1036dec30, 
    dv=dv@entry=0x103881cc0)
    at /build/kstars-bleeding-FmmvQZ/kstars-bleeding-17.04+201708262117~ubuntu16.04.1/kstars/indi/drivermanager.cpp:759
#4  0x00000001002d7a84 in EkosManager::cleanDevices (this=this@entry=0x1035c3840, 
    stopDrivers=stopDrivers@entry=true)
    at /build/kstars-bleeding-FmmvQZ/kstars-bleeding-17.04+201708262117~ubuntu16.04.1/kstars/ekos/ekosmanager.cpp:816
#5  0x00000001002d7ef5 in EkosManager::cleanDevices (stopDrivers=true, this=0x1035c3840)
    at /usr/include/x86_64-linux-gnu/qt5/QtCore/qmap.h:1020
#6  EkosManager::removeDevice (this=0x1035c3840, devInterface=0x103474390)
    at /build/kstars-bleeding-FmmvQZ/kstars-bleeding-17.04+201708262117~ubuntu16.04.1/kstars/ekos/ekosmanager.cpp:1250
#7  0x000000010021253a in EkosManager::qt_static_metacall (_o=<optimised out>, _c=<optimised out>, 
    _id=<optimised out>, _a=<optimised out>)
    at /build/kstars-bleeding-FmmvQZ/kstars-bleeding-17.04+201708262117~ubuntu16.04.1/obj-x86_64-linux-gnu/kstars/moc_ekosmanager.cpp:316
#8  0x00007ffff3ee0d2a in QMetaObject::activate(QObject*, int, int, void**) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#9  0x00000001001f4c22 in INDIListener::deviceRemoved (this=this@entry=0x1037cd780, 
    _t1=0x103474390)
    at /build/kstars-bleeding-FmmvQZ/kstars-bleeding-17.04+201708262117~ubuntu16.04.1/obj-x86_64-linux-gnu/kstars/moc_indilistener.cpp:449
#10 0x000000010025246f in INDIListener::removeDevice (this=0x1037cd780, dv=0x7fffb8001e70)
    at /build/kstars-bleeding-FmmvQZ/kstars-bleeding-17.04+201708262117~ubuntu16.04.1/kstars/indi/indilistener.cpp:209
#11 0x000000010021582c in INDIListener::qt_static_metacall (_o=<optimised out>,

I don't know what this could imply but if I kill this instance of KStars and start it up again, I am able to connect to the server and everything works as expected. Is there a way to get more debug information than this or do I need to compile KStars myself?

Ta,
K

Read More...