discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: [Discuss-gnuradio] Segfault in Polyphase clock sync block


From: Daniel Estévez
Subject: Re: [Discuss-gnuradio] Segfault in Polyphase clock sync block
Date: Sun, 21 Jan 2018 13:22:40 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.0

El 21/01/18 a las 12:35, Daniel Estévez escribió:
> El 21/01/18 a las 11:39, Daniel Estévez escribió:
>>
>> out[i+d_out_idx] = d_filters[d_filtnum]->filter(&in[count+d_out_idx]);
>>
> 
> Hi all,
> 
> I've been looking at this again and the problem is that in this line,
> 
> count = -134217704
> 
> for some weird reason. Obviously, this causes the SIGSEGV.
> 
> I'll try to see why count gets corrupted.

Hi again,

Problem solved. The cause was that before the PFB I had an AGC block
that when feeding it a stream of 0's, it was performing 0/0 and so
feeding a stream of nan's into the PFB.

This makes all the loop calculations propagate the nan and all loop
variables end up being nan, including d_k. Then, the line 449 in
pfb_clock_sync_ccf_impl.cc, does

d_filtnum = (int)floor(d_k);

and since d_filtnum is an integer and after this line it is adjusted to
the range [0, d_nfilters], modifying the count in the process, this
causes count to become some weird value.

So the problem was not with the PFB but with my previous block. However,
I think that the PFB should have some protection against this.

Regards,

Daniel.


Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

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