Bill,

I ended up replying only to you. I am adding doing to the list now.

The stack and thread info I sent you earlier is when I open the config
window, select a new audio device, and click ok. The following info is when
I edit wsjtx.ini by hand, change the device names, run wsjtx and wait for a
TX cycle. The application crashes at the top of the minute at the start of
a TX cycle.

(gdb) backtrace
#0  0x00007fffebcf87c8 in ?? ()
   from /usr/local/qt-5.1.0/plugins/platforms/libqxcb.so
#1  0x00007fffebcf3ffb in
QFontEngineFT::loadGlyph(QFontEngineFT::QGlyphSet*, unsigned int, QFixed,
QFontEngine::GlyphFormat, bool) const ()
   from /usr/local/qt-5.1.0/plugins/platforms/libqxcb.so
#2  0x00007fffebcf7fc9 in QFontEngineFT::lockedAlphaMapForGlyph(unsigned
int, QFixed, QFontEngine::GlyphFormat, QTransform const&, QPoint*) ()
   from /usr/local/qt-5.1.0/plugins/platforms/libqxcb.so
#3  0x00007ffff632c0d9 in QRasterPaintEngine::drawCachedGlyphs(int,
unsigned int const*, QFixedPoint const*, QFontEngine*) ()
   from /usr/local/qt-5.1.0/lib/libQt5Gui.so.5
#4  0x00007ffff6330823 in ?? () from /usr/local/qt-5.1.0/lib/libQt5Gui.so.5
#5  0x00007ffff6346356 in ?? () from /usr/local/qt-5.1.0/lib/libQt5Gui.so.5
#6  0x00007ffff622dc72 in QTextLine::draw(QPainter*, QPointF const&,
QTextLayout::FormatRange const*) const () from
/usr/local/qt-5.1.0/lib/libQt5Gui.so.5
#7  0x00007ffff634a8ae in ?? () from /usr/local/qt-5.1.0/lib/libQt5Gui.so.5
#8  0x00007ffff634b2e6 in QPainter::drawText(QRect const&, int, QString
const&, QRect*) () from /usr/local/qt-5.1.0/lib/libQt5Gui.so.5
#9  0x00007ffff6bcef83 in QStyle::drawItemText(QPainter*, QRect const&,
int, QPalette const&, bool, QString const&, QPalette::ColorRole) const ()
   from /usr/local/qt-5.1.0/lib/libQt5Widgets.so.5
#10 0x00007ffff6cb6fec in QLabel::paintEvent(QPaintEvent*) ()
   from /usr/local/qt-5.1.0/lib/libQt5Widgets.so.5
---Type <return> to continue, or q <return> to quit---
#11 0x00007ffff6ba8360 in QWidget::event(QEvent*) ()
   from /usr/local/qt-5.1.0/lib/libQt5Widgets.so.5
#12 0x00007ffff6cb0f76 in QFrame::event(QEvent*) ()
   from /usr/local/qt-5.1.0/lib/libQt5Widgets.so.5
#13 0x00007ffff6b71a64 in QApplicationPrivate::notify_helper(QObject*,
QEvent*)
    () from /usr/local/qt-5.1.0/lib/libQt5Widgets.so.5
#14 0x00007ffff6b74db6 in QApplication::notify(QObject*, QEvent*) ()
   from /usr/local/qt-5.1.0/lib/libQt5Widgets.so.5
#15 0x00007ffff5c80fa4 in QCoreApplication::notifyInternal(QObject*,
QEvent*)
    () from /usr/local/qt-5.1.0/lib/libQt5Core.so.5
#16 0x00007ffff6ba523b in ?? () from
/usr/local/qt-5.1.0/lib/libQt5Widgets.so.5
#17 0x00007ffff6ba5f84 in
QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*>
const&, int, QRegion const&, QPoint const&, int, QPainter*,
QWidgetBackingStore*) () from /usr/local/qt-5.1.0/lib/libQt5Widgets.so.5
#18 0x00007ffff6ba503e in ?? () from
/usr/local/qt-5.1.0/lib/libQt5Widgets.so.5
#19 0x00007ffff6ba5f84 in
QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*>
const&, int, QRegion const&, QPoint const&, int, QPainter*,
QWidgetBackingStore*) () from /usr/local/qt-5.1.0/lib/libQt5Widgets.so.5
#20 0x00007ffff6ba5d1f in
QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*>
const&, int, QRegion const&, QPoint const&, int, QPainter*,
QWidgetBackingStore*) () from /usr/local/qt-5.1.0/lib/libQt5Widgets.so.5
#21 0x00007ffff6ba503e in ?? () from
/usr/local/qt-5.1.0/lib/libQt5Widgets.so.5
#22 0x00007ffff6b7d999 in ?? () from
/usr/local/qt-5.1.0/lib/libQt5Widgets.so.5
---Type <return> to continue, or q <return> to quit---
#23 0x00007ffff6b9d32e in QWidgetPrivate::syncBackingStore() ()
   from /usr/local/qt-5.1.0/lib/libQt5Widgets.so.5
