Bug 420187 - Ekos crashes when connecting INDIGO with active cameras
Summary: Ekos crashes when connecting INDIGO with active cameras
Status: RESOLVED UNMAINTAINED
Alias: None
Product: kstars
Classification: Applications
Component: general (show other bugs)
Version: 3.4.1
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: Jasem Mutlaq
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-04-17 09:38 UTC by boris
Modified: 2021-09-13 06:11 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description boris 2020-04-17 09:38:04 UTC
SUMMARY

I am trying to use Ekos with an INDIGO server. Conencting when all the devices are in disconnected state and the profile is not set to auto connect, I can successfully connect. Connecting devices slowly one by one, I can get everything online and Ekos seems to work as expected.

When Camera devices are in connected state (or get connected via auto connect) upon starting Ekos, kstars crashes.

Scenario: Cameras are in connected state already

#6  0x000055ea24c138df in Ekos::Capture::checkCCD (this=0x55ea299073d0, ccdNum=<optimized out>) at ./kstars/ekos/capture/capture.cpp:807
#7  0x000055ea24c15706 in Ekos::Capture::addCCD (this=0x55ea299073d0, newCCD=newCCD@entry=0x55ea2985e7b0) at ./kstars/ekos/capture/capture.cpp:405
#8  0x000055ea24b95551 in Ekos::Manager::setCCD (this=0x55ea28ae13c0, ccdDevice=0x55ea2985e7b0) at /usr/include/c++/9/bits/unique_ptr.h:352
#9  0x00007efd118f8558 in QMetaObject::activate(QObject*, int, int, void**) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#10 0x000055ea24a82cb6 in INDIListener::newCCD (this=this@entry=0x55ea292c5510, _t1=<optimized out>) at ./obj-x86_64-linux-gnu/kstars/KStarsLib_autogen/FRI4DANIHA/moc_indilistener.cpp:409
#11 0x000055ea24b1b9f1 in INDIListener::registerProperty (this=0x55ea292c5510, prop=0x7efca8038810) at ./kstars/indi/indilistener.cpp:269
#12 0x000055ea24abc124 in INDIListener::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at ./obj-x86_64-linux-gnu/kstars/KStarsLib_autogen/FRI4DANIHA/moc_indilistener.cpp:182
#13 0x00007efd118f8e4a in QObject::event(QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#14 0x00007efd1240aa86 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#15 0x00007efd12413e00 in QApplication::notify(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#16 0x00007efd118cca2a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#17 0x00007efd118cf6a8 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#18 0x00007efd11925037 in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#19 0x00007efd103d58bd in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#20 0x00007efd103d5b40 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#21 0x00007efd103d5be3 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#22 0x00007efd11924635 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#23 0x00007efd118cb5cb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#24 0x00007efd118d3336 in QCoreApplication::exec() () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#25 0x000055ea248586ac in main (argc=<optimized out>, argv=<optimized out>) at ./kstars/main.cpp:332

GDB output:

(gdb) p currentCCD
$1 = (ISD::CCD *) 0x5568e8d32600
(gdb) p *currentCCD
$2 = {<ISD::DeviceDecorator> = {<ISD::GDInterface> = {<QObject> = {<No data fields>}, static staticMetaObject = {d = {superdata = 0x7f239a7ec980 <QObject::staticMetaObject>, stringdata = 0x5568e3b394c0 <qt_meta_stringdata_ISD__GDInterface>, 
          data = 0x5568e3b39280 <qt_meta_data_ISD__GDInterface>, static_metacall = 0x5568e3448880 <ISD::GDInterface::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, dType = KSTARS_UNKNOWN, driverInterface = 0, 
      driverVersion = {static null = {<No data fields>}, d = 0x7f239a61c680 <QArrayData::shared_null>}, properties = {<QListSpecialMethods<INDI::Property*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {
                      static _S_alignment = 4, _M_i = -1}, <No data fields>}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f238401cbf0}, d = 0x7f238401cbf0}}}, static staticMetaObject = {d = {superdata = 0x5568e3d65ec0 <ISD::GDInterface::staticMetaObject>, 
        stringdata = 0x5568e3b38f20 <qt_meta_stringdata_ISD__DeviceDecorator>, data = 0x5568e3b38e40 <qt_meta_data_ISD__DeviceDecorator>, static_metacall = 0x5568e3459a20 <ISD::DeviceDecorator::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, 
        relatedMetaObjects = 0x0, extradata = 0x0}}, baseDevice = 0x0, clientManager = 0x5568e8273bb0, interfacePtr = 0x7f2330000fd0}, static staticMetaObject = {d = {superdata = 0x5568e3d3aaa0 <ISD::DeviceDecorator::staticMetaObject>, 
      stringdata = 0x5568e3b3bd60 <qt_meta_stringdata_ISD__CCD>, data = 0x5568e3b3baa0 <qt_meta_data_ISD__CCD>, static_metacall = 0x5568e3480cc0 <ISD::CCD::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, 
  BType = 805310656, filter = {static null = {<No data fields>}, d = 0x5568e8375cf0}, ISOMode = false, HasGuideHead = false, HasCooler = false, CanCool = false, HasCoolerControl = false, HasVideoStream = false, IsLooping = false, seqPrefix = {
    static null = {<No data fields>}, d = 0x0}, fitsDir = {static null = {<No data fields>}, d = 0xaae7fdfad78e3e0d}, nextSequenceID = 72024, streamWindow = std::unique_ptr<StreamWG> = {get() = 0xe1fcf7ce81330800}, streamW = 18107806, streamH = 0, normalTabID = 0, 
  calibrationTabID = 0, focusTabID = 0, guideTabID = 1108214016, alignTabID = -50603630, 
  BLOBFilename = "\343\241O\024\001\000\000\006,x\307\365\374\343\242Q\025\001", '\000' <repeats 21 times>, "\001\020E\226\334\373\373ݗG\024(o\277\362\374\344\245T\027\001", '\000' <repeats 25 times>, "\001\021I\232\336\373\372\340\323\326\360\373\346\251W\031\002", '\000' <repeats 29 times>, "\001\024V\250\352\375\377\376\364\273h\035\002", '\000' <repeats 30 times>, "\001\021H\231\336\374\376\376\376\375\355\266e \002", '\000' <repeats 28 times>..., primaryCCDBLOB = 0xffe5e4c5ff428ccc, readyTimer = std::unique_ptr<QTimer> = {
    get() = 0xff000000ff83390b}, primaryChip = std::unique_ptr<ISD::CCDChip> = {get() = 0xff000000ff000000}, guideChip = std::unique_ptr<ISD::CCDChip> = {get() = 0xffd4f9fdff0b3b8a}, m_Media = std::unique_ptr<ISD::WSMedia> = {get() = 0xff1e0200ffecb361}, 
  transferFormat = (unknown: 4278190080), targetTransferFormat = (unknown: 4278190080), telescopeType = (unknown: 4278190080), gainN = 0xffdf9b4affd4f9fb, gainPerm = (unknown: 4279369984), m_FITSViewerWindows = {wp = {d = 0xff000000ff000000, value = 0xff3e8ed7ff00000d}}, 
  m_ImageViewerWindow = {wp = {d = 0xffaa5819fffafde7, value = 0xff000000ff010000}}, m_LastNotificationTS = {d = {d = 0xff81cef7ff000833, data = {status = 51, msecs = -138749052780536}}}, m_ExposurePresets = {d = 0xff4d1401fffce19e}, m_ExposurePresetsMinMax = {
    first = -5.4861292803319049e+303, second = -5.4861292803319049e+303}, fileWriteBuffer = 0xff010e42ff000000 <error: Cannot access memory at address 0xff010e42ff000000>, fileWriteBufferSize = -7153157, fileWriteFilename = {static null = {<No data fields>}, 
    d = 0xff000006ff4f1401}, fileWriteThread = {d = <incomplete type>}}


(gdb) p targetChip
$3 = (ISD::CCDChip *) 0xff000000ff000000
Comment 1 Jasem Mutlaq 2021-09-13 06:11:45 UTC
Only INDI is supposed by KStars.