Summary: | crash on focus framing loop start | ||
---|---|---|---|
Product: | [Applications] kstars | Reporter: | Hans Lambermont <hans> |
Component: | general | Assignee: | Jasem Mutlaq <mutlaqja> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | hans |
Priority: | NOR | Keywords: | drkonqi |
Version: | 2.9.2 | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | https://commits.kde.org/kstars/409cd8a3cd1ecb35344e80aedd3341e09011d0db | Version Fixed In: | 2.9.3 |
Attachments: | New crash information added by DrKonqi |
Description
Hans Lambermont
2018-02-08 21:35:15 UTC
This crash is perfectly reproducible. The binning setting is irrelevant. Controlling the filter wheel works (indi control panel). Taking a photo works (ekos tab). ~/src/kstars/ git status # On branch master nothing to commit (working directory clean) ~/src/kstars/ git pull Already up-to-date. I also tested with kstars/ekos from the PPA, the focus framing loop there works fine. After two more attempts (and thus crashes) I got the focus framing loop to work with the GIT version ! However now the ASI EFW is stuck. Made a ticket for that here -> https://github.com/indilib/indi/issues/514 What devices are connected? (In reply to Jasem Mutlaq from comment #3) > What devices are connected? these 4 : indiserver -v -p 7624 -m 100 indi_lx200_10micron indi_integra_focus indi_asi_ccd indi_asi_wheel Happened again, twice in a row. Todays' head of master branch. I start kstars, open ekos, go to focusing, click 'framing' and immediate crash. gdb bt shows : #0 0x00007f88c0de030d in nanosleep () at ../sysdeps/unix/syscall-template.S:84 #1 0x00007f88c0de025a in __sleep (seconds=0) at ../sysdeps/posix/sleep.c:55 #2 0x00007f88c6c20a8a in ?? () from /usr/lib/x86_64-linux-gnu/libKF5Crash.so.5 #3 0x00007f88c6c211c9 in ?? () from /usr/lib/x86_64-linux-gnu/libKF5Crash.so.5 #4 0x00007f88c6c216b5 in KCrash::defaultCrashHandler(int) () from /usr/lib/x86_64-linux-gnu/libKF5Crash.so.5 #5 <signal handler called> #6 0x00007f88c0d49428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54 #7 0x00007f88c0d4b02a in __GI_abort () at abort.c:89 #8 0x00007f88c2c8bf41 in QMessageLogger::fatal(char const*, ...) const () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #9 0x00007f88c2c87401 in qt_assert_x(char const*, char const*, char const*, int) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #10 0x0000565401733e2e in QList<OAL::Filter*>::operator[] (this=0x5654068496b0, i=-1) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h:539 #11 0x0000565401732442 in Ekos::FilterManager::setFilterPosition (this=0x565406849610, position=0 '\000', policy=3) at /home/hans/src/kstars/kstars/ekos/auxiliary/filtermanager.cpp:241 #12 0x00005654017e0c7a in Ekos::Focus::capture (this=0x565406c5fc60) at /home/hans/src/kstars/kstars/ekos/focus/focus.cpp:865 #13 0x00005654017e88fc in Ekos::Focus::startFraming (this=0x565406c5fc60) at /home/hans/src/kstars/kstars/ekos/focus/focus.cpp:2186 #14 0x00005654015bb689 in Ekos::Focus::qt_static_metacall (_o=0x565406c5fc60, _c=QMetaObject::InvokeMetaMethod, _id=15, _a=0x7ffd09e58430) at /home/hans/src/kstars-build/kstars/moc_focus.cpp:328 #15 0x00007f88c2ea5b71 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #16 0x00007f88c3d28212 in QAbstractButton::clicked(bool) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #17 0x00007f88c3d28464 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #18 0x00007f88c3d29f17 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #19 0x00007f88c3d2a094 in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #20 0x00007f88c3c6fe58 in QWidget::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #21 0x00007f88c3c2aafc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #22 0x00007f88c3c3088e in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #23 0x00007f88c2e792a8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #24 0x00007f88c3c2f585 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #25 0x00007f88c3c8a4b0 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #26 0x00007f88c3c8cdf3 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #27 0x00007f88c3c2aafc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #28 0x00007f88c3c30036 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #29 0x00007f88c2e792a8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () /x86_64-linux-gnu/libQt5Core.so.5 #30 0x00007f88c3423fc0 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5 #31 0x00007f88c3425b55 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5 #32 0x00007f88c340378b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5 #33 0x00007f88b269bd40 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5 #34 0x00007f88bd5d9197 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #35 0x00007f88bd5d93f0 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #36 0x00007f88bd5d949c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #37 0x00007f88c2ece35f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #38 0x00007f88c2e76ffa in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #39 0x00007f88c2e7f6bc in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #40 0x00005654013d1e57 in main (argc=1, argv=0x7ffd09e59408) at /home/hans/src/kstars/kstars/main.cpp:322 .local/share/kstars/logs/2018-02-12/log_22-09-10.txt has some info : [2018-02-12T22:09:20.130 CET INFO ][ org.kde.kstars.indi] - 10micron : "[INFO] Time updated, updating planetary data... " [2018-02-12T22:09:20.187 CET DEBG ][ org.kde.kstars.indi] - Integra85 : "[DEBUG] Toggle Debug Level -- Driver Debug " [2018-02-12T22:09:20.337 CET INFO ][ org.kde.kstars.indi] - 10micron : "[INFO] Site location updated to Lat 51:34:00 - Long 5:05:00 " [2018-02-12T22:10:18.227 CET DEBG ][ org.kde.kstars.ekos.focus] - State: "Framing" [2018-02-12T22:10:18.228 CET INFO ][ org.kde.kstars.ekos.focus] - "Starting continuous exposure..." [2018-02-12T22:10:18.228 CET FATL ][ default] - ASSERT failure in QList<T>::operator[]: "index out of range", file /usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h, line 539 [2018-02-12T22:10:36.242 CET DEBG ][ org.kde.kstars.indi] - INDI server disconnected. Exit code: -1 Jasem: is that assert the extra debug info you added ? Created attachment 110581 [details]
New crash information added by DrKonqi
kstars (2.9.2) using Qt 5.6.1
- What I was doing when the application crashed:
restart indiserver (todays' PPA), start kstars/ekos, focus tab, fix max travel range (set to 188600), select filter 5 (already active), start framing, crash. This repeated 5 times now.
-- Backtrace (Reduced):
#6 0x00007fed8d20b428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54
#7 0x00007fed8d20d02a in __GI_abort () at abort.c:89
#8 0x00007fed8f14df41 in QMessageLogger::fatal(char const*, ...) const () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#9 0x00007fed8f149401 in qt_assert_x(char const*, char const*, char const*, int) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#10 0x0000562707ebfe2e in QList<OAL::Filter*>::operator[] (this=0x56270c06f3b0, i=-1) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h:539
FilterManager::setFilterPosition gets position=0 '\000', policy=3 and lateron addresses m_ActiveFilters[position-1] which is out of bounds. Clearly confusion on how to handle the position index. I understand the '-1' to start the array at 0 but the confusion it creates is bad. Now the question is where does 'position 0' come from ? Yes, it's not suppose to be zero, filter numbers start from 1. So please put a breakpoint at line 845 and then follow throw, at which point does targetPosition = 0 ? I could add a quick fix for this, but I'd like to know the root cause. Git commit 409cd8a3cd1ecb35344e80aedd3341e09011d0db by Jasem Mutlaq. Committed on 14/02/2018 at 07:45. Pushed by mutlaqja into branch 'master'. Add more checks for filter current index FIXED-IN:2.9.3 M +9 -6 kstars/ekos/focus/focus.cpp https://commits.kde.org/kstars/409cd8a3cd1ecb35344e80aedd3341e09011d0db This still happens : [2018-02-15T21:41:48.435 CET DEBG ][ org.kde.kstars.ekos.focus] - State: "Framing" [2018-02-15T21:41:48.437 CET INFO ][ org.kde.kstars.ekos.focus] - "Starting continuous exposure..." [2018-02-15T21:41:48.439 CET INFO ][ org.kde.kstars.ekos.focus] - "Focus::capture targetPosition 5, currentFilterPosition 1" [2018-02-15T21:41:48.443 CET INFO ][ org.kde.kstars.indi] - ASI EFW : "[INFO] Setting current filter to slot 5 " [2018-02-15T21:41:48.446 CET INFO ][ org.kde.kstars.indi] - ASI EFW : "[INFO] SelectFilter(): no fw_id " fwiw all EFW lines : ~/.local/share/kstars/logs/2018-02-15/ grep EFW log_21-25-22.txt [2018-02-15T21:40:54.865 CET DEBG ][ org.kde.kstars.indi] - Received new device ASI EFW [2018-02-15T21:40:54.884 CET DEBG ][ org.kde.kstars.indi] - INDIListener: New device ASI EFW [2018-02-15T21:40:54.884 CET INFO ][ org.kde.kstars.ekos] - Ekos received a new device: ASI EFW [2018-02-15T21:40:54.885 CET DEBG ][ org.kde.kstars.indi] - < ASI EFW >: < CONNECTION > [2018-02-15T21:40:54.887 CET DEBG ][ org.kde.kstars.indi] - < ASI EFW >: < DRIVER_INFO > [2018-02-15T21:40:54.890 CET DEBG ][ org.kde.kstars.indi] - < ASI EFW >: < DEBUG > [2018-02-15T21:40:54.920 CET DEBG ][ org.kde.kstars.indi] - < ASI EFW >: < SIMULATION > [2018-02-15T21:40:54.942 CET DEBG ][ org.kde.kstars.indi] - < ASI EFW >: < CONFIG_PROCESS > [2018-02-15T21:40:54.942 CET DEBG ][ org.kde.kstars.indi] - < ASI EFW >: < DEBUG_LEVEL > [2018-02-15T21:40:54.943 CET DEBG ][ org.kde.kstars.indi] - < ASI EFW >: < LOGGING_LEVEL > [2018-02-15T21:40:54.943 CET DEBG ][ org.kde.kstars.indi] - < ASI EFW >: < LOG_OUTPUT > [2018-02-15T21:40:55.045 CET INFO ][ org.kde.kstars.ekos] - ASI EFW is connected. [2018-02-15T21:40:55.080 CET DEBG ][ org.kde.kstars.indi] - < ASI EFW >: < FILTER_SLOT > [2018-02-15T21:40:55.080 CET INFO ][ org.kde.kstars.ekos] - "ASI EFW filter is online." [2018-02-15T21:40:55.267 CET DEBG ][ org.kde.kstars.indi] - < ASI EFW >: < FILTER_NAME > [2018-02-15T21:40:55.270 CET DEBG ][ org.kde.kstars.indi] - < ASI EFW >: < USEJOYSTICK > [2018-02-15T21:40:55.271 CET DEBG ][ org.kde.kstars.indi] - ASI EFW : "[DEBUG] Toggle Debug Level -- Driver Debug " [2018-02-15T21:41:48.443 CET INFO ][ org.kde.kstars.indi] - ASI EFW : "[INFO] Setting current filter to slot 5 " [2018-02-15T21:41:48.446 CET INFO ][ org.kde.kstars.indi] - ASI EFW : "[INFO] SelectFilter(): no fw_id " crap, previous comment belongs to https://github.com/indilib/indi/issues/514 (though this ticket is also not fixed yet) Can you please check if this issue is fixed? I merged your PR on Github. The changes in asi_wheel now prevent 'filter slot 0' to arrive at kstars, so this bug is not triggered anymore. I do think kstars should handle such an illegal slot without crashing though. So is it fixed ? No. But it does not get triggered by asi_wheel anymore. It is fixed since it now checks for the value of the index. |