pulseaudio crashes at pa_cvolume_compatible when starting skype call

Bug #422451 reported by darylb on 2009-09-01
22
This bug affects 3 people
Affects Status Importance Assigned to Milestone
PulseAudio
Fix Released
Unknown
pulseaudio (Fedora)
Fix Released
Medium
pulseaudio (Ubuntu)
Medium
Unassigned

Bug Description

Binary package hint: pulseaudio

I was trying out Skype 2.1.0.47 on Ubuntu Karmic (up to date as of today, 1st Sept 2009), but trying a test call did not work, and pulseaudio crashed. The problem seems to happen every time I try.

I expected to be able to hear a voice on the test call, and then record and hear my own voice as is usual with Skype test calls.

What happened was I heard the noise that indicates a call is starting, but the test call voice never appeared. After that Skype would not respond to me asking it to quit (via the GUI), I had to pkill -3 skype to kill it.

This is the last few lines of the log of pulseaudio -vv (which is attached in full):

D: module-suspend-on-idle.c: Source alsa_input.pci-0000_00_1b.0.analog-stereo becomes busy.
D: protocol-native.c: Client skype changes volume of sink alsa_output.pci-0000_00_1b.0.analog-stereo.monitor.
E: source.c: Assertion 'pa_cvolume_compatible(volume, &s->sample_spec)' failed at pulsecore/source.c:765, function pa_source_set_volume(). Aborting.
Aborted (core dumped)

Here is some information on my system:

$ lsb_release -rd
Description: Ubuntu karmic (development branch)
Release: 9.10

$ apt-cache policy pulseaudio
pulseaudio:
  Installed: 1:0.9.16~test6-3-g57e1-0ubuntu2
  Candidate: 1:0.9.16~test6-3-g57e1-0ubuntu2
  Version table:
 *** 1:0.9.16~test6-3-g57e1-0ubuntu2 0
        500 http://gb.archive.ubuntu.com karmic/main Packages
        100 /var/lib/dpkg/status

darylb (darylblanc) wrote :
darylb (darylblanc) wrote :

WORKAROUND:
Disabling "Allow Skype to automatically adjust my mixer levels" in the "Sound Devices" tab of the options screen in Skype causes calls to work again. Pulseaudio does not crash.

Description of problem:

Trying to set up skype on my laptop (T61 thinkpad). At some point audio stops working (all input/output set to pulseaudio).

Just know, I started pulseaudio from the command line. I start skype, hear the swoosh sound, go to settings, click test sound a few times, then do test call.

At that point, pulseaudio aborts:

[root@otto ~]# N: alsa-source.c: Increasing minimal latency to 1.00 ms
N: alsa-source.c: Increasing minimal latency to 2.00 ms
N: alsa-source.c: Increasing minimal latency to 4.00 ms
N: alsa-source.c: Increasing minimal latency to 8.00 ms
E: source.c: Assertion 'pa_cvolume_compatible(volume, &s->sample_spec)' failed at pulsecore/source.c:666, function pa_source_set_volume(). Aborting.

How reproducible:

Don't know yet; skype has failed playing sound at least twice.
Googling for the error message didn't turn up results.

Also, the line number is suspicious; Lennart, is The Beast hiding in your software ?

Steps to Reproduce:
1.
2.
3.

Actual results:

Expected results:

Additional info:

In my opinion, pulseaudio crashing because of a bad client should be a no-no. Throwing out the client would be ok; and it should somehow be able to tell me about the bad client. pulseaudio is meant to run as a server, and it was by accident that I noticed the message.

Some more info:

 - reproduced 5 times out of 5. It happens when I make the test call. Judging from the method, it might be related to the setting that allows skype to control mixer levels, which I will deactivate for the next test.

 - after that happens, skype cannot play any sounds at all anymore.

 - skype also can't be shut down. A normal kill doesn't work either. kill -9 does it though.

 - installing debug symbols now to get a backtrace of the assert.

