All of lore.kernel.org
 help / color / mirror / Atom feed
* Issue with pulseaudio and Qt introduced with eglibc 2.18
@ 2013-08-23  6:14 Erik Botö
  2013-08-23  6:33 ` Khem Raj
  2013-08-23 12:55 ` Erik Botö
  0 siblings, 2 replies; 4+ messages in thread
From: Erik Botö @ 2013-08-23  6:14 UTC (permalink / raw)
  To: openembedded-core

[-- Attachment #1: Type: text/plain, Size: 1874 bytes --]

Hi,

I'm hitting a bug now when using Qt to play e.g mp3:s to a pulseaudio sink.
Using gst-launch with playbin2 and pulsesink works well on the same system.
I have tried a few different versions of Qt (5.0.1, 5.0.2 and Qt 5.1) and
both pulseaudio 3 and 4 with the same problem. When I added this to
local.conf:

PREFERRED_VERSION_eglibc-locale = "2.17"
PREFERRED_VERSION_eglibc-mtrace = "2.17"
PREFERRED_VERSION_eglibc-scripts = "2.17"
PREFERRED_VERSION_eglibc-initial = "2.17"
PREFERRED_VERSION_eglibc = "2.17"

It works ok again, so it was introduced when moving to eglib 2.18 (not
saying that the actual error is in eglibc though).

The error I'm seeing is this:
Assertion 'pthread_mutex_unlock(&m->mutex) == 0' failed at
pulsecore/mutex-posix.c:108, function pa_mutex_unlock(). Aborting.

Google tells me that this has been an issue for OMAP4 when certain kernel
configuration where enabled [1], which makes me believe this might be a
hard one to track down. I'll see if I can find the time to debug it a bit
more, but I would really appreciate any input.

It's quite easy to reproduce, just use the QtMultimedia (built to use
gstreamer and pulseaudio) mediaplayer example and select an mp3 file. It
works like one time out of 20 or so, so some kind of race condition is
probably the case.

My hardware setup is a nitrogen6x board with a Freescale iMX6 processor (so
I'm using meta-fsl-arm*), I've tried with both Qt built with meta-qt5 and
an external Qt build against the Yocto sysroot. If anyone can reproduce
this on some other hardware that would be nice to know.

This started on the meta-freescale list [2], but is probably belonging
here.

[1]. http://lists.linaro.org/pipermail/linaro-dev/2013-April/015794.html
[2].
https://lists.yoctoproject.org/pipermail/meta-freescale/2013-August/004152.html

Cheers,
Erik Botö

[-- Attachment #2: Type: text/html, Size: 3651 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Issue with pulseaudio and Qt introduced with eglibc 2.18
  2013-08-23  6:14 Issue with pulseaudio and Qt introduced with eglibc 2.18 Erik Botö
@ 2013-08-23  6:33 ` Khem Raj
  2013-08-23  7:35   ` Erik Botö
  2013-08-23 12:55 ` Erik Botö
  1 sibling, 1 reply; 4+ messages in thread
From: Khem Raj @ 2013-08-23  6:33 UTC (permalink / raw)
  To: Erik Botö; +Cc: openembedded-core

[-- Attachment #1: Type: text/plain, Size: 2330 bytes --]


On Aug 22, 2013, at 11:14 PM, Erik Botö <erik.boto@pelagicore.com> wrote:

> Hi, 
> 
> I'm hitting a bug now when using Qt to play e.g mp3:s to a pulseaudio sink. Using gst-launch with playbin2 and pulsesink works well on the same system. I have tried a few different versions of Qt (5.0.1, 5.0.2 and Qt 5.1) and both pulseaudio 3 and 4 with the same problem. When I added this to local.conf: 
> 
> PREFERRED_VERSION_eglibc-locale = "2.17"
> PREFERRED_VERSION_eglibc-mtrace = "2.17"
> PREFERRED_VERSION_eglibc-scripts = "2.17"
> PREFERRED_VERSION_eglibc-initial = "2.17"
> PREFERRED_VERSION_eglibc = "2.17"
> 
> It works ok again, so it was introduced when moving to eglib 2.18 (not saying that the actual error is in eglibc though).
> 
> The error I'm seeing is this: 
> Assertion 'pthread_mutex_unlock(&m->mutex) == 0' failed at pulsecore/mutex-posix.c:108, function pa_mutex_unlock(). Aborting.

can you try

$ export CANBERRA_DRIVER="null"

and run the faulty program in this shell.

Does this fix the problem ?



> 
> Google tells me that this has been an issue for OMAP4 when certain kernel configuration where enabled [1], which makes me believe this might be a hard one to track down. I'll see if I can find the time to debug it a bit more, but I would really appreciate any input. 
> 
> It's quite easy to reproduce, just use the QtMultimedia (built to use gstreamer and pulseaudio) mediaplayer example and select an mp3 file. It works like one time out of 20 or so, so some kind of race condition is probably the case. 
> 
> My hardware setup is a nitrogen6x board with a Freescale iMX6 processor (so I'm using meta-fsl-arm*), I've tried with both Qt built with meta-qt5 and an external Qt build against the Yocto sysroot. If anyone can reproduce this on some other hardware that would be nice to know.
> 
> This started on the meta-freescale list [2], but is probably belonging here. 
> 
> [1]. http://lists.linaro.org/pipermail/linaro-dev/2013-April/015794.html
> [2]. https://lists.yoctoproject.org/pipermail/meta-freescale/2013-August/004152.html
> 
> Cheers, 
> Erik Botö
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core


[-- Attachment #2: Type: text/html, Size: 4655 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Issue with pulseaudio and Qt introduced with eglibc 2.18
  2013-08-23  6:33 ` Khem Raj
@ 2013-08-23  7:35   ` Erik Botö
  0 siblings, 0 replies; 4+ messages in thread
From: Erik Botö @ 2013-08-23  7:35 UTC (permalink / raw)
  To: Khem Raj; +Cc: openembedded-core

On Fri, Aug 23, 2013 at 8:33 AM, Khem Raj <raj.khem@gmail.com> wrote:

<snip>

> can you try
>
> $ export CANBERRA_DRIVER="null"
>
> and run the faulty program in this shell.
>
> Does this fix the problem ?
>

It did not, same result as before.

Cheers,
Erik


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Issue with pulseaudio and Qt introduced with eglibc 2.18
  2013-08-23  6:14 Issue with pulseaudio and Qt introduced with eglibc 2.18 Erik Botö
  2013-08-23  6:33 ` Khem Raj
@ 2013-08-23 12:55 ` Erik Botö
  1 sibling, 0 replies; 4+ messages in thread
From: Erik Botö @ 2013-08-23 12:55 UTC (permalink / raw)
  To: openembedded-core

I modified the pulse code to print the actual error instead of just
asserting that it equals 0, and the return value of
pthread_mutex_unlock() is 1 which is EPERM aka "The current thread
does not own the mutex.".

Backtrace is:

(gdb) bt
#0  0x49f46cb4 in __GI_raise (sig=sig@entry=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1  0x49f4a7d0 in __GI_abort () at abort.c:89
#2  0x360b0030 in pa_mutex_unlock (m=m@entry=0x104990) at
pulsecore/mutex-posix.c:113
#3  0x345b5ca4 in poll_func (ufds=0x3af025f8, nfds=2, timeout=0,
userdata=0x104990) at pulse/thread-mainloop.c:68
#4  0x345a5e6c in pa_mainloop_poll (m=0x36ed0bac, m@entry=0x1048e0) at
pulse/mainloop.c:854
#5  0x345a65cc in pa_mainloop_iterate (m=m@entry=0x1048e0,
block=block@entry=1, retval=retval@entry=0x0) at pulse/mainloop.c:936
#6  0x345a66a8 in pa_mainloop_run (m=0x1048e0,
retval=retval@entry=0x0) at pulse/mainloop.c:954
#7  0x345b5c70 in thread (userdata=0x95fb0) at pulse/thread-mainloop.c:88
#8  0x360b0ee8 in internal_thread_func (userdata=0x97310) at
pulsecore/thread-posix.c:83
#9  0x4a05f1a0 in start_thread (arg=0x36ed1450) at pthread_create.c:314
#10 0x49fe97c0 in ?? () at
../ports/sysdeps/unix/sysv/linux/arm/clone.S:97 from /lib/libc.so.6
#11 0x49fe97c0 in ?? () at
../ports/sysdeps/unix/sysv/linux/arm/clone.S:97 from /lib/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb)

Cheers,
Erik

On Fri, Aug 23, 2013 at 8:14 AM, Erik Botö <erik.boto@pelagicore.com> wrote:
> Hi,
>
> I'm hitting a bug now when using Qt to play e.g mp3:s to a pulseaudio sink.
> Using gst-launch with playbin2 and pulsesink works well on the same system.
> I have tried a few different versions of Qt (5.0.1, 5.0.2 and Qt 5.1) and
> both pulseaudio 3 and 4 with the same problem. When I added this to
> local.conf:
>
> PREFERRED_VERSION_eglibc-locale = "2.17"
> PREFERRED_VERSION_eglibc-mtrace = "2.17"
> PREFERRED_VERSION_eglibc-scripts = "2.17"
> PREFERRED_VERSION_eglibc-initial = "2.17"
> PREFERRED_VERSION_eglibc = "2.17"
>
> It works ok again, so it was introduced when moving to eglib 2.18 (not
> saying that the actual error is in eglibc though).
>
> The error I'm seeing is this:
> Assertion 'pthread_mutex_unlock(&m->mutex) == 0' failed at
> pulsecore/mutex-posix.c:108, function pa_mutex_unlock(). Aborting.
>
> Google tells me that this has been an issue for OMAP4 when certain kernel
> configuration where enabled [1], which makes me believe this might be a hard
> one to track down. I'll see if I can find the time to debug it a bit more,
> but I would really appreciate any input.
>
> It's quite easy to reproduce, just use the QtMultimedia (built to use
> gstreamer and pulseaudio) mediaplayer example and select an mp3 file. It
> works like one time out of 20 or so, so some kind of race condition is
> probably the case.
>
> My hardware setup is a nitrogen6x board with a Freescale iMX6 processor (so
> I'm using meta-fsl-arm*), I've tried with both Qt built with meta-qt5 and an
> external Qt build against the Yocto sysroot. If anyone can reproduce this on
> some other hardware that would be nice to know.
>
> This started on the meta-freescale list [2], but is probably belonging here.
>
> [1]. http://lists.linaro.org/pipermail/linaro-dev/2013-April/015794.html
> [2].
> https://lists.yoctoproject.org/pipermail/meta-freescale/2013-August/004152.html
>
> Cheers,
> Erik Botö



-- 
=============================================
Erik Botö
Senior Software Engineer
Pelagicore AB
Ekelundsgatan 4, 6tr, SE-411 18 Gothenburg, Sweden
Mobile: +46 (0)76 881 72 03
E-Mail: erik.boto@pelagicore.com
=============================================


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2013-08-23 12:55 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-08-23  6:14 Issue with pulseaudio and Qt introduced with eglibc 2.18 Erik Botö
2013-08-23  6:33 ` Khem Raj
2013-08-23  7:35   ` Erik Botö
2013-08-23 12:55 ` Erik Botö

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.