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