segv in indi gui
Wolfgang Reissenberger
sterne-jaeger at openfuture.de
Fri Sep 10 12:22:46 BST 2021
Just one thought, but I have to admit I do not really understand the INDI client manager.
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...
> Am 10.09.2021 um 03:44 schrieb Hy Murveit <murveit at gmail.com>:
>
> Jasem,
> FWIW, I was able to get it to crash several times by connecting/disconnecting.
> Ping me if you want to video
> Hy
>
> On Thu, Sep 9, 2021 at 6:32 PM Hy Murveit <murveit at gmail.com <mailto:murveit at gmail.com>> wrote:
> Using the latest HEAD, 2e36eb8322d8f8490c0419f64f86e1152127fb94 including "check for nullptr..." I got this segv
> by starting ekos, and disconnecting right away (repeated 3 times), on my RPi4 running ubuntu 21.04.
>
> Hy
>
> (gdb) bt
> #0 0x0000aaaaab4a1508 in INDI::BaseDevice::getDeviceName() const ()
> #1 0x0000aaaaaae795fc in operator() (__closure=0xffffb40bef30)
> at /home/hy/Projects/kstars/kstars/indi/clientmanager.cpp:111
> #2 QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, ClientManager::newProperty(INDI::Property*)::<lambda()> >::call (arg=<optimized out>, f=...)
> at /usr/include/aarch64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:146
> #3 QtPrivate::Functor<ClientManager::newProperty(INDI::Property*)::<lambda()>, 0>::call<QtPrivate::List<>, void> (arg=<optimized out>, f=...)
> at /usr/include/aarch64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:256
> #4 QtPrivate::QFunctorSlotObject<ClientManager::newProperty(INDI::Property*)::<lambda()>, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *)
> (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
> #5 0x0000fffff52ef6d4 in QObject::event(QEvent*) ()
> at /lib/aarch64-linux-gnu/libQt5Core.so.5
> #6 0x0000fffff5d369b0 in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
> at /lib/aarch64-linux-gnu/libQt5Widgets.so.5
> #7 0x0000fffff52bdb60 in QCoreApplication::notifyInternal2(QObject*, QEvent*) ()
> at /lib/aarch64-linux-gnu/libQt5Core.so.5
> #8 0x0000fffff52c0f48 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /lib/aarch64-linux-gnu/libQt5Core.so.5
> #9 0x0000fffff531e9e8 in () at /lib/aarch64-linux-gnu/libQt5Core.so.5
> #10 0x0000fffff4257578 in g_main_context_dispatch ()
> at /lib/aarch64-linux-gnu/libglib-2.0.so.0
> #11 0x0000fffff42ad188 in () at /lib/aarch64-linux-gnu/libglib-2.0.so.0
> #12 0x0000fffff4254ac4 in g_main_context_iteration ()
> at /lib/aarch64-linux-gnu/libglib-2.0.so.0
> #13 0x0000fffff531de94 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/aarch64-linux-gnu/libQt5Core.so.5
> #14 0x0000fffff52bc04c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
> at /lib/aarch64-linux-gnu/libQt5Core.so.5
> #15 0x0000fffff52c514c in QCoreApplication::exec() ()
> at /lib/aarch64-linux-gnu/libQt5Core.so.5
> #16 0x0000aaaaaab927cc in main(int, char**) (argc=<optimized out>, argv=<optimized out>)
> at /home/hy/Projects/kstars/kstars/main.cpp:393
> (gdb)
>
>
>
> On Thu, Sep 9, 2021 at 10:48 AM Hy Murveit <murveit at gmail.com <mailto:murveit at gmail.com>> wrote:
> I just got another segv, and it happened when I clicked "Disconnect" trying to disconnect indi.
> Here's the backtrace:
>
> (gdb) bt
> #0 0x0000aaaaaae8af88 in INDI_E::syncSwitch() (this=0xaaaab3f2ebc0) at /home/hy/Projects/kstars/kstars/indi/indielement.cpp:209
> #1 0x0000aaaaaae84968 in INDI_D::updateSwitchGUI(_ISwitchVectorProperty*) (this=<optimized out>, svp=<optimized out>)
> at /home/hy/Projects/kstars/kstars/indi/indidevice.cpp:188
> #2 0x0000fffff52ef6d4 in QObject::event(QEvent*) () at /lib/aarch64-linux-gnu/libQt5Core.so.5
> #3 0x0000fffff5d369b0 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib/aarch64-linux-gnu/libQt5Widgets.so.5
> #4 0x0000fffff52bdb60 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/aarch64-linux-gnu/libQt5Core.so.5
> #5 0x0000fffff52c0f48 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) ()
> at /lib/aarch64-linux-gnu/libQt5Core.so.5
> #6 0x0000fffff531e9e8 in () at /lib/aarch64-linux-gnu/libQt5Core.so.5
> #7 0x0000fffff4257578 in g_main_context_dispatch () at /lib/aarch64-linux-gnu/libglib-2.0.so.0
> #8 0x0000fffff42ad188 in () at /lib/aarch64-linux-gnu/libglib-2.0.so.0
> #9 0x0000fffff4254ac4 in g_main_context_iteration () at /lib/aarch64-linux-gnu/libglib-2.0.so.0
> #10 0x0000fffff531de94 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
> at /lib/aarch64-linux-gnu/libQt5Core.so.5
> #11 0x0000fffff52bc04c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/aarch64-linux-gnu/libQt5Core.so.5
> #12 0x0000fffff52c514c in QCoreApplication::exec() () at /lib/aarch64-linux-gnu/libQt5Core.so.5
> #13 0x0000aaaaaab927cc in main(int, char**) (argc=<optimized out>, argv=<optimized out>)
> at /home/hy/Projects/kstars/kstars/main.cpp:393
> (gdb)
>
> I was running from HEAD through and including "use modern connect" a100fa1664e028460a348303365caf983e06eda3
>
> Hy
>
>
> On Mon, Sep 6, 2021 at 10:45 PM Jasem Mutlaq <mutlaqja at ikarustech.com <mailto:mutlaqja at ikarustech.com>> wrote:
> Hello Hy,
>
> I think I submitted a refactor of the INDI Control Panel in KStars
> that should fix such crash-on-disconnection issues. This commit has
> the fix: 678c5e360c7651060c65133ed97b074c0b24bc40
>
> However, we must thoroughly test KStars now for stability issues.
> Robert reported crashes on the MacOS client with INDI, so this needs
> to be investigated. The due date for 3.5.5 was planned for September
> 6th (Yesterday) but I really think we should delay perhaps for a few
> days until we ensure stability issues are addressed. Hopefully more
> users would try the beta to report back. Keep using KStars with *real*
> equipment under real conditions to catch some of these elusive bugs.
>
> --
> Best Regards,
> Jasem Mutlaq
>
> On Tue, Sep 7, 2021 at 1:19 AM Hy Murveit <murveit at gmail.com <mailto:murveit at gmail.com>> wrote:
> >
> > Thread 1 "kstars" received signal SIGSEGV, Segmentation fault.
> >
> > 0x0000aaaaaae88bb8 in INDI_E::syncSwitch (this=0xaaaab0179940)
> > at /home/hy/Projects/kstars/kstars/indi/indielement.cpp:225
> > 225 if (sp->svp->p == IP_RO)
> > (gdb)
> > (gdb) bt
> > #0 0x0000aaaaaae88bb8 in INDI_E::syncSwitch() (this=0xaaaab0179940)
> > at /home/hy/Projects/kstars/kstars/indi/indielement.cpp:225
> > #1 0x0000aaaaaae82448 in INDI_D::updateSwitchGUI(_ISwitchVectorProperty*)
> > (this=<optimized out>, svp=<optimized out>)
> > at /home/hy/Projects/kstars/kstars/indi/indidevice.cpp:186
> > #2 0x0000fffff52ef6d4 in QObject::event(QEvent*) ()
> > at /lib/aarch64-linux-gnu/libQt5Core.so.5
> > #3 0x0000fffff5d369b0 in QApplicationPrivate::notify_helper(QObject*, QEvent*)
> > () at /lib/aarch64-linux-gnu/libQt5Widgets.so.5
> > #4 0x0000fffff52bdb60 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
> > () at /lib/aarch64-linux-gnu/libQt5Core.so.5
> > #5 0x0000fffff52c0f48 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /lib/aarch64-linux-gnu/libQt5Core.so.5
> > #6 0x0000fffff531e9e8 in () at /lib/aarch64-linux-gnu/libQt5Core.so.5
> > #7 0x0000fffff4257578 in g_main_context_dispatch ()
> > at /lib/aarch64-linux-gnu/libglib-2.0.so.0
> > #8 0x0000fffff42ad188 in () at /lib/aarch64-linux-gnu/libglib-2.0.so.0
> > #9 0x0000fffff4254ac4 in g_main_context_iteration ()
> > at /lib/aarch64-linux-gnu/libglib-2.0.so.0
> > #10 0x0000fffff531de94 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/aarch64-linux-gnu/libQt5Core.so.5
> > #11 0x0000fffff52bc04c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/aarch64-linux-gnu/libQt5Core.so.5
> > #12 0x0000fffff52c514c in QCoreApplication::exec() ()
> > at /lib/aarch64-linux-gnu/libQt5Core.so.5
> > #13 0x0000aaaaaab917cc in main(int, char**)
> > (argc=<optimized out>, argv=<optimized out>)
> > at /home/hy/Projects/kstars/kstars/main.cpp:39
> >
> >
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kstars-devel/attachments/20210910/b056b0e2/attachment.htm>
More information about the Kstars-devel
mailing list