<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Just one thought, but I have to admit I do not really understand the INDI client manager.<div class=""><br class=""></div><div class="">Since there are several threads requesting things from the client manager - could it be that not all threads are aware of a disconnect and consequently try to access elements or properties, that have already been destroyed? I have for example the thread in mind of EKOS that regularly requests the current mount position, but it may be others as well...<br class=""><div><br class=""><blockquote type="cite" class=""><div class="">Am 10.09.2021 um 03:44 schrieb Hy Murveit <<a href="mailto:murveit@gmail.com" class="">murveit@gmail.com</a>>:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">Jasem,<div class="">FWIW, I was able to get it to crash several times by connecting/disconnecting.<div class="">Ping me if you want to video</div><div class="">Hy</div></div></div><br class=""><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Sep 9, 2021 at 6:32 PM Hy Murveit <<a href="mailto:murveit@gmail.com" class="">murveit@gmail.com</a>> wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr" class=""><div class="">Using the latest HEAD, 2e36eb8322d8f8490c0419f64f86e1152127fb94 including "check for nullptr..." I got this segv </div><div class="">by starting ekos, and disconnecting right away (repeated 3 times), on my RPi4 running ubuntu 21.04.</div><div class=""><br class=""></div><div class="">Hy</div><div class=""><br class=""></div>(gdb) bt<br class="">#0  0x0000aaaaab4a1508 in INDI::BaseDevice::getDeviceName() const ()<br class="">#1  0x0000aaaaaae795fc in operator() (__closure=0xffffb40bef30)<br class="">    at /home/hy/Projects/kstars/kstars/indi/clientmanager.cpp:111<br class="">#2  QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, ClientManager::newProperty(INDI::Property*)::<lambda()> >::call (arg=<optimized out>, f=...)<br class="">    at /usr/include/aarch64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:146<br class="">#3  QtPrivate::Functor<ClientManager::newProperty(INDI::Property*)::<lambda()>, 0>::call<QtPrivate::List<>, void> (arg=<optimized out>, f=...)<br class="">    at /usr/include/aarch64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:256<br class="">#4  QtPrivate::QFunctorSlotObject<ClientManager::newProperty(INDI::Property*)::<lambda()>, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *)<br class="">    (which=1, this_=0xffffb40bef20, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/aarch64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:443<br class="">#5  0x0000fffff52ef6d4 in QObject::event(QEvent*) ()<br class="">    at /lib/aarch64-linux-gnu/libQt5Core.so.5<br class="">#6  0x0000fffff5d369b0 in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()<br class="">    at /lib/aarch64-linux-gnu/libQt5Widgets.so.5<br class="">#7  0x0000fffff52bdb60 in QCoreApplication::notifyInternal2(QObject*, QEvent*) ()<br class="">    at /lib/aarch64-linux-gnu/libQt5Core.so.5<br class="">#8  0x0000fffff52c0f48 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /lib/aarch64-linux-gnu/libQt5Core.so.5<br class="">#9  0x0000fffff531e9e8 in  () at /lib/aarch64-linux-gnu/libQt5Core.so.5<br class="">#10 0x0000fffff4257578 in g_main_context_dispatch ()<br class="">    at /lib/aarch64-linux-gnu/libglib-2.0.so.0<br class="">#11 0x0000fffff42ad188 in  () at /lib/aarch64-linux-gnu/libglib-2.0.so.0<br class="">#12 0x0000fffff4254ac4 in g_main_context_iteration ()<br class="">    at /lib/aarch64-linux-gnu/libglib-2.0.so.0<br class="">#13 0x0000fffff531de94 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/aarch64-linux-gnu/libQt5Core.so.5<br class="">#14 0x0000fffff52bc04c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()<br class="">    at /lib/aarch64-linux-gnu/libQt5Core.so.5<br class="">#15 0x0000fffff52c514c in QCoreApplication::exec() ()<br class="">    at /lib/aarch64-linux-gnu/libQt5Core.so.5<br class="">#16 0x0000aaaaaab927cc in main(int, char**) (argc=<optimized out>, argv=<optimized out>)<br class="">    at /home/hy/Projects/kstars/kstars/main.cpp:393<br class="">(gdb) <br class=""><br class=""><div class=""><br class=""></div></div><br class=""><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Sep 9, 2021 at 10:48 AM Hy Murveit <<a href="mailto:murveit@gmail.com" target="_blank" class="">murveit@gmail.com</a>> wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr" class="">I just got another segv, and it happened when I clicked "Disconnect" trying to disconnect indi.<div class="">Here's the backtrace:</div><div class=""><br class=""></div><div class="">(gdb) bt<br class="">#0  0x0000aaaaaae8af88 in INDI_E::syncSwitch() (this=0xaaaab3f2ebc0) at /home/hy/Projects/kstars/kstars/indi/indielement.cpp:209<br class="">#1  0x0000aaaaaae84968 in INDI_D::updateSwitchGUI(_ISwitchVectorProperty*) (this=<optimized out>, svp=<optimized out>)<br class="">    at /home/hy/Projects/kstars/kstars/indi/indidevice.cpp:188<br class="">#2  0x0000fffff52ef6d4 in QObject::event(QEvent*) () at /lib/aarch64-linux-gnu/libQt5Core.so.5<br class="">#3  0x0000fffff5d369b0 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/aarch64-linux-gnu/libQt5Widgets.so.5<br class="">#4  0x0000fffff52bdb60 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/aarch64-linux-gnu/libQt5Core.so.5<br class="">#5  0x0000fffff52c0f48 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) ()<br class="">    at /lib/aarch64-linux-gnu/libQt5Core.so.5<br class="">#6  0x0000fffff531e9e8 in  () at /lib/aarch64-linux-gnu/libQt5Core.so.5<br class="">#7  0x0000fffff4257578 in g_main_context_dispatch () at /lib/aarch64-linux-gnu/libglib-2.0.so.0<br class="">#8  0x0000fffff42ad188 in  () at /lib/aarch64-linux-gnu/libglib-2.0.so.0<br class="">#9  0x0000fffff4254ac4 in g_main_context_iteration () at /lib/aarch64-linux-gnu/libglib-2.0.so.0<br class="">#10 0x0000fffff531de94 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()<br class="">    at /lib/aarch64-linux-gnu/libQt5Core.so.5<br class="">#11 0x0000fffff52bc04c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/aarch64-linux-gnu/libQt5Core.so.5<br class="">#12 0x0000fffff52c514c in QCoreApplication::exec() () at /lib/aarch64-linux-gnu/libQt5Core.so.5<br class="">#13 0x0000aaaaaab927cc in main(int, char**) (argc=<optimized out>, argv=<optimized out>)<br class="">    at /home/hy/Projects/kstars/kstars/main.cpp:393<br class="">(gdb) <br class=""><br class=""></div><div class="">I was running from HEAD through and including "use modern connect" a100fa1664e028460a348303365caf983e06eda3</div><div class=""><br class=""></div><div class="">Hy</div><div class=""><br class=""></div></div><br class=""><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Sep 6, 2021 at 10:45 PM Jasem Mutlaq <<a href="mailto:mutlaqja@ikarustech.com" target="_blank" class="">mutlaqja@ikarustech.com</a>> wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello Hy,<br class="">
<br class="">
I think I submitted a refactor of the INDI Control Panel in KStars<br class="">
that should fix such crash-on-disconnection issues. This commit has<br class="">
the fix: 678c5e360c7651060c65133ed97b074c0b24bc40<br class="">
<br class="">
However, we must thoroughly test KStars now for stability issues.<br class="">
Robert reported crashes on the MacOS client with INDI, so this needs<br class="">
to be investigated. The due date for 3.5.5 was planned for September<br class="">
6th (Yesterday) but I really think we should delay perhaps for a few<br class="">
days until we ensure stability issues are addressed. Hopefully more<br class="">
users would try the beta to report back. Keep using KStars with *real*<br class="">
equipment under real conditions to catch some of these elusive bugs.<br class="">
<br class="">
--<br class="">
Best Regards,<br class="">
Jasem Mutlaq<br class="">
<br class="">
On Tue, Sep 7, 2021 at 1:19 AM Hy Murveit <<a href="mailto:murveit@gmail.com" target="_blank" class="">murveit@gmail.com</a>> wrote:<br class="">
><br class="">
> Thread 1 "kstars" received signal SIGSEGV, Segmentation fault.<br class="">
><br class="">
> 0x0000aaaaaae88bb8 in INDI_E::syncSwitch (this=0xaaaab0179940)<br class="">
>     at /home/hy/Projects/kstars/kstars/indi/indielement.cpp:225<br class="">
> 225                if (sp->svp->p == IP_RO)<br class="">
> (gdb)<br class="">
> (gdb) bt<br class="">
> #0  0x0000aaaaaae88bb8 in INDI_E::syncSwitch() (this=0xaaaab0179940)<br class="">
>     at /home/hy/Projects/kstars/kstars/indi/indielement.cpp:225<br class="">
> #1  0x0000aaaaaae82448 in INDI_D::updateSwitchGUI(_ISwitchVectorProperty*)<br class="">
>     (this=<optimized out>, svp=<optimized out>)<br class="">
>     at /home/hy/Projects/kstars/kstars/indi/indidevice.cpp:186<br class="">
> #2  0x0000fffff52ef6d4 in QObject::event(QEvent*) ()<br class="">
>     at /lib/aarch64-linux-gnu/libQt5Core.so.5<br class="">
> #3  0x0000fffff5d369b0 in QApplicationPrivate::notify_helper(QObject*, QEvent*)<br class="">
>     () at /lib/aarch64-linux-gnu/libQt5Widgets.so.5<br class="">
> #4  0x0000fffff52bdb60 in QCoreApplication::notifyInternal2(QObject*, QEvent*)<br class="">
>     () at /lib/aarch64-linux-gnu/libQt5Core.so.5<br class="">
> #5  0x0000fffff52c0f48 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /lib/aarch64-linux-gnu/libQt5Core.so.5<br class="">
> #6  0x0000fffff531e9e8 in  () at /lib/aarch64-linux-gnu/libQt5Core.so.5<br class="">
> #7  0x0000fffff4257578 in g_main_context_dispatch ()<br class="">
>     at /lib/aarch64-linux-gnu/libglib-2.0.so.0<br class="">
> #8  0x0000fffff42ad188 in  () at /lib/aarch64-linux-gnu/libglib-2.0.so.0<br class="">
> #9  0x0000fffff4254ac4 in g_main_context_iteration ()<br class="">
>     at /lib/aarch64-linux-gnu/libglib-2.0.so.0<br class="">
> #10 0x0000fffff531de94 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/aarch64-linux-gnu/libQt5Core.so.5<br class="">
> #11 0x0000fffff52bc04c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/aarch64-linux-gnu/libQt5Core.so.5<br class="">
> #12 0x0000fffff52c514c in QCoreApplication::exec() ()<br class="">
>     at /lib/aarch64-linux-gnu/libQt5Core.so.5<br class="">
> #13 0x0000aaaaaab917cc in main(int, char**)<br class="">
>     (argc=<optimized out>, argv=<optimized out>)<br class="">
>     at /home/hy/Projects/kstars/kstars/main.cpp:39<br class="">
><br class="">
><br class="">
</blockquote></div>
</blockquote></div>
</blockquote></div>
</div></blockquote></div><br class=""></div></body></html>