<html>
<head>
<base href="https://bugs.freedesktop.org/">
</head>
<body><table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Bug ID</th>
<td><a class="bz_bug_link
bz_status_NEW "
title="NEW - Crash when changing port"
href="https://bugs.freedesktop.org/show_bug.cgi?id=104761">104761</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>Crash when changing port
</td>
</tr>
<tr>
<th>Product</th>
<td>PulseAudio
</td>
</tr>
<tr>
<th>Version</th>
<td>unspecified
</td>
</tr>
<tr>
<th>Hardware</th>
<td>Other
</td>
</tr>
<tr>
<th>OS</th>
<td>All
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Severity</th>
<td>normal
</td>
</tr>
<tr>
<th>Priority</th>
<td>medium
</td>
</tr>
<tr>
<th>Component</th>
<td>alsa
</td>
</tr>
<tr>
<th>Assignee</th>
<td>pulseaudio-bugs@lists.freedesktop.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>tanuk@iki.fi
</td>
</tr>
<tr>
<th>QA Contact</th>
<td>pulseaudio-bugs@lists.freedesktop.org
</td>
</tr>
<tr>
<th>CC</th>
<td>lennart@poettering.net
</td>
</tr></table>
<p>
<div>
<pre>With the current master changing ports on an alsa card makes PulseAudio crash:
#0 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1 0x00007ffff60d319a in __GI_abort () at abort.c:89
#2 0x00007ffff79008a5 in pa_sink_suspend (s=s@entry=0x55555583be10,
suspend=suspend@entry=false, cause=<optimized out>)
at pulsecore/sink.c:849
#3 0x00007fffecb4ac01 in sink_set_port_cb (s=0x55555583be10, p=0x5555557b0090)
at modules/alsa/alsa-sink.c:1533
#4 0x00007ffff7906e82 in pa_sink_process_msg (o=o@entry=0x55555583be10,
code=code@entry=22, userdata=userdata@entry=0x7fffffffd5f0,
offset=offset@entry=0, chunk=chunk@entry=0x0) at pulsecore/sink.c:2921
#5 0x00007fffecb4c9cb in sink_process_msg (o=0x55555583be10, code=22,
data=0x7fffffffd5f0, offset=0, chunk=0x0)
at modules/alsa/alsa-sink.c:1231
#6 0x00007ffff78e7155 in asyncmsgq_read_work (i=0x5555557b5250) at
pulsecore/rtpoll.c:566
#7 0x00007ffff78e7a75 in pa_rtpoll_run (p=0x5555559908b0) at
pulsecore/rtpoll.c:236
#8 0x00007fffecb4d665 in thread_func (userdata=0x555555990660) at
modules/alsa/alsa-sink.c:1822
#9 0x00007ffff76833a8 in internal_thread_func (userdata=0x55555584e3a0) at
pulsecore/thread-posix.c:81
#10 0x00007ffff6b67519 in start_thread (arg=0x7fffecb23700) at
pthread_create.c:456
#11 0x00007ffff618aa4f in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:97
The pa_sink_suspend() call was recently added to sink_set_port_cb().
sink_set_port_cb() is called from the IO thread when deferred volume is
enabled, as it usually is.
Fixing this doesn't seem trivial. I think I'll try to make things so that
sink_set_port_cb() is only called from the main thread so that it can safely
call pa_sink_suspend(). The mixer handling will still need to happen in the IO
thread when deferred volume is enabled, but sink_set_port_cb() can probably do
that by sending a message to the IO thread.</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the QA Contact for the bug.</li>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>