Bug 520586

Summary: pulseaudio asserts and aborts after starting skype
Product: [Fedora] Fedora Reporter: Thomas Vander Stichele <thomas>
Component: pulseaudioAssignee: Lennart Poettering <lpoetter>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: 11CC: bnocera, james, lkundrak, lpoetter, sexyeuroboy, sg266, tomek, wtogami
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: 0.9.15-17.fc11 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2009-09-06 20:46:59 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

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:
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.

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
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
$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 2.1.0.47? 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:

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

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.
http://admin.fedoraproject.org/updates/pulseaudio-0.9.15-17.fc11

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.