Forum: GNU Radio make test hangs at gr-core-test-all qa_pdu

Posted by "Martin Lülf" <mail@mluelf.de> (Guest)
on 2013-02-05 11:29
(Received via mailing list)
Hi,

while working on my issue with asynchronous blocks (
https://lists.gnu.org/archive/html/discuss-gnuradi...
). I discovered that the two tests 'gr-core-test-all' and 'qa_pdu'
sometimes hang up. That means they never return until I interrupt with
Ctr+C. If I repeat the same make test without changing anything in
between, the tests sometimes run through and sometimes hang up again.

I am running Ubuntu 12.04.2 LTS (GNU/Linux 3.2.0-35-generic x86_64) with
the gnuradio master branch.

Yours
Martin Luelf
Posted by Tom Rondeau (Guest)
on 2013-02-05 14:11
(Received via mailing list)
On Tue, Feb 5, 2013 at 5:28 AM, "Martin Lülf" <mail@mluelf.de> wrote:

> the gnuradio master branch.
>
> Yours
> Martin Luelf
>

What version of Boost are you running? If it's 1.46, 1.47, or 1.52, that
would explain the gr-core-test-all. It's a bug in Boost that we get hit
with (and we're supposed to not link against those versions, but 
apparently
haven't done that right; see Issue #513).

The PDU hangup I think is a race condition. I thought that I had fixed
that, but apparently not entirely. I just opened up Issue 514 about 
this.

Thanks for reporting.

Tom
Posted by "Martin Lülf" <mail@mluelf.de> (Guest)
on 2013-02-05 18:44
(Received via mailing list)
>>
> apparently
> haven't done that right; see Issue #513).
>
> The PDU hangup I think is a race condition. I thought that I had fixed
> that, but apparently not entirely. I just opened up Issue 514 about this.
>
> Thanks for reporting.
>
> Tom
>

Hi Tom,

thank you for your fast reply. Indeed updating to a newer version of 
boost
(I moved from 1.46 to 1.53) seems to fix both of the issues. I repeated
make test for 10 times and both tests (as well as all others) ran 
through
without issues every time. Before I hat to retry only once or twice to 
get
a hangup.

However I am still curious to learn how flowgraph start/stop works for
asynchronous blocks, as they don't have a start/stop function, as far as 
I
understood. Can you point me to some documentation or a certain piece of
code where I can learn more about this?

Yours
Martin
Posted by Tom Rondeau (Guest)
on 2013-02-06 17:08
(Received via mailing list)
On Tue, Feb 5, 2013 at 12:42 PM, "Martin Lülf" <mail@mluelf.de> wrote:

> >> between, the tests sometimes run through and sometimes hang up again.
> > with (and we're supposed to not link against those versions, but
>
> understood. Can you point me to some documentation or a certain piece of
> code where I can learn more about this?
>
> Yours
> Martin


I'm not sure what you mean by asynchronous blocks? All blocks run as
threads. We can join them and interrupt them (all our threads are 
started
with a Boost interruption point for this).

Tom
Posted by "Martin Lülf" <mail@mluelf.de> (Guest)
on 2013-02-06 18:04
(Received via mailing list)
>> >> sometimes hang up. That means they never return until I interrupt
>> >>
>> > that, but apparently not entirely. I just opened up Issue 514 about
>> boost
>> understood. Can you point me to some documentation or a certain piece of
> Tom
>

Hi Tom,

by asynchronous blocks I mean a block that has only message ports as in
and outputs and thus no general_work function. As far as I saw these
block's start()/stop() functions are not called even if I implement 
them.
So when does such a block start or how/when is it stopped again?

Especially regarding such a block's start please also see my previous 
post
to the mailing list
https://lists.gnu.org/archive/html/discuss-gnuradi...

Yours
Martin
Posted by Tom Rondeau (Guest)
on 2013-02-06 18:19
(Received via mailing list)
On Wed, Feb 6, 2013 at 12:03 PM, "Martin Lülf" <mail@mluelf.de> wrote:

> https://lists.gnu.org/archive/html/discuss-gnuradi...
> >> >> Yours
> >> >
> >>
> >> asynchronous blocks, as they don't have a start/stop function, as far as
> > with a Boost interruption point for this).
>
> Especially regarding such a block's start please also see my previous post
> to the mailing list
> https://lists.gnu.org/archive/html/discuss-gnuradi...
>
> Yours
> Martin
>

Ok, yeah, all blocks are launched as part of the start function of the
top_block. As I said, they are just threads, so we launch a thread for 
each
block that's a part of the flowgraph. Anything that's connected using 
the
data stream 'connect' or message stream 'msg_connect' is considered part 
of
the flowgraph.

Tom
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.