← Back to team overview

touch-packages team mailing list archive

[Bug 1436162] Re: [pulsesink] abort at pthread_mutex_unlock(&m->mutex) == 0' failed at pulsecore/mutex-posix.c:118, function pa_mutex_unlock() with libc 2.21

 

So this issue is a combination of the following patches:
https://sourceware.org/git/?p=glibc.git;a=commit;h=47c5adebd2c864a098c3af66e61e1147dc3cf0b4
https://sourceware.org/git/?p=glibc.git;a=commit;h=03d41216fe09fc71a2750946af8fe2892bf4feb5

Basically the main problem is that futex_atomic_cmpxchg_inatomic got
disabled, even though we have that well supported in our kernels.

I just did another build (in canonical-arm-dev) including the patch bellow, and with that I'm unable to reproduce this bug:
Index: glibc-2.21/sysdeps/unix/sysv/linux/arm/kernel-features.h
===================================================================
--- glibc-2.21.orig/sysdeps/unix/sysv/linux/arm/kernel-features.h
+++ glibc-2.21/sysdeps/unix/sysv/linux/arm/kernel-features.h
@@ -37,8 +37,10 @@
 /* The ARM kernel before 3.14.3 may or may not support
    futex_atomic_cmpxchg_inatomic, depending on kernel
    configuration.  */
+/*
 #if __LINUX_KERNEL_VERSION < 0x030E03
 # undef __ASSUME_FUTEX_LOCK_PI
 # undef __ASSUME_REQUEUE_PI
 # undef __ASSUME_SET_ROBUST_LIST
 #endif
+*/

** Changed in: gst-plugins-good1.0 (Ubuntu)
       Status: Confirmed => Invalid

** Changed in: pulseaudio (Ubuntu)
       Status: Confirmed => Invalid

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to pulseaudio in Ubuntu.
https://bugs.launchpad.net/bugs/1436162

Title:
  [pulsesink] abort at pthread_mutex_unlock(&m->mutex) == 0' failed at
  pulsecore/mutex-posix.c:118, function pa_mutex_unlock() with libc 2.21

Status in glibc package in Ubuntu:
  Confirmed
Status in gst-plugins-good1.0 package in Ubuntu:
  Invalid
Status in pulseaudio package in Ubuntu:
  Invalid

Bug description:
  current build number: 146
  device name: m75
  channel: ubuntu-touch/vivid-proposed
  last update: 2015-03-24 13:57:03
  version version: 146

  After libc 2.21 landed, pulsesink fails constantly when pausing or
  seeking the active pipeline.

  Abort message:
  Assertion 'pthread_mutex_unlock(&m->mutex) == 0' failed at pulsecore/mutex-posix.c:118, function pa_mutex_unlock(). Aborting.

  This is basically happens when it tries to unlock a mutex that is
  already unlocked.

  This issue doesn't happen with libc 2.19.

  To reproduce the issue:
  GST_DEBUG=*pulse*:5 gst-launch-1.0 playbin uri=file:///tmp/foobar.mp3

  Then when playing, just hit control+c, which will then pause the
  pipeline, causing the crash. The crash happens with most of the times
  you pause or seek the pipeline.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/1436162/+subscriptions


References