I
have attached a png of the flow graph and the error msgs
from the system log are below. These error messages are
the only messages.
Oct 29 10:45:26 tf
abrt-hook-ccpp[378]: /var/spool/abrt is 23611049718
bytes (more than 1279MiB), deleting
'ccpp-2020-10-27-15:30:43-28474'
Oct 29 10:45:07 tf abrt-hook-ccpp[378]: Process 329
(python2.7) of user 1000 killed by SIGSEGV - dumping
core
Oct 29 10:45:07 tf audit[370]: ANOM_ABEND auid=1000
uid=1000 gid=1000 ses=8656
subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
pid=370 comm="copy11" exe="/usr/bin/Oct 29 10:45:07 tf
audit[369]: ANOM_ABEND auid=1000 uid=1000 gid=1000
ses=8656
subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
pid=369 comm="analysis_sink_1" exe="Oct 29 10:45:07 tf
kernel: traps: copy11[370] general protection
ip:7f9e0acfdee0 sp:7f9c5a7fb590 error:0 in
libpthread-2.22.so[7f9e0acf1000+18000]
Oct 29 10:45:07 tf kernel: analysis_sink_1[369]:
segfault at 7f9c5a7fd000 ip 00007f9dd9361d43 sp
00007f9c5a48a638 error 6 in
libgnuradio-vandevender.so[7f9dd9336000+4d000]
Flow
is USRP -> stream to vector -> fft -> complex
to mag -> bin_sub_avg -> analysis_sinkf
bin_sub_avg
(python) & analysis_sinkf (c/c++) are custom blocks.
the
function of Bin Sub Avg, which is written in Python, is
to start a background task which periodically (in this
case hourly) samples the input signal, calculates the
background noise and subtracts it from the signal that
is passed the the Analysis_sinkf module.
Analys_sinkf
monitors each bin and only when specific thresholds for
the bin are met (ie duration, strength) is the signal
written out to a signal file. Signals not passing the
criteria are dropped.
This
code base has been running for over 3 years, with the
original system implementation about 8/9 years ago.
I
have traced the problem to the input signal into
bin_sub_avg when the number of fft bins is 3 million (2
million works). At 3 million bins, any reference to the
result of the delete_head() function in the python code
causes a failure. The python code just fails without a
traceback, then the invalid data stream is passed to the
analysis_sinkf module which is C/C++ and it causes the
segment fault.
Thus
my suspicion is there is a limit in the fft block on the
number of bins it can handle and some variable is
overflowing, but this is a guess at this point. There
may be a restriction in the gr.signature_io module, but
that seems unlikely.
What version of Gnu Radio is this?