Ticket #153 (new defect)

Opened 4 years ago

Last modified 11 months ago

OSS wrapper - Assertion `pa_atomic_load(&(b)->_ref) > 0' failed.

Reported by: jone Owned by: lennart
Milestone: 1.0 Component: padsp
Keywords: Cc: tedp, wvengen

Description

Using padsp to wrap the application gtick (a simple gnome metronome).

Sound is output fine when metronome is started, but when stopping the metronome the following error is produced

gtick: pulsecore/memblock.c:538: pa_memblock_unref: Assertion `pa_atomic_load(&(b)->_ref) > 0' failed. 2d915983-dfad-f6a1-3bdc7ed5-6b83925b is dumped

gtick: pulse/thread-mainloop.c:169: pa_threaded_mainloop_lock: Assertion `!m->thread !pa_thread_is_running(m->thread) !in_worker(m)' failed. Segmentation fault

Change History

Changed 4 years ago by tedp

  • cc tedp added

Changed 4 years ago by lennart

  • component changed from core to padsp

Changed 3 years ago by wvengen

Same problem for me. gdb session:

$ LD_PRELOAD=../.libs/libpulsedsp.so gdb /usr/bin/gtick 
GNU gdb 6.8-debian
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu"...
(no debugging symbols found)
(gdb) run
Starting program: /usr/bin/gtick 
(no debugging symbols found)
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread 0x7f9aba9a6770 (LWP 25557)]
[New Thread 0x41577950 (LWP 25565)]
W: client-conf.c: Failed to open configuration file '/usr/local/etc/pulse/client.conf': No such file or directory
[New Thread 0x421b0950 (LWP 25567)]
E: memblock.c: Assertion 'pa_atomic_load(&(b)->_ref) > 0' failed at pulsecore/memblock.c:538, function pa_memblock_unref(). Aborting.
E: memblock.c: Assertion 'pa_atomic_load(&(b)->_ref) > 0' failed at pulsecore/memblock.c:538, function pa_memblock_unref(). Aborting.
Program received signal SIGABRT, Aborted.
[Switching to Thread 0x421b0950 (LWP 25567)]
0x00007f9ab7accfd5 in raise () from /lib/libc.so.6
(gdb) bt
#0  0x00007f9ab7accfd5 in raise () from /lib/libc.so.6
#1  0x00007f9ab7aceb43 in abort () from /lib/libc.so.6
#2  0x00007f9ab787420b in pa_memblock_unref (b=0x7f9ab170e010) at pulsecore/memblock.c:512
#3  0x00007f9ab7874687 in pa_memexport_process_release (e=0xf30a30, id=<value optimized out>) at pulsecore/memblock.c:1001
#4  0x00007f9ab787aabd in do_something (p=0xf15af0) at pulsecore/pstream.c:700
#5  0x00007f9ab785d01d in pa_mainloop_dispatch (m=0xf15800) at pulse/mainloop.c:679
#6  0x00007f9ab785d2a6 in pa_mainloop_iterate (m=0xf15800, block=<value optimized out>, retval=0x0) at pulse/mainloop.c:922
#7  0x00007f9ab785d360 in pa_mainloop_run (m=0xf15800, retval=0x0) at pulse/mainloop.c:937
#8  0x00007f9ab786771d in thread (userdata=0xf13d50) at pulse/thread-mainloop.c:91
#9  0x00007f9ab7883db0 in internal_thread_func (userdata=0xf16060) at pulsecore/thread-posix.c:73
#10 0x00007f9ab7e133ea in start_thread () from /lib/libpthread.so.0
#11 0x00007f9ab7b80c6d in clone () from /lib/libc.so.6
#12 0x0000000000000000 in ?? ()
(gdb) up 2
#2  0x00007f9ab787420b in pa_memblock_unref (b=0x7f9ab170e010) at pulsecore/memblock.c:512
512	            pa_assert(slot);
(gdb) print *b
$1 = {_ref = {value = 0}, pool = 0xf15de0, type = PA_MEMBLOCK_POOL, read_only = 0, data = {value = 140302378655824}, 
  length = 256, n_acquired = {value = 0}, please_signal = {value = 0}, per_type = {user = {free_cb = 0}, imported = {id = 0, 
      segment = 0x0}}}

If I can do anything, please say so.

Changed 3 years ago by wvengen

  • cc wvengen added

Changed 3 years ago by krasmussen

I can confirm this as well, the error is reliably produced every time the metronome is stopped.

Changed 11 months ago by mkbosmans

  • milestone set to 1.0

still easy to trigger

Note: See TracTickets for help on using tickets.