discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] QT Gui mem alloc error - runs OK if R, C hints de


From: Tom McDermott
Subject: Re: [Discuss-gnuradio] QT Gui mem alloc error - runs OK if R, C hints deleted
Date: Tue, 26 Jun 2018 14:01:54 -0700

Thanks, Marcus:    re-built with debug symbols.  v3.7.11.1

Attached is the flowgraph causing the problem
 - both the GRC and the resultant top_block.py

It uses an OOT module that talks to OpenHPSDR hardware
over Ethernet - should have one thread running to receive Ethernet frames.
from:    https://github.com/Tom-McDermott/gr-hpsdr

Results from gdb:

(gdb) start
Temporary breakpoint 1 at 0x4934c0: file ../Modules/python.c, line 20.
Starting program: /usr/bin/python2 top_block.py
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Temporary breakpoint 1, main (argc=2, argv=0x7fffffffdfb8)
    at ../Modules/python.c:20
20    ../Modules/python.c: No such file or directory.


(gdb) break std::bad_alloc::what()
Function "std::bad_alloc::what()" not defined.
Make breakpoint pending on future shared library load? (y or [n]) y
Breakpoint 2 (std::bad_alloc::what()) pending.


(gdb) run
The program being debugged has been started already.
Start it from the beginning? (y or n) y
Starting program: /usr/bin/python2 top_block.py
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7fffdb463700 (LWP 29362)]
[New Thread 0x7fffdac62700 (LWP 29363)]
[New Thread 0x7fffd6461700 (LWP 29364)]
[New Thread 0x7fffd5c60700 (LWP 29365)]
[New Thread 0x7fffd145f700 (LWP 29366)]
[New Thread 0x7fffcec5e700 (LWP 29367)]
[New Thread 0x7fffce45d700 (LWP 29368)]
[New Thread 0x7fffbbf5b700 (LWP 29369)]
[New Thread 0x7fffbb75a700 (LWP 29370)]
[New Thread 0x7fffbaf59700 (LWP 29371)]
[New Thread 0x7fffabfff700 (LWP 29372)]
[New Thread 0x7fffab7fe700 (LWP 29373)]
[Thread 0x7fffabfff700 (LWP 29372) exited]


           --- this is output from the OOT module, not using docker --
Looking for Metis/Hermes card on interface eth0
Interface[0]:lo  Interface[1]:eth0  Interface[2]:docker0 
eth0 IP Address: 192.168.0.2
eth0 MAC Address: 90:b1:1c:6d:00:a7

[New Thread 0x7fffabfff700 (LWP 29375)]

Metis MAC address 00:04:A3:63:F9:8E
Metis IP address 192.168.0.7

gr::log :INFO: audio source - Audio sink arch: alsa
[New Thread 0x7fffa9518700 (LWP 29376)]
[New Thread 0x7fffa8d17700 (LWP 29377)]
[New Thread 0x7fff93ffd700 (LWP 29378)]
[New Thread 0x7fff937fc700 (LWP 29379)]
[New Thread 0x7fff92ffb700 (LWP 29380)]
[New Thread 0x7fff927fa700 (LWP 29381)]
[New Thread 0x7fff91ff9700 (LWP 29382)]
[New Thread 0x7fff917f8700 (LWP 29383)]
[New Thread 0x7fff90ff7700 (LWP 29384)]
[New Thread 0x7fff73fff700 (LWP 29385)]
[New Thread 0x7fff737fe700 (LWP 29386)]
[New Thread 0x7fff72ffd700 (LWP 29387)]
aUQt has caught an exception thrown from an event handler. Throwing
exceptions from an event handler is not supported in Qt. You must
reimplement QApplication::notify() and catch all exceptions there.

terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc

Thread 1 "python2" received signal SIGABRT, Aborted.
0x00007ffff7825428 in __GI_raise (address@hidden)
    at ../sysdeps/unix/sysv/linux/raise.c:54
54    ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.


(gdb) info threads
  Id   Target Id         Frame
