[ecasound] race condition: engine-launch, jack-connect

From: Philipp <hollunder@email-addr-hidden>
Date: Thu Jul 29 2010 - 01:46:59 EEST

I spent a lot of time today trying to find a very weird bug.

"jack-connect LinuxSampler:0 ecasound:in_1"

When I sent the string manually ecasound connected properly, when I
scripted it it didn't. I did the same thing but the result was
different. I looked for quite some time, trying to figure out whether I
missed something and did something different by accident but couldn't
find anything. Ecasound running with -ddd gave me the necessary hint:

(jack-connections) Connected JACK ports LinuxSampler:0 and ecasound:in_1
with result of -1

In the manual case the result was 0. This told me that the message
arrived in both cases. The preceding commands were identical, so the
only explanation was that it's a timing problem. And indeed, sleeping
for 0.1s between the engine launch and the connect message caused the
connection attempt to succeed.

I consider this a bug in ecasound. Imho it should wait until the engine
is ready before it attempts to connect, simply to avoid this race
condition. An easy way to get a notification about the failed connection
attempt would help and also help when it fails for other reasons, but if
it exists I haven't found a way to get this notification yet.
Documenting this behavior would help as well, and so does the sleep()
hack but I consider all this a workaround, not a solution.

On a more general note: I got ecasound to crash a number of times, with
different messages (soft-assert something, segfault). Which information
is most useful for debugging? Does it help to run ecasound with -ddd and
provide the output? Something else?

Best regards,

"Wir stehen selbst enttäuscht und sehn betroffen / Den Vorhang zu
und alle Fragen offen." Bertolt Brecht, Der gute Mensch von Sezuan
The Palm PDK Hot Apps Program offers developers who use the
Plug-In Development Kit to bring their C/C++ apps to Palm for a share
of $1 Million in cash or HP Products. Visit us here for more details:
Ecasound-list mailing list
Received on Thu Jul 29 04:15:02 2010

This archive was generated by hypermail 2.1.8 : Thu Jul 29 2010 - 04:15:02 EEST