Subject: Re: [ecasound] pyecasound of ecasound 2.3.0 hanging
From: Kai Vehmanen (k_AT_eca.cx)
Date: Mon Nov 17 2003 - 20:49:43 EET
Hi,
On Fri, 14 Nov 2003, Kai Vehmanen wrote:
>> Problem is: I can only use ecasound 2.2.0, because in version 2.3, the
>> pyecasound library hangs after a few seconds.
> When the parse_response() hangs, the ecasound process in the background is
> still alive and kicking. For some reason, the pipe between ecasound and
> the python process just dies if too much data activity is going on.
[...]
> Now this might even be a bug in python's popen3() routine. I've been
> testing with python-2.3.
I've debugged this further and the result seems clear, the Python
implementation simply does not survive heavy ECI traffic. I've tried
upgrading to latest Python (2.3.2) and making a few simple changes to
ecacontrol.py, but the problem persists.
On the other hand, the C implementation seems to survive all my tests.
I've now added a simple test progmram 'test1_stresstest.py' to CVS. It is
run when you issue "make check" in pyecasound.
Normally 'test1_stresstest.py' will test the default implementation, but
this can be overriden by uncommenting the other implementations (in
test1_stresstest.py). If someone wants to try fix ecacontrol.py, uncomment
the line "from ecacontrol import *", set debuglevel to 2, and start
debugging. :)
Also, in 2.3.1 I will revert the default pyeca implementation to be C
(pyecasound.so) and not the Python implementation (ecacontrol.py). The
latter one is still used if python-devel files are not found during
configure run.
Btw; it's good to note that even the C pyeca implementation is
partly decoupled from ecasound - i.e. it does not call libecasound
directly, but instead forks the 'ecasound' binary and
communicates with it using pipes. This means that you don't
need to recompile all your pyeca apps when you upgrade Ecasound.
> Luckily the old implementation is still available. So try compiling 2.3.0
> with "./configure --enable-pyecasound=c" and re-run your tests. It should
So in CVS, '--enable-pyecasound=c' is once again the default.
-- http://www.eca.cx Audio software for Linux!
This archive was generated by hypermail 2b28 : Mon Nov 17 2003 - 20:46:07 EET