* 1    Thread 0x7ffff7fb9700 (LWP 29361) "python2" 0x00007ffff7825428 in __GI_raise (address@hidden) at ../sysdeps/unix/sysv/linux/raise.c:54
  2    Thread 0x7fffdb463700 (LWP 29362) "python2" pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
  3    Thread 0x7fffdac62700 (LWP 29363) "python2" pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
  4    Thread 0x7fffd6461700 (LWP 29364) "python2" pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
  5    Thread 0x7fffd5c60700 (LWP 29365) "python2" pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
  6    Thread 0x7fffd145f700 (LWP 29366) "python2" pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
  7    Thread 0x7fffcec5e700 (LWP 29367) "python2" pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
  8    Thread 0x7fffce45d700 (LWP 29368) "python2" pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
  9    Thread 0x7fffbbf5b700 (LWP 29369) "dconf worker" 0x00007ffff78eb74d in poll () at ../sysdeps/unix/syscall-template.S:84
  10   Thread 0x7fffbb75a700 (LWP 29370) "gmain" 0x00007ffff78eb74d in poll ()
    at ../sysdeps/unix/syscall-template.S:84
  11   Thread 0x7fffbaf59700 (LWP 29371) "gdbus" 0x00007ffff78eb74d in poll ()
    at ../sysdeps/unix/syscall-template.S:84
  13   Thread 0x7fffab7fe700 (LWP 29373) "pool" syscall ()
    at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
  14   Thread 0x7fffabfff700 (LWP 29375) "python2" 0x00007ffff7bca8f3 in recvfrom () at ../sysdeps/unix/syscall-template.S:84
  15   Thread 0x7fffa9518700 (LWP 29376) "threaded-ml" 0x00007ffff78eb74d in poll () at ../sysdeps/unix/syscall-template.S:84
  16   Thread 0x7fffa8d17700 (LWP 29377) "sig_source_c9" pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
  17   Thread 0x7fff93ffd700 (LWP 29378) "sig_source_c8" pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
  18   Thread 0x7fff937fc700 (LWP 29379) "hermesNB3"
    0x00007fffe048d2db in gr::propagate_tags (block_id=3,
    rtags=std::vector of length 0, capacity 0, rrate=1,
    start_nitems_read=std::vector of length 1, capacity 1 = {...},
    d=0x1f58ef0, policy=<optimized out>)
    at /home/tom/gnuradio/gnuradio-runtime/lib/block_executor.cc:110
  19   Thread 0x7fff92ffb700 (LWP 29380) "fir_filter_ccf2" pthread_cond_timedwait@@GLIBC_2.3.2 ()
    at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225
  20   Thread 0x7fff927fa700 (LWP 29381) "keep_one_in_n5" pthread_cond_timedwait@@GLIBC_2.3.2 ()
    at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225
  21   Thread 0x7fff91ff9700 (LWP 29382) "multiply_cc4" pthread_cond_timedwait@@GLIBC_2.3.2 ()
    at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225
  22   Thread 0x7fff917f8700 (LWP 29383) "pwr_squelch_cc1" pthread_cond_timedwait@@GLIBC_2.3.2 ()
    at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225
  23   Thread 0x7fff90ff7700 (LWP 29384) "agc3_cc11" pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225
  24   Thread 0x7fff73fff700 (LWP 29385) "complex_to_floa" pthread_cond_timedwait@@GLIBC_2.3.2 ()
---Type <return> to continue, or q <return> to quit---
    at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225
  25   Thread 0x7fff737fe700 (LWP 29386) "audio_alsa_sink" pthread_cond_timedwait@@GLIBC_2.3.2 ()
    at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225
  26   Thread 0x7fff72ffd700 (LWP 29387) "freq_sink_c1" pthread_cond_timedwait@@GLIBC_2.3.2 ()
    at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225


(gdb) bt
#0  0x00007ffff7825428 in __GI_raise (address@hidden)
    at ../sysdeps/unix/sysv/linux/raise.c:54
#1  0x00007ffff782702a in __GI_abort () at abort.c:89
#2  0x00007ffff4f1884d in __gnu_cxx::__verbose_terminate_handler() ()
   from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3  0x00007ffff4f166b6 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x00007ffff4f16701 in std::terminate() ()
   from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#5  0x00007ffff4f16969 in __cxa_rethrow ()
   from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#6  0x00007ffff53946ee in QEventLoop::exec (address@hidden,
    flags=...) at kernel/qeventloop.cpp:218
#7  0x00007ffff539a4b9 in QCoreApplication::exec ()
    at kernel/qcoreapplication.cpp:1227
