Bug#601657: libffado2 thread crashes with assertion failure
Adrian Knoth
adi at drcomp.erfurt.thur.de
Thu Oct 28 13:46:39 UTC 2010
On Thu, Oct 28, 2010 at 01:54:25PM +0200, Max Kellermann wrote:
> > When I compare
> >
> > http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=5;filename=test.c;att=1;bug=601657
> >
> > to the code in jackd1's drivers/firewire/ directory or to ffado's
> > tests/streaming/teststreaming3.cpp, I wonder if you might simply miss to
> > fill the buffers or to iterate/wait for FFADO.
>
> It is intentionally missing. It is a timing related bug, it triggers
> When libffado2 notices that a buffer hasn't been filled in time, I
> would expect it to report that error to the application, instead of
> crashing.
Ah, now I get it.
If you compile with DEBUG=0, then assert() is a NOP and your test
program finishes cleanly:
2145932376749: Warning (IsoHandlerManager.cpp)[ 282] Execute: Timeout while waiting for activity
2145933300504: Fatal (IsoHandlerManager.cpp)[ 338] Execute: (0x993d2d8, Receive) Handler died: now: 4D7DE6B8, last: 497BF381, diff: 49248055 (max: 49152000)
2145933300551: Warning (StreamProcessor.cpp)[ 126] handlerDied: Handler died for 0x993b8c8
2145934300663: Warning (IsoHandlerManager.cpp)[ 282] Execute: Timeout while waiting for activity
2145934310756: Fatal (IsoHandlerManager.cpp)[ 338] Execute: (0x993d1a8, Transmit) Handler died: now: 4F83093E, last: 49654344, diff: 75191802 (max: 49152000)
2145934310785: Warning (StreamProcessor.cpp)[ 126] handlerDied: Handler died for 0x993c130
no message buffer overruns
So I guess it's me to blame for shipping a DEBUG-enabled FFADO version
in Debian. OTOH, this was intended: http://bugs.debian.org/572141
We should probably come up with a clean solution, so we have both
versions in Debian.
Can you confirm that test.c doesn't trigger the bug when ffado is
compiled without DEBUG?
TIA
--
mail: adi at thur.de http://adi.thur.de PGP/GPG: key via keyserver
More information about the pkg-multimedia-maintainers
mailing list