[alsa-devel] Assertion failure in alsa-lib crashing applications (snd_pcm_area_copy: Assertion `dst < src || dst >= src + bytes' failed)
Takashi Iwai
tiwai at suse.de
Wed Jun 29 15:39:37 CEST 2016
On Sun, 26 Jun 2016 20:28:32 +0200,
Baptiste Jonglez wrote:
>
> Is there anything else I can provide to help getting this issue fixed?
>
> The main issue is that snd_pcm_area_copy() gets called with overlapping
> source and destination buffers, which triggers this assertion before a
> memcpy:
>
> http://git.alsa-project.org/?p=alsa-lib.git;a=blob;f=src/pcm/pcm.c;h=0d0d093deb49f2db7d207b29b728df372cce84bc;hb=HEAD#l2762
Right, this isn't supposed to happen.
> This happens when the system is really loaded (CPU-wise).
>
> Do you think the problem is likely to come from an incorrect API usage
> from the application? Knowing this would significantly narrow down the
> search, because the problem could also come from within alsa itself.
>
> The callling code from the application is quite complex, see here:
>
> https://github.com/savoirfairelinux/ring-daemon/blob/master/src/media/audio/alsa/alsalayer.cpp
>
> In particular, the assertion is triggered by the call to
> snd_pcm_avail_update() at line 694 (see the stack trace below).
I have too little time to investigate on this issue, but judging from
the fact that there has been no such a report until now, I guess it's
specific to your code. But I can't say sure, of course.
Is the relevant code path accessed concurrently? The possible race is
the first suspect I'd always think of in such a case.
Takashi
More information about the Alsa-devel
mailing list