Bug 72879 - Assertion '!map || (map->channels == c->channels)' failed at pulse/volume.c:378, function pa_cvolume_snprint_verbose().
Summary: Assertion '!map || (map->channels == c->channels)' failed at pulse/volume.c:3...
Status: RESOLVED FIXED
Alias: None
Product: PulseAudio
Classification: Unclassified
Component: core (show other bugs)
Version: unspecified
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: pulseaudio-bugs
QA Contact: pulseaudio-bugs
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-12-19 15:04 UTC by Ingemar Ådahl
Modified: 2013-12-20 14:44 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments
gc_message1.wav, found in /usr/share/gajim/data/sounds/gc_message1.wav on my system (62.16 KB, text/plain)
2013-12-19 15:04 UTC, Ingemar Ådahl
Details

Description Ingemar Ådahl 2013-12-19 15:04:41 UTC
Created attachment 90991 [details]
gc_message1.wav, found in /usr/share/gajim/data/sounds/gc_message1.wav on my system

Gajim bundles .wav files used when notifying the user of events, such as being highlighted in group conversations. Upon playing one of these files (see attached files), pulseaudio crashes due to an assertion:
E: [pulseaudio] volume.c: Assertion '!map || (map->channels == c->channels)' failed at pulse/volume.c:378, function pa_cvolume_snprint_verbose(). Aborting.

Stack trace as follows
#0  0x00007ffff4582319 in raise () from /usr/lib/libc.so.6
#1  0x00007ffff4583718 in abort () from /usr/lib/libc.so.6
#2  0x00007ffff73b356b in pa_cvolume_snprint_verbose () from /usr/lib/libpulse.so.0
#3  0x00007ffff7b61cbb in ?? () from /usr/lib/libpulsecore-4.0.so
#4  0x00007ffff7b69ae3 in pa_cli_command_execute_line_stateful () from /usr/lib/libpulsecore-4.0.so
#5  0x00007fffdfdfe1ca in ?? () from /usr/lib/pulse-4.0/modules/libcli.so
#6  0x00007ffff6ca31b7 in ?? () from /usr/lib/pulseaudio/libpulsecommon-4.0.so
#7  0x00007ffff73a19e4 in pa_mainloop_dispatch () from /usr/lib/libpulse.so.0
#8  0x00007ffff73a1dba in pa_mainloop_iterate () from /usr/lib/libpulse.so.0
#9  0x00007ffff73a1e60 in pa_mainloop_run () from /usr/lib/libpulse.so.0
#10 0x0000000000406cb1 in main (argc=<optimized out>, argv=<optimized out>) at daemon/main.c:1146
Comment 1 Tanu Kaskinen 2013-12-19 15:15:08 UTC
Can you install debug symbols for pulseaudio and libpulse and get a new stack trace?
Comment 2 Ingemar Ådahl 2013-12-19 15:51:14 UTC
It seems I forgot to add LD_LIBRARY_PATH to my environment. Still, .so-files from /usr/lib are loaded for libcli and libpulsecommon, but for now, this might be sufficient.

#0  0x00007ffff4584319 in raise () from /usr/lib/libc.so.6
#1  0x00007ffff4585718 in abort () from /usr/lib/libc.so.6
#2  0x00007ffff73b4cfb in pa_cvolume_snprint_verbose (s=s@entry=0x7fffffffd9e0 "mono: 65536 / 100% / 0.00 dB", l=l@entry=1984, c=c@entry=0x75c13c, 
    map=<optimized out>, print_dB=print_dB@entry=1) at pulse/volume.c:369
#3  0x00007ffff7b6248b in pa_cli_command_dump_volumes (c=0x644d40, t=<optimized out>, buf=0x68c7d0, fail=0x6703f8) at pulsecore/cli-command.c:1931
#4  0x00007ffff7b6a223 in pa_cli_command_execute_line_stateful (c=0x644d40, s=<optimized out>, buf=0x68c7d0, fail=0x6703f8, ifstate=<optimized out>)
    at pulsecore/cli-command.c:2136
#5  0x00007fffdfdfe1ca in ?? () from /usr/lib/pulse-4.0/modules/libcli.so
#6  0x00007ffff6ca51b7 in ?? () from /usr/lib/pulseaudio/libpulsecommon-4.0.so
#7  0x00007ffff73a3214 in dispatch_pollfds (m=0x640b40) at pulse/mainloop.c:658
#8  pa_mainloop_dispatch (m=m@entry=0x640b40) at pulse/mainloop.c:905
#9  0x00007ffff73a35ea in pa_mainloop_iterate (m=m@entry=0x640b40, block=block@entry=1, retval=retval@entry=0x7fffffffe4a8) at pulse/mainloop.c:936
#10 0x00007ffff73a3690 in pa_mainloop_run (m=m@entry=0x640b40, retval=retval@entry=0x7fffffffe4a8) at pulse/mainloop.c:951
#11 0x0000000000406cb1 in main (argc=<optimized out>, argv=<optimized out>) at daemon/main.c:1146
Comment 3 Tanu Kaskinen 2013-12-20 14:19:20 UTC
Thank you! That trace was good enough for finding the bug. This is hopefully now fixed: http://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/?id=5d2d9e57006c6509ef6d173b89502685ff429449

It's a mystery, though, what is actually happening. It looks like something is running "pacmd dump-volumes", which is not really expected if the crash is happening when Gajim tries to play some sound...
Comment 4 Ingemar Ådahl 2013-12-20 14:44:48 UTC
Ah, that must be due to my statusbar (for dwm) script running every other second or so. It uses 'pacmd dump-volumes' to read the current level.

Either way, thanks for a quick fix! Works like a charm :)


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.