#24 0x00007ffff6ba872f in QWidget::event(QEvent*) ()
   from /usr/local/qt-5.1.0/lib/libQt5Widgets.so.5
#25 0x00007ffff6cc4ddb in QMainWindow::event(QEvent*) ()
   from /usr/local/qt-5.1.0/lib/libQt5Widgets.so.5
#26 0x00007ffff6b71a64 in QApplicationPrivate::notify_helper(QObject*,
QEvent*)
    () from /usr/local/qt-5.1.0/lib/libQt5Widgets.so.5
#27 0x00007ffff6b74db6 in QApplication::notify(QObject*, QEvent*) ()
   from /usr/local/qt-5.1.0/lib/libQt5Widgets.so.5
#28 0x00007ffff5c80fa4 in QCoreApplication::notifyInternal(QObject*,
QEvent*)
    () from /usr/local/qt-5.1.0/lib/libQt5Core.so.5
#29 0x00007ffff5c83870 in
QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) ()
from /usr/local/qt-5.1.0/lib/libQt5Core.so.5
#30 0x00007ffff5ccaef3 in ?? () from /usr/local/qt-5.1.0/lib/libQt5Core.so.5
#31 0x00007ffff3eb9d53 in g_main_context_dispatch ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#32 0x00007ffff3eba0a0 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#33 0x00007ffff3eba164 in g_main_context_iteration ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#34 0x00007ffff5ccb334 in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
() from /usr/local/qt-5.1.0/lib/libQt5Core.so.5
#35 0x00007ffff5c7fd3b in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>---Type <return> to
continue, or q <return> to quit---
) () from /usr/local/qt-5.1.0/lib/libQt5Core.so.5
#36 0x00007ffff5c83e00 in QCoreApplication::exec() ()
   from /usr/local/qt-5.1.0/lib/libQt5Core.so.5
#37 0x0000000000485075 in main (argc=1, argv=0x7fffffffe108) at main.cpp:55
(gdb)
(gdb) info threads
  Id   Target Id         Frame
  6    Thread 0x7fffcd544700 (LWP 6624) "QProcessManager"
0x00007ffff4d34033 in select () at ../sysdeps/unix/syscall-template.S:82
  5    Thread 0x7fffd1d46700 (LWP 6623) "threaded-ml" 0x00007ffff4d2f313 in
__GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized
out>)
    at ../sysdeps/unix/sysv/linux/poll.c:87
  4    Thread 0x7fffe0800700 (LWP 6622) "gdbus" 0x00007ffff4d2f313 in
__GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized
out>)
    at ../sysdeps/unix/sysv/linux/poll.c:87
  3    Thread 0x7fffe1001700 (LWP 6621) "dconf worker" 0x00007ffff4d2f313
in __GI___poll (fds=<optimized out>, nfds=<optimized out>,
timeout=<optimized out>)
    at ../sysdeps/unix/sysv/linux/poll.c:87
  2    Thread 0x7fffe945b700 (LWP 6620) "QXcbEventReader"
