Re: make check sometimes hangs



   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


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