Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - kkretzsch

Pages: [1]
Bug Reports / Assertion in nouveau_pushbuf_data
« on: 2018 May 19 10:33:51 »
Hi Juan,
after starting the docuemnt browser I often run into an assertion as shown below. Seems to be an problem between the qt5 webengine  and the nouveau driver?


(gdb) bt
#0  0x00007f87dc4b6428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54
#1  0x00007f87dc4b802a in __GI_abort () at abort.c:89
#2  0x00007f87dc4aebd7 in __assert_fail_base (fmt=<optimized out>, assertion=assertion@entry=0x7f87cc698729 "kref", file=file@entry=0x7f87cc69870a "../../nouveau/pushbuf.c",
    line=line@entry=727, function=function@entry=0x7f87cc698750 "nouveau_pushbuf_data") at assert.c:92
#3  0x00007f87dc4aec82 in __GI___assert_fail (assertion=0x7f87cc698729 "kref", file=0x7f87cc69870a "../../nouveau/pushbuf.c", line=727,
    function=0x7f87cc698750 "nouveau_pushbuf_data") at assert.c:101
#4  0x00007f87cc696b04 in nouveau_pushbuf_data () from /usr/lib/x86_64-linux-gnu/
#5  0x00007f87cc696a4b in nouveau_pushbuf_data () from /usr/lib/x86_64-linux-gnu/
#6  0x00007f87cc696b99 in ?? () from /usr/lib/x86_64-linux-gnu/
#7  0x00007f87cc696e3f in ?? () from /usr/lib/x86_64-linux-gnu/
#8  0x00007f87cc697a00 in nouveau_pushbuf_kick () from /usr/lib/x86_64-linux-gnu/
#9  0x00007f87cd067ab6 in ?? () from /usr/lib/x86_64-linux-gnu/dri/
#10 0x00007f87ccd481c6 in ?? () from /usr/lib/x86_64-linux-gnu/dri/
#11 0x00007f87cce8e782 in ?? () from /usr/lib/x86_64-linux-gnu/dri/
#12 0x00007f87da9c74cc in ?? () from /usr/lib/x86_64-linux-gnu/mesa/
#13 0x00007f87e90cf68a in QGLXContext::swapBuffers(QPlatformSurface*) () from /opt/PixInsight/bin/lib/qt-plugins/xcbglintegrations/
#14 0x00007f87de12a55d in QOpenGLContext::swapBuffers(QSurface*) () from /opt/PixInsight/bin/lib/
#15 0x00007f87de38fae6 in QPlatformBackingStore::composeAndFlush(QWindow*, QRegion const&, QPoint const&, QPlatformTextureList*, QOpenGLContext*, bool) ()
   from /opt/PixInsight/bin/lib/
#16 0x00007f87cea3c949 in QXcbBackingStore::composeAndFlush(QWindow*, QRegion const&, QPoint const&, QPlatformTextureList*, QOpenGLContext*, bool) ()
   from /opt/PixInsight/bin/lib/
#17 0x00007f87de6f9fef in QWidgetBackingStore::qt_flush(QWidget*, QRegion const&, QBackingStore*, QWidget*, QPoint const&, QPlatformTextureList*, QWidgetBackingStore*) ()
   from /opt/PixInsight/bin/lib/
---Type <return> to continue, or q <return> to quit---
#18 0x00007f87de6fb548 in QWidgetBackingStore::flush(QWidget*) () from /opt/PixInsight/bin/lib/
#19 0x00007f87de6fc250 in QWidgetBackingStore::doSync() () from /opt/PixInsight/bin/lib/
#20 0x00007f87de6fd8c9 in QWidgetBackingStore::sync() () from /opt/PixInsight/bin/lib/
#21 0x00007f87de716ebf in QWidgetPrivate::syncBackingStore() () from /opt/PixInsight/bin/lib/
#22 0x00007f87de72b614 in QWidget::event(QEvent*) () from /opt/PixInsight/bin/lib/
#23 0x00007f87de818eeb in QMainWindow::event(QEvent*) () from /opt/PixInsight/bin/lib/
#24 0x00007f87de6ee23c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /opt/PixInsight/bin/lib/
#25 0x00007f87de6f4f80 in QApplication::notify(QObject*, QEvent*) () from /opt/PixInsight/bin/lib/
#26 0x00000000005f1c9f in ?? ()
#27 0x00007f87ddb00275 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /opt/PixInsight/bin/lib/
#28 0x00007f87ddb025c3 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /opt/PixInsight/bin/lib/
#29 0x00007f87ddb502d3 in postEventSourceDispatch(_GSource*, int (*)(void*), void*) () from /opt/PixInsight/bin/lib/
#30 0x00007f87e7112197 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/
#31 0x00007f87e71123f0 in ?? () from /lib/x86_64-linux-gnu/
#32 0x00007f87e711249c in g_main_context_iteration () from /lib/x86_64-linux-gnu/
#33 0x00007f87ddb4fb1c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/PixInsight/bin/lib/
#34 0x00007f87ddafe6eb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /opt/PixInsight/bin/lib/
#35 0x00007f87ddb068a4 in QCoreApplication::exec() () from /opt/PixInsight/bin/lib/
#36 0x0000000000463360 in ?? ()
#37 0x00007f87dc4a1830 in __libc_start_main (main=0x45fe70, argc=1, argv=0x7ffe69c546f8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>,
    stack_end=0x7ffe69c546e8) at ../csu/libc-start.c:291
