make check sometimes hangs

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

make check sometimes hangs

Stefan Westerfeld
   Hi!

If I run

  cd tests/audio; while :; do make check; done

in beast, I'd expect that the audio tests would be done over and over again,
forever. However, what happens here is that after some time, make check hangs,
nothing happens any more. Looking at pstree there is

-bash---python---sh---python---sh---bse2wav.sh---lt-bsetool---2*[{lt-bsetool}]

so bsetool for some reason hangs. Without CPU usage. Maybe some kind of
deadlock, possibly triggered by the use of the null driver?

That wasn't always the case. I saw the problem when using a variant of
bse2wav.sh for SpectMorph testing - compared to make check in beast, I need to
render a lot more wave files here. And that used to work when I made the last
SpectMorph release, about six weeks ago.

   Cu... Stefan
--
Stefan Westerfeld, http://space.twc.de/~stefan
_______________________________________________
beast mailing list
[hidden email]
https://mail.gnome.org/mailman/listinfo/beast
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: make check sometimes hangs

Tim Janik-6
On 10.11.2016 22:13, Stefan Westerfeld wrote:
> If I run
>
>   cd tests/audio; while :; do make check; done
>
> in beast, I'd expect that the audio tests would be done over and over again,
> forever. However, what happens here is that after some time, make check hangs,
> nothing happens any more. Looking at pstree there is
>
> -bash---python---sh---python---sh---bse2wav.sh---lt-bsetool---2*[{lt-bsetool}]

Hm, I wonder what's python doing there, calling the shell?

> so bsetool for some reason hangs. Without CPU usage. Maybe some kind of
> deadlock, possibly triggered by the use of the null driver?
>
> That wasn't always the case. I saw the problem when using a variant of
> bse2wav.sh for SpectMorph testing - compared to make check in beast, I need to
> render a lot more wave files here. And that used to work when I made the last
> SpectMorph release, about six weeks ago.

The main change that went into the DSP logic is parallel processing.

Just to rule that out, you can try disabling it with:

+++ bse/bseenginemaster.cc
@@ -908,8 +908,8 @@ engine_start_slaves ()
 {
   assert_return (slaves_running == false);
   slaves_running = true;
-  const uint n_cpus = Rapicorn::ThisThread::online_cpus();
+  const uint n_cpus = 1;
   const uint n_slaves = std::max (1u, n_cpus) - 1;
   for (uint i = 0; i < n_slaves; i++)
     slave_threads.push_back (new std::thread (engine_run_slave));
 }


>
>    Cu... Stefan
>

--
Yours sincerely,
Tim Janik

https://testbit.eu/timj/
Free software author.
_______________________________________________
beast mailing list
[hidden email]
https://mail.gnome.org/mailman/listinfo/beast
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: make check sometimes hangs

Stefan Westerfeld
   Hi!

(sorry my first reply didn't go to the list, resending)

On Thu, Nov 10, 2016 at 11:43:34PM +0100, Tim Janik wrote:

> On 10.11.2016 22:13, Stefan Westerfeld wrote:
> > If I run
> >
> >   cd tests/audio; while :; do make check; done
> >
> > in beast, I'd expect that the audio tests would be done over and over again,
> > forever. However, what happens here is that after some time, make check hangs,
> > nothing happens any more. Looking at pstree there is
> >
> > -bash---python---sh---python---sh---bse2wav.sh---lt-bsetool---2*[{lt-bsetool}]
>
> Hm, I wonder what's python doing there, calling the shell?

Sorry, wrong hanging bsetool process (this was my SpectMorph evaluation
script). The correct pstree output is:

-bash---make---make---lt-bsetool---2*[{lt-bsetool}]

> > so bsetool for some reason hangs. Without CPU usage. Maybe some kind of
> > deadlock, possibly triggered by the use of the null driver?
> >
> > That wasn't always the case. I saw the problem when using a variant of
> > bse2wav.sh for SpectMorph testing - compared to make check in beast, I need to
> > render a lot more wave files here. And that used to work when I made the last
> > SpectMorph release, about six weeks ago.
>
> The main change that went into the DSP logic is parallel processing.
>
> Just to rule that out, you can try disabling it with:
>
> +++ bse/bseenginemaster.cc
> @@ -908,8 +908,8 @@ engine_start_slaves ()
>  {
>    assert_return (slaves_running == false);
>    slaves_running = true;
> -  const uint n_cpus = Rapicorn::ThisThread::online_cpus();
> +  const uint n_cpus = 1;
>    const uint n_slaves = std::max (1u, n_cpus) - 1;
>    for (uint i = 0; i < n_slaves; i++)
>      slave_threads.push_back (new std::thread (engine_run_slave));
>  }

Yes, this seems to be the change to blame; with that applied, make check no
longer hangs.

   Cu... Stefan
--
Stefan Westerfeld, http://space.twc.de/~stefan
_______________________________________________
beast mailing list
[hidden email]
https://mail.gnome.org/mailman/listinfo/beast
Loading...