Bug 520586 - pulseaudio asserts and aborts after starting skype
Summary: pulseaudio asserts and aborts after starting skype
Alias: None
Product: Fedora
Classification: Fedora
Component: pulseaudio
Version: 11
Hardware: All
OS: Linux
Target Milestone: ---
Assignee: Lennart Poettering
QA Contact: Fedora Extras Quality Assurance
: 520696 (view as bug list)
Depends On:
TreeView+ depends on / blocked
Reported: 2009-09-01 09:33 UTC by Thomas Vander Stichele
Modified: 2009-09-06 20:46 UTC (History)
8 users (show)

Fixed In Version: 0.9.15-17.fc11
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2009-09-06 20:46:59 UTC

Attachments (Terms of Use)

Description Thomas Vander Stichele 2009-09-01 09:33:24 UTC
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:
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.

Comment 1 Thomas Vander Stichele 2009-09-01 09:58:51 UTC
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.

Comment 2 Thomas Vander Stichele 2009-09-01 10:04:39 UTC
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)

Comment 3 Thomas Vander Stichele 2009-09-01 10:07:36 UTC

(gdb) cont

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

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

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

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

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

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

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

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
$2 = {channels = 1 '\1', values = {2, 145624656, 7697280, 3219230408, 
    50862238, 51043024, 7697292, 3219230424, 145616304, 51043088, 51040728, 
    3219230392, 50934985, 20, 2435490, 0, 145622760, 6665534, 51040728, 
    3219230472, 50935184, 1, 20, 3219230472, 50941295, 622133248, 145624598, 
    4, 2362281, 2434851, 1, 3219230520}}
(gdb) p s->sample_spec
$3 = {format = PA_SAMPLE_S16LE, rate = 44100, channels = 2 '\2'}

Rough guess: the channel count does not match ?

Comment 4 Tomasz Torcz 2009-09-01 12:12:55 UTC
Are you running Skype vesion It is alleged to work with PA.

Comment 5 Lennart Poettering 2009-09-01 15:37:07 UTC
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

Comment 6 Lennart Poettering 2009-09-01 16:11:39 UTC
Oh, and btw. Here's a short intro how to use gdb on PA:


Comment 7 Lennart Poettering 2009-09-01 21:00:28 UTC
*** Bug 520696 has been marked as a duplicate of this bug. ***

Comment 8 Saikat Guha 2009-09-01 22:40:14 UTC
FYI, disabling the "Let Skype control my mixer settings" in Skype works around this bug.

Comment 9 Fedora Update System 2009-09-04 14:25:41 UTC
pulseaudio-0.9.15-17.fc11 has been submitted as an update for Fedora 11.

Comment 10 Fedora Update System 2009-09-06 20:46:54 UTC
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.

Note You need to log in before you can comment on or make changes to this bug.