#38 0x000000000048e473 in ?? ()

Tutorials and Processing Examples / INDI client tutorial videos
« on: 2017 November 09 10:21:04 »
I managed to create some videos showing new and old features of the INDI client in PixInsight 1.8.5

Getting started with INDI client:

Image Acquisition including centering to target coordinates

Mosaic acquisition with new BatchAcquisition script


PCL and PJSR Development / Network transfer gets aborted
« on: 2015 September 02 14:52:35 »
I am experimenting with the C++ NetworkTransfer API to get some data from the Simbad database. The download always gets aborted. The docu says that a transfer can get aborted by an event handler. I am running at least two Timer threads in the background so I am wondering how I can avoid those aborts.


Bug Reports / Missing escaping in Makefile generator
« on: 2014 December 22 11:23:18 »
Hi Juan,
Makefile generation didn't work on my workspace since there are some special characters in my PCLDIR directory (e.g. /C++/.../g++/) which I think have to be escaped when using in regular expressions.

    var escaped_PCLSRCDIR = PCLSRCDIR.replace(/([.*+?^=!:${}()|\[\]\\])/g, "\\$1");
    var escaped_PCLDIR = PCLDIR.replace(/([.*+?^=!:${}()|\[\]\\])/g, "\\$1");

Shall I send a pull request on github?

Additionally, it seems that generating debug makefiles removes makefiles which were generated before. I modified the script to write removing and generating steps to the console (see below). In the end the makefile "Makefile" disappeared.  I unchecked the "All platforms" check box and choosed Linux as platform.


==> Removing makefile:

==> Generating makefile:
* Directory created: /home/klaus/data/C++/PixInsightINDIclient/module/linux/g++/x64/Release

==> Generating makefile:

==> Removing makefile:

==> Generating makefile:
* Directory created: /home/klaus/data/C++/PixInsightINDIclient/module/linux/g++/x64/Debug


I am using the DeleteRight and DeleteLeft methods of the String class (String.h) to transform a String (actually an IsoString), e.g "%10.8m" into "10.8". So I want to remove the last and the first character from the source String. This works perfectly as long as the destination string is shorter than 4 character/bytes. If the destination String is 4 bytes long I get wrong results, e.g. with the example string above  "0.88" instead of "10.8". I debugged the code and found out the memcpy method in the CharTraits.h:577 file is responsible for that (see gdb session log below).

The source and destination addresses are only one byte away, so the buffer overlap here and I think a memmove would be the better choice than a memcpy (see String.h:1407)


pcl::GenericString<char, pcl::IsoCharTraits, pcl::StandardAllocator>::Delete (this=0x7fffffffdae0, i=0, n=1) at /home/klaus/C++/PCL_dev/include/pcl/String.h:1382
1382          if ( n > 0 )
(gdb) n
1384             size_type len = Length();
(gdb) n
1385             if ( i < len ) // index must be valid
(gdb) n
1387                n = pcl::Min( n, len-i );  // constrain to delete existing chars.
(gdb) n
1388                if ( n == len )   // deleting the entire string
(gdb) n
1392                   SetUnique();   // ensure that only we own these chars.
(gdb) n
1394                   size_type newLen = len-n;
(gdb) n
1395                   T* old = data->string;
(gdb) n
1398                   if ( data->ShouldReallocate( newLen ) )
(gdb) n
1406                   if ( i < newLen )
(gdb) n
1407                      R::Copy( data->string+i, old+i+n, newLen-i );
(gdb) print old+i+n
$22 = 0x84c171 "10.8"
(gdb) print newLen-i
$23 = 4
(gdb) print data->string+1
$24 = 0x84c171 "10.8"
(gdb) print data->string+i
$25 = 0x84c170 "%10.8"
(gdb) s
pcl::IsoCharTraits::Copy (dst=0x84c170 "%10.8", src=0x84c171 "10.8", n=4) at /home/klaus/C++/PCL_dev/include/pcl/CharTraits.h:577
577           ::memcpy( dst, src, n );
(gdb) x/4b dst
0x84c170:       37      49      48      46
(gdb) x/4bx dst
0x84c170:       0x25    0x31    0x30    0x2e
(gdb) x/4bx src
0x84c171:       0x31    0x30    0x2e    0x38
(gdb) n
578        }
(gdb) x/4bx dst
0x84c170:       0x30    0x2e    0x38    0x38
(gdb) x/4bx src
0x84c171:       0x2e    0x38    0x38    0x38


Pages: [1]