ok, so deactivating the setting 'allow changing mixer volumes' helps (though you have to click apply first; the first time it still crashed presumably because it hadn't applied the settings yet)

Download full text (3.6 KiB)

Backtrace:

(gdb) cont
Continuing.

Program received signal SIG63, Real-time event 63.
[Switching to Thread 0xb7e01b70 (LWP 30474)]
0x00aa1424 in __kernel_vsyscall ()
(gdb) bt
#0 0x00aa1424 in __kernel_vsyscall ()
#1 0x006bd470 in ppoll (fds=0x8aeca28, nfds=3, timeout=0xb7e011f4,
    sigmask=0x8ade7d8) at ../sysdeps/unix/sysv/linux/ppoll.c:58
#2 0x0059a49c in pa_rtpoll_run (p=0x8ade7b8, wait=true)
    at pulsecore/rtpoll.c:413
#3 0x00fdd2c3 in thread_func (userdata=0x8ade610)
    at modules/alsa/alsa-sink.c:1347
#4 0x0309979c in internal_thread_func (userdata=0x8af29b8)
    at pulsecore/thread-posix.c:72
#5 0x00c1a935 in start_thread (arg=0xb7e01b70) at pthread_create.c:297
#6 0x006c793e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130
(gdb) cont
Continuing.

Program received signal SIG62, Real-time event 62.
[Switching to Thread 0xb324eb70 (LWP 30475)]
0x00aa1424 in __kernel_vsyscall ()
(gdb) cont
Continuing.

Program received signal SIG62, Real-time event 62.
0x00aa1424 in __kernel_vsyscall ()
(gdb) cont
Continuing.

Program received signal SIG62, Real-time event 62.
0x00aa1424 in __kernel_vsyscall ()
(gdb) cont
Continuing.

Program received signal SIG62, Real-time event 62.
0x00aa1424 in __kernel_vsyscall ()
(gdb) cont
Continuing.

Program received signal SIG62, Real-time event 62.
0x00aa1424 in __kernel_vsyscall ()
(gdb) cont
Continuing.

Program received signal SIG62, Real-time event 62.
0x00aa1424 in __kernel_vsyscall ()
(gdb) cont
Continuing.

Program received signal SIGABRT, Aborted.
[Switching to Thread 0xb8002750 (LWP 30473)]
0x00aa1424 in __kernel_vsyscall ()
(gdb) bt
#0 0x00aa1424 in __kernel_vsyscall ()
#1 0x006147c1 in *__GI_raise (sig=6)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#2 0x00616092 in *__GI_abort () at abort.c:88
#3 0x005c39e0 in pa_source_set_volume (s=0x8afc738, volume=0xbfe18e68)
    at pulsecore/source.c:666
#4 0x0024c3a7 in command_set_volume (pd=0x8af7c68, command=38, tag=5413,
    t=0x8adedb0, userdata=0x8ade008) at pulsecore/protocol-native.c:3327
#5 0x03083298 in pa_pdispatch_run (pd=0x8af7c68, packet=0x8ae0e00,
    creds=0x8ade440, userdata=0x8ade008) at pulsecore/pdispatch.c:326
#6 0x0024fdd9 in pstream_packet_callback (p=0x8ade378, packet=0x8ae0e00,
    creds=0x8ade440, userdata=0x8ade008) at pulsecore/protocol-native.c:4234
#7 0x03089317 in do_read (p=0x8ade378) at pulsecore/pstream.c:816
#8 0x03086a99 in do_something (p=0x8ade378) at pulsecore/pstream.c:184
#9 0x03086cbb in io_callback (io=0x8adc838, userdata=0x8ade378)
    at pulsecore/pstream.c:213
#10 0x03070885 in callback (m=0x8ab2b44, e=0x8addfd8, fd=8, f=3,
    userdata=0x8adc838) at pulsecore/iochannel.c:119
#11 0x030cdd91 in dispatch_pollfds (m=0x8ab2b08) at pulse/mainloop.c:683
#12 0x030ceaa1 in pa_mainloop_dispatch (m=0x8ab2b08) at pulse/mainloop.c:896
#13 0x030cec32 in pa_mainloop_iterate (m=0x8ab2b08, block=1, retval=0xbfe19300)
    at pulse/mainloop.c:926
