Re: [ecasound] Ecasound build process stuck after tests

From: Alessandro Ghedini <al3xbio@email-addr-hidden>
Date: Sun Apr 03 2011 - 17:12:53 EEST

On Sun, Apr 02, 2011 at 03:11:59PM +0300, Kai Vehmanen wrote:
> Hi,
> On Sat, 2 Apr 2011, Alessandro Ghedini wrote:
> >>Ok, here's a snapshot with some changes:
> >>
> >
> >Unfortunately the problem is still there :/
> d'oh, then this is getting even more interesting. :P
> >Maybe a quick and dirty solution would be to simply not create the watchdog
> >thread when it is not needed (e.g. for the various --version, --help and
> >similar options). Not sure how much work would be needed (or if it will
> >actually resolve the issue) though.
> I'd like to first understand what's causing this. I mean, it's very
> likely this could happen with other use-cases as well, so just
> whitelisting a few trivial things like '--version', would just hide
> the bug.

Sounds reasonable.

> For a dirty solution, I'd replace pthread_join() with
> pthread_cancel(). Thread cancelling has been a can of worms (at
> least in the past, with legacy pthread implementations). But if
> basic signal blocking and delivery mechanisms are not working for
> reason, things can't get much worse. But hopefully this is simply be
> a bug in ecasound code.

Ok, let's just keep this as "last resort" :)

> >>PS Can you reproduce this only with stresstest.rb or perhaps
> >> just by running "ecasound --version"...?
> >
> >Just running "ecasound --version" (or "--help") works as well. What I do is
> >simply running the command several times until it gets stuck.
> ok, great. Could you then patch ecasound/ecasound.cpp with:
> ... recompile and retest? You should now get traces on what is
> happening when terminating.

Now I get:

    % ecasound/ecasound --version
    ecasound v2.7.2

    ecasound: out of mainloop...

    ecasound: joining watchdog...
    Signal 1 received in exit phase 1


    % ecasound/ecasound --version
    ecasound v2.7.2

    ecasound: out of mainloop...

    ecasound: joining watchdog...

    (ecasound-watchdog) Received signal 1. Cleaning up and exiting...

    (ecasound-watchdog) looping until main reaches join point...

    (ecasound-watchdog) thread exiting...

    ecasound: joined watchdog...

    ecasound: main() exiting with code 1

when it works correctly.


perl -E'$_=q;$/= @{[@_]};and s;\S+;<inidehG ordnasselA>;eg;say~~reverse'
Create and publish websites with WebMatrix
Use the most popular FREE web apps or write code yourself; 
WebMatrix provides all the features you need to develop and 
publish your website.
Ecasound-list mailing list
Received on Sun Apr 3 20:15:02 2011

This archive was generated by hypermail 2.1.8 : Sun Apr 03 2011 - 20:15:02 EEST