Hi

I apologize if my question is inane, because I'm rather new to INDI and hardware even though I've worked on KStars for long.

I have an old ZWO ASI 290MC-Cool camera (which is now discontinued), and it was working fine until I had to make a system update during which I also updated `libindi` and `indi-3rdparty` drivers to `master` and built them from source. With this version of INDI, a previously working PyINDI client application exits with the following error message:

Dispatch command error(-1): INDI: <setNumberVector> bogus state (null) for ERATURE
<setNumberVector device="ASI290MC-Cool" name="ERATURE" state="(null)" timeout="0" timestamp="2021-01-09T10:05:42"/>
RecursionError: maximum recursion depth exceeded while calling a Python object

And the corresponding output of the `indiserver indi_asi_ccd` command is:
2021-01-09T10:05:37: startup: indiserver indi_asi_ccd
2021-01-09T10:05:42: Driver indi_asi_ccd: Impossible IPState 455801016
2021-01-09T10:05:42: Driver indi_asi_ccd: stderr EOF
<delProperty device="ZWO CCD ASI290MC-Cool"/>
<delProperty device="ASI290MC-Cool"/>
Child process 4121986 died
2021-01-09T10:05:42: Driver indi_asi_ccd: restart #1
2021-01-09T10:05:42: Client 0: read: Connection reset by peer

If I try to fire up KStars (recent git master) and Ekos and try to connect to the running indiserver on localhost, KStars segfaults with the following backtrace (as produced by the KDE Crash Handler):
Application: KStars (kstars), signal: Aborted

[KCrash Handler]
#4  0x00007f1041a7b615 in raise () from /usr/lib/libc.so.6
#5  0x00007f1041a64862 in abort () from /usr/lib/libc.so.6
#6  0x00007f1041dff86a in __gnu_cxx::__verbose_terminate_handler () at /build/gcc/src/gcc/libstdc++-v3/libsupc++/vterminate.cc:95
#7  0x00007f1041e0bd9a in __cxxabiv1::__terminate (handler=<optimized out>) at /build/gcc/src/gcc/libstdc++-v3/libsupc++/eh_terminate.cc:48
#8  0x00007f1041e0be07 in std::terminate () at /build/gcc/src/gcc/libstdc++-v3/libsupc++/eh_terminate.cc:58
#9  0x00007f1041e0c0ae in __cxxabiv1::__cxa_throw (obj=obj@entry=0x55a8c6b28b10, tinfo=0x7f1041f38208 <typeinfo for std::logic_error>, dest=0x7f1041e21e20 <std::logic_error::~logic_error()>) at /build/gcc/src/gcc/libstdc++-v3/libsupc++/eh_throw.cc:95
#10 0x00007f1041e02445 in std::__throw_logic_error (__s=__s@entry=0x55a8c0e35950 "basic_string::_M_construct null not valid") at /build/gcc/src/gcc/libstdc++-v3/src/c++11/functexcept.cc:66
#11 0x000055a8c0c2b6e8 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*> (this=this@entry=0x7ffd1aa051f0, __beg=__beg@entry=0x0, __end=__end@entry=0xffffffffffffffff <error: Cannot access memory at address 0xffffffffffffffff>) at /usr/include/c++/10.2.0/bits/basic_string.tcc:212
#12 0x000055a8c0c2b421 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char const*> (__end=0xffffffffffffffff <error: Cannot access memory at address 0xffffffffffffffff>, __beg=0x0, this=0x7ffd1aa051f0) at /usr/include/c++/10.2.0/bits/basic_string.h:247
#13 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*> (__end=0xffffffffffffffff <error: Cannot access memory at address 0xffffffffffffffff>, __beg=0x0, this=0x7ffd1aa051f0) at /usr/include/c++/10.2.0/bits/basic_string.h:266
#14 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string (__a=..., __s=0x0, this=0x7ffd1aa051f0) at /usr/include/c++/10.2.0/bits/basic_string.h:527
#15 INDI::BaseDevice::messageQueue[abi:cxx11](int) const (this=<optimized out>, index=<optimized out>) at /home/akarsh/devel/kde-devel/src/indi/libs/indibase/basedevice.cpp:1233
#16 0x000055a8c069706d in INDI_D::updateMessageLog (this=0x55a8c5605b50, idv=0x7f0ffc002920, messageID=<optimized out>) at /home/akarsh/devel/kde-devel/src/kstars/kstars/indi/indidevice.cpp:310
#17 0x00007f104283c582 in QObject::event(QEvent*) () from /usr/lib/libQt5Core.so.5
#18 0x00007f10432d9752 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#19 0x00007f104280fa7a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#20 0x00007f1042812573 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQt5Core.so.5
#21 0x00007f10428690a4 in ?? () from /usr/lib/libQt5Core.so.5
#22 0x00007f10416578f4 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#23 0x00007f10416ab821 in ?? () from /usr/lib/libglib-2.0.so.0
#24 0x00007f1041656121 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#25 0x00007f10428686e1 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#26 0x00007f104280e3fc in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#27 0x00007f1042816894 in QCoreApplication::exec() () from /usr/lib/libQt5Core.so.5
#28 0x000055a8c046d502 in main (argc=<optimized out>, argv=<optimized out>) at /home/akarsh/devel/kde-devel/src/kstars/kstars/main.cpp:349
[Inferior 1 (process 4125822) detached]

and the corresponding output of `indiserver indi_asi_ccd` command is:
2021-01-09T10:16:37: startup: indiserver indi_asi_ccd 
2021-01-09T10:16:56: Driver indi_asi_ccd: Impossible IPState -353449800
2021-01-09T10:16:56: Driver indi_asi_ccd: stderr EOF
<delProperty device="ZWO CCD ASI290MC-Cool"/>
<delProperty device="ASI290MC-Cool"/>
2021-01-09T10:16:56: Driver indi_asi_ccd: restart #1
Child process 4125880 died
2021-01-09T10:16:56: Driver indi_asi_ccd: indi_asi_ccd dispatch error: Property WCS_CONTROL is not defined in ZWO CCD ASI290MC-Cool.

Can anyone advise me on how to resolve this issue? It appears that we have some regression in the `indi-3rdparty` ASI drivers that may not support this camera?

Thanks for your help!

Read More...