#14 0x030cec98 in pa_mainloop_run (m=0x8ab2b08, retval=0xbfe19300)
    at pulse/mainloop.c:941
#15 0x080548e2 in main (argc=3, argv=0xbfe19414) at daemon/main.c:1054

further info:
(gdb) p volume
$1 = (const pa_cvolume *) 0xbfe18e68
(gdb) p *volume...

Read more...

Are you running Skype vesion 2.1.0.47? It is alleged to work with PA.

The problem is also reported in the Fedora bugtracker: https://bugzilla.redhat.com/show_bug.cgi?id=520586

Changed in pulseaudio (Ubuntu):
status: New → Triaged
importance: Undecided → Medium
Changed in pulseaudio (Fedora):
status: Unknown → Confirmed

Yes, under no circumstances a client should be able to trigger an assert in PA.

See http://pulseaudio.org/ticket/638

Fixed upstream in http://git.0pointer.de/?p=pulseaudio.git;a=commitdiff;h=e1ce365cd9cdcdfd1535aa58882de249c6274ed4

Oh, and btw. Here's a short intro how to use gdb on PA:

http://pulseaudio.org/wiki/Community#BugsPatchesTranslations

Roland Dreier (roland.dreier) wrote :

You probably already saw this, but the Fedora bug shows that this is fixed upstream:
http://git.0pointer.de/?p=pulseaudio.git;a=commitdiff;h=e1ce365cd9cdcdfd1535aa58882de249c6274ed4
with more details at http://pulseaudio.org/ticket/638

Probably a good idea to get pulse with at least that fix added in uploaded to karmic.

*** Bug 520696 has been marked as a duplicate of this bug. ***

Changed in pulseaudio:
status: Unknown → Fix Committed

FYI, disabling the "Let Skype control my mixer settings" in Skype works around this bug.

On Tue, Sep 1, 2009 at 5:16 PM, Marcel
Stimberg<email address hidden> wrote:
> ** Changed in: pulseaudio
>       Status: Unknown => Fix Committed

They're already in the ubuntu-audio-dev ppa.

Changed in pulseaudio:
status: Fix Committed → Fix Released

pulseaudio-0.9.15-17.fc11 has been submitted as an update for Fedora 11.
http://admin.fedoraproject.org/updates/pulseaudio-0.9.15-17.fc11

pulseaudio-0.9.15-17.fc11 has been pushed to the Fedora 11 stable repository. If problems still persist, please make note of it in this bug report.

Launchpad Janitor (janitor) wrote :

This bug was fixed in the package pulseaudio - 1:0.9.16~test7-14-g7ca81-0ubuntu1

---------------
pulseaudio (1:0.9.16~test7-14-g7ca81-0ubuntu1) karmic; urgency=low

  * New git snapshot of origin/master (0.9.16~test7-14-g7ca81)
    fixes LP: #419658, #422451, #424127
  * debian/pulseaudio.install: add module-loopback
  * debian/control: remove liboil*-dev build-dependency thanks to
    included ASM optimisations
  * debian/copyright: update; we've added module-loopback
  * debian/patches/0052-disable-cpu-limit.patch: Disable cpu limit as
    per 812be327836c93492ad389333bcc037566141eb8
  * debian/patches/0053-add-input-sources.patch: Add internal mic and
    docking station as per 8cd635bc614834c13d0f1c586d472b4a52b98664
  * debian/patches/0054-use-sse2-volume.patch: Only use if SSE2 is
    available. This is a workaround for LP: #418448, thanks "knarf"!

 -- Daniel T Chen <email address hidden> Sun, 06 Sep 2009 14:23:15 -0400

Changed in pulseaudio (Ubuntu):
status: Triaged → Fix Released
Changed in pulseaudio (Fedora):
status: Confirmed → Fix Released
Changed in pulseaudio (Fedora):
importance: Unknown → Medium
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.