#8  0x00007ffff2d5522c in QApplication::exec () at kernel/qapplication.cpp:3828
#9  0x00007ffff3df2aeb in meth_QApplication_exec_ (sipArgs=<optimized out>)
    at sipQtGuipart9.cpp:38155
#10 0x00000000004bc3fa in call_function (oparg=<optimized out>,
    pp_stack=0x7fffffffd970) at ../Python/ceval.c:4350
#11 PyEval_EvalFrameEx () at ../Python/ceval.c:2987
#12 0x00000000004b9ab6 in PyEval_EvalCodeEx () at ../Python/ceval.c:3582
#13 0x00000000004c16e7 in fast_function (nk=<optimized out>,
    na=<optimized out>, n=<optimized out>, pp_stack=0x7fffffffdb70,
    func=<function at remote 0x7fffc2d2c0c8>) at ../Python/ceval.c:4445
#14 call_function (oparg=<optimized out>, pp_stack=0x7fffffffdb70)
    at ../Python/ceval.c:4370
#15 PyEval_EvalFrameEx () at ../Python/ceval.c:2987
#16 0x00000000004b9ab6 in PyEval_EvalCodeEx () at ../Python/ceval.c:3582
#17 0x00000000004eb30f in PyEval_EvalCode (locals=
    {'gr': <module at remote 0x7fffdeabc398>, 'QObject': <PyQt4.QtCore.pyqtWrapperType at remote 0xa8f050>, 'analog': <module at remote 0x7fffed62b910>, 'sip': <module at remote 0x7ffff6b53408>, '__package__': None, 'firdes': <type at remote 0x16f3c10>, 'top_block': <PyQt4.QtCore.pyqtWrapperType at remote 0x18fa910>, 'main': <function at remote 0x7fffc2d2c0c8>, '__doc__': None, 'OptionParser': <classobj at remote 0x7fffc2d754c8>, 'eng_option': <classobj at remote 0x7fffc2d75530>, 'blocks': <module at remote 0x7fffc84cd0c0>, 'Qt': <module at remote 0x7ffff7eb7da8>, '__builtins__': <module at remote 0x7ffff7f78b08>, '__file__': 'top_block.py', 'sys': <module at remote 0x7ffff7f78bb0>, 'Range': <type at remote 0x18cf810>, 'ctypes': <module at remote 0x7ffff7eb7b40>, 'hpsdr': <module at remote 0x7fffc2da22f0>, '__name__': '__main__', 'qtgui': <module at remote 0x7fffc416bd38>, 'eng_notation': <module at remote 0x7fffc41539b8>, 'filter': <module at remote 0x7fffc5db3de0>, 'pyqtSlot': <built-in function pyqtSlot>, 'x11...(truncated),
    globals={'gr': <module at remote 0x7fffdeabc398>, 'QObject': <PyQt4.QtCore.pyqtWrapperType at remote 0xa8f050>, 'analog': <module at remote 0x7fffed62b910>, 'sip': <module at remote 0x7ffff6b53408>, '__package__': None, 'firdes': <type at remote 0x16f3c10>, 'top_block': <PyQt4.QtCore.pyqtWrapperType at remote 0x18fa910>, 'main': <function at remote 0x7fffc2d2c0c8>, '__doc__': None, 'OptionParser': <classobj at remote 0x7fffc2d754c8>, 'eng_option': <classobj at remote 0x7fffc2d75530>, 'blocks': <module at remote 0x7fffc84cd0c0>, 'Qt': <module at remote 0x7ffff7eb7da8>, '__builtins__': <module at remote 0x7ffff7f78b08>, '__file__': 'top_block.py', 'sys': <module at remote 0x7ffff7f78bb0>, 'Range': <type at remote 0x18cf810>, 'ctypes': <module at remote 0x7ffff7eb7b40>, 'hpsdr': <module at remote 0x7fffc2da22f0>, '__name__': '__main__', 'qtgui': <module at remote 0x7fffc416bd38>, 'eng_notation': <module at remote 0x7fffc41539b8>, 'filter': <modul---Type <return> to continue, or q <return> to quit---Quit
(gdb) Quit
(gdb)



-- Tom, N5EG










On Tue, Jun 26, 2018 at 3:55 AM, Müller, Marcus (CEL) <address@hidden> wrote:
Ah, I said:

>(gdb)break std::bad_alloc::what()⏎
>
> (it should NOT complain that this symbol isn't already loaded. If it
> does, we might need to install the libststc++ debug symbols; haven't
> used Ubuntu in a while, but probably `apt install libstdc++-dbg` or
> `-dbgsym`

I was wrong, at that point it's totally OK to complain about missing
symbol. Just say it's OK to set the breakpoint on future library load.


On Tue, 2018-06-26 at 10:47 +0000, Müller, Marcus (CEL) wrote:
> Hi Tom!
>
> Hm, no, I wouldn't be aware of any limitations, and even if such
> exist,
> things shouldn't die with a std::bad_alloc!
>
> Ok, so I'm wondering how we can move forward with this. Let us try
> this:
>
> * Can you share a proof of failure flow graph with us? That way,
> everyone's definitely talking about the same thing.
> * I assume you've got GNU Radio built with debug symbols (cmake
> -DCMAKE_BUILD_TYPE=RelWithDebInfo). This might even work if it
> wasn't,
> but the backtraces below might be less exciting.
> * you'll need gdb
>
> gdb --args python2 /path/to/your/flowgraph.py⏎
>
> (things flutter by)
>
> (gdb)start⏎
>
> (things flutter by)
>
> (gdb)break std::bad_alloc::what()⏎
>
> (it should NOT complain that this symbol isn't already loaded. If it
> does, we might need to install the libststc++ debug symbols; haven't
> used Ubuntu in a while, but probably `apt install libstdc++-dbg` or
> `-
> dbgsym`)
>
> (gdb)run⏎
>
> (wait for the breakpoint defined above to trigger)
>
> (gdb)info threads⏎
>
> (this is the list of currently existing threads. Copy and save.)
>
> (gdb)bt⏎
>
> (short for `backtrace`. Now we should be getting a list that's
> basically like "walking an onion from the middle to the peel", if
> you're onion layers are defined by who called a function which called
> a
> function...)
>
> Share the output; if you look through it, the frame with the lowest
> number that already happens somewhere inside libgnuradio-qtgui
> probably
> contains info on where exactly that allocation happens that fails.
>
> You can "jump" into that frame with `frame <number>`, replacing
> <number> with the index given by #<number> in the backtrace. If these
> variables/symbols weren't optimized away during compilation, you can
> even use `print <variablename>` to print the values of local and
> global
> variables, or use `list` to print the source code of what you're
> looking at (that definitely requires debug info to be included with
> GNU
> Radio's build).
>
> Best regards,
> Marcus
>
> On Mon, 2018-06-25 at 16:52 -0700, Tom McDermott wrote:
> > Ubuntu 16.04.3
> > GRC 3.7.11.1   (from git)
> > I was on 3.7.13 couple of weeks ago, completely removed all of
> > gnuradio
> > and rebuilt trying to debug this.  3.7.11.1 had same problem.
> >
> >
> > Got back to the problem of several weeks ago.
> >
> > 1. When I try to use a QT GUI sink (such as frequency) the
> > invocation
> > of
> > the QT Gui Frequency sink in this example throws a memory
> > allocation
> > error.
> >
> > Qt has caught an exception thrown from an event handler. Throwing
> > exceptions from an event handler is not supported in Qt. You must
> > reimplement QApplication::notify() and catch all exceptions there.
> >
> > terminate called after throwing an instance of 'std::bad_alloc'
> >   what():  std::bad_alloc
> >
> > 2. If I remove the Row, Column GUI hints from just that one QT GUI
> > item, then it
> > comes up and runs OK. The other 9 of the QT controls (sliders,
> > choosers, entry,
> > ranges) still have their R,C hints.
> >
> > 3. Went back to the GRC file in step 1 that still has the R,C hints
> > in it
> > and it still fails with the error as shown in step 1.  It did come
> > up
> > and run
> > one time showing 'unable to set locale' error, but still
> > ran.  Never
> > seen that before.
> >
> >
> > Is there some limitation against using R,C hints on the QT displays
> > (time,
> > frequency, etc.)?
> >
> > -- Tom, N5EG
> >
> >
> >
> >
> > _______________________________________________
> > Discuss-gnuradio mailing list
> > address@hidden
> > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>
> _______________________________________________
> Discuss-gnuradio mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

_______________________________________________
Discuss-gnuradio mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Attachment: Alexiares_Test-Full.grc
Description: application/gnuradio-grc

Attachment: top_block.py
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]