Make test hangs at gr-core-test-all qa_pdu

Hi,

while working on my issue with asynchronous blocks (
https://lists.gnu.org/archive/html/discuss-gnuradio/2013-01/msg00488.html
). 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 L.

On Tue, Feb 5, 2013 at 5:28 AM, “Martin Lülf” [email protected] wrote:

the gnuradio master branch.

Yours
Martin L.

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

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

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-gnuradio/2013-01/msg00488.html

Yours
Martin

On Wed, Feb 6, 2013 at 12:03 PM, “Martin Lülf” [email protected] wrote:

[Discuss-gnuradio] Detect start of flowgraph for asynchronous blocks

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
[Discuss-gnuradio] Detect start of flowgraph for asynchronous blocks

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

On Tue, Feb 5, 2013 at 12:42 PM, “Martin Lülf” [email protected] 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