[alsa-lib] Query regarding snd_config_update_free_global() and threads etc.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi there,

I've got a (hopefully quick) query about snd_config_update_free_global()
and it's general thread safetyness.


I'm currently going insane on this bug:
https://bugs.kde.org/show_bug.cgi?id=232068
which revolves around a bug manifested in snd_pcm_close() (or rather
snd_pcm_ioplug_close()) when dealing with the ALSA->PulseAudio plugin.

>From what I can gather, this problem is related to a KDE module that is
loaded into the library in question which does some alsa probing and
ultimately calls snd_config_update_free_global() several times. The
library itself then goes on to use GStreamer to do actual audio output.
The crash then manifests itself prior to any sound actually being output.

I can reliably reproduce the machine on two machines (I don't have many
at my disposal), but cannot reproduce on a third. The two I can
reproduce it on are two and four core intel duo's. The one I cannot
reproduce on is an older, single core machine. I am leaning towards some
kind of thread safety issue.


In searching for similar problems, I found several references to similar
crashes attributed to snd_dlobj_cache_cleanup() perhaps not being thread
safe.

e.g.:
https://bugzilla.redhat.com/show_bug.cgi?id=482797#c14
 and
http://osdir.com/ml/attachments/txtpisfDmzbcN.txt
(and from that:
https://bugtrack.alsa-project.org/alsa-bug/view.php?id=2124
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=589896
)


I've found that removing the calls to
snd_config_update_free_global() avoid the issue. I'm not even sure they
are needed, but all the same I wanted to discuss the core issue.

The MEMORY-LEAK file suggests that it should only be called after all
snd_*_open() calls, but it doesn't indicate if this is just a
recommendation or mandatory.  Is the *only* purpose of this call to make
valgrind happy? Or does it serve some other useful purpose too?

Col



-- 

Colin Guthrie
gmane(at)colin.guthr.ie
http://colin.guthr.ie/

Day Job:
  Tribalogic Limited [http://www.tribalogic.net/]
Open Source:
  Mandriva Linux Contributor [http://www.mandriva.com/]
  PulseAudio Hacker [http://www.pulseaudio.org/]
  Trac Hacker [http://trac.edgewall.org/]

_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel


[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux