[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.
signature.asc
Description: OpenPGP digital signature