0x00007ffff4d2f313 in __GI___poll (fds=<optimized out>, nfds=<optimized
out>,
    timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
* 1    Thread 0x7ffff7fbe780 (LWP 6617) "wsjtx" 0x00007fffebcf87c8 in ?? ()
   from /usr/local/qt-5.1.0/plugins/platforms/libqxcb.so
(gdb)

73,

-- Edson

On Sun, Aug 4, 2013 at 5:22 PM, Edson W. R. Pereira <[email protected]>wrote:

>
> Hi Bill,
>
> On Sun, Aug 4, 2013 at 4:49 PM, Bill Somerville <[email protected]>wrote:
>
>> On 04/08/2013 14:02, Edson W. R. Pereira wrote:
>>
>> Hi Edson,
>>
>> thanks for the feedback.
>>
>>
>>> If I edit wsprx.ini and change the audio devices there, wsprx starts and
>>> I can decode signals. However TX fails with a SIGSEGV.
>>>
>> I think you saying that the configuration screen to select the audio
>> devices is not working in your build?
>>
>> This I don't understand as that code is pretty straightforward. Maybe you
>> are not managing to exit the program cleanly after setting the
>> configuration? The updated settings are only written to the .ini file right
>> at the end of the program exit.
>>
>> Perhaps you could try setting the audio devices then exit immediately to
>> get an updated .ini file.
>>
>>
> The config window is working. The issue happens when I press "ok" at the
> config window. I suspect the problem is at the (re)initialization code for
> the audio device. But, if I start the program with the correct device in
> the .ini file, RX works.
>
>
>> As for the TX crash, I will make a Linux build and do some testing here.
>> The error looks like something has scribbled over the heap storage or a
>> double free () call  which is being picked up by the standard glibc debug
>> heap checking.
>>
>> If that is a debug executable; can you run it to the SEGV under gdb and
>> do a stack backtrace (bt) please?
>>
>
> (gdb) backtrace
> #0  0x00007ffff4c7d425 in __GI_raise (sig=<optimized out>)
>     at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
> #1  0x00007ffff4c80b8b in __GI_abort () at abort.c:91
> #2  0x00007ffff4cbb39e in __libc_message (do_abort=2,
>     fmt=0x7ffff4dc5008 "*** glibc detected *** %s: %s: 0x%s ***\n")
>     at ../sysdeps/unix/sysv/linux/libc_fatal.c:201
> #3  0x00007ffff4cc5b96 in malloc_printerr (action=3,
>     str=0x7ffff4dc5188 "free(): corrupted unsorted chunks",
>     ptr=<optimized out>) at malloc.c:5018
> #4  0x00007ffff5cae548 in QObject::~QObject() ()
>    from /usr/local/qt-5.1.0/lib/libQt5Core.so.5
> #5  0x00007ffff5aadb59 in QPropertyAnimation::~QPropertyAnimation() ()
>    from /usr/local/qt-5.1.0/lib/libQt5Core.so.5
> #6  0x00007ffff5ca9ac0 in QObject::event(QEvent*) ()
>    from /usr/local/qt-5.1.0/lib/libQt5Core.so.5
> #7  0x00007ffff6b71a64 in QApplicationPrivate::notify_helper(QObject*,
> QEvent*)
>     () from /usr/local/qt-5.1.0/lib/libQt5Widgets.so.5
> #8  0x00007ffff6b74db6 in QApplication::notify(QObject*, QEvent*) ()
>    from /usr/local/qt-5.1.0/lib/libQt5Widgets.so.5
> #9  0x00007ffff5c80fa4 in QCoreApplication::notifyInternal(QObject*,
> QEvent*)
>     () from /usr/local/qt-5.1.0/lib/libQt5Core.so.5
> #10 0x00007ffff5c83870 in
> QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) ()
> from /usr/local/qt-5.1.0/lib/libQt5Core.so.5
> ---Type <return> to continue, or q <return> to quit---
> #11 0x00007ffff5ccaef3 in ?? () from
> /usr/local/qt-5.1.0/lib/libQt5Core.so.5
> #12 0x00007ffff3eb9d53 in g_main_context_dispatch ()
>    from /lib/x86_64-linux-gnu/libglib-2.0.so.0
> #13 0x00007ffff3eba0a0 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
> #14 0x00007ffff3eba164 in g_main_context_iteration ()
>    from /lib/x86_64-linux-gnu/libglib-2.0.so.0
> #15 0x00007ffff5ccb334 in
> QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
> () from /usr/local/qt-5.1.0/lib/libQt5Core.so.5
> #16 0x00007ffff5c7fd3b in
> QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from
> /usr/local/qt-5.1.0/lib/libQt5Core.so.5
> #17 0x00007ffff5c83e00 in QCoreApplication::exec() ()
>    from /usr/local/qt-5.1.0/lib/libQt5Core.so.5
> #18 0x0000000000485075 in main (argc=1, argv=0x7fffffffe108) at main.cpp:55
> (gdb)
>
>
>>
>> It might be failing in a different thread from the main program thread.
>> An "info threads" helps, if the active thread is not thread 1, then switch
>> to thread 1 and do the backtrace there.
>>
>>
> (gdb) info threads
>   Id   Target Id         Frame
>   6    Thread 0x7fffcd544700 (LWP 6581) "QProcessManager"
> 0x00007ffff4d34033 in select () at ../sysdeps/unix/syscall-template.S:82
>   5    Thread 0x7fffd1d46700 (LWP 6580) "threaded-ml" 0x00007ffff4d2f313
> in __GI___poll (fds=<optimized out>, nfds=<optimized out>,
> timeout=<optimized out>)
>     at ../sysdeps/unix/sysv/linux/poll.c:87
>   4    Thread 0x7fffe0800700 (LWP 6579) "gdbus" 0x00007ffff4d2f313 in
> __GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized
> out>)
>     at ../sysdeps/unix/sysv/linux/poll.c:87
>   3    Thread 0x7fffe1001700 (LWP 6578) "dconf worker" 0x00007ffff4d2f313
> in __GI___poll (fds=<optimized out>, nfds=<optimized out>,
> timeout=<optimized out>)
>     at ../sysdeps/unix/sysv/linux/poll.c:87
>   2    Thread 0x7fffe945b700 (LWP 6577) "QXcbEventReader"
> 0x00007ffff4d2f313 in __GI___poll (fds=<optimized out>, nfds=<optimized
> out>,
>     timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
> * 1    Thread 0x7ffff7fbe780 (LWP 6574) "wsjtx" 0x00007ffff4c7d425 in
> __GI_raise (sig=<optimized out>) at
> ../nptl/sysdeps/unix/sysv/linux/raise.c:64
> (gdb)
>
> It does look to be related to threads.
>
> I am on Unbuntu 12.04 64 bits.
>
> Please let me know if if you need any additional checks.
>
> 73,
>
> -- Edson
>
>
_______________________________________________
Wsjt-devel mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/wsjt-devel

Reply via email to