Bug 100136

Summary: Losing playback audio after migration
Product: Spice Reporter: Victor Toso <bugzilla>
Component: serverAssignee: Spice Bug List <spice-bugs>
Status: RESOLVED MOVED QA Contact:
Severity: normal    
Priority: medium CC: bugzilla, teuf
Version: unspecifiedKeywords: regression
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments: (0.13.3) target host
(0.13.3) source host
(0.13.3) remote-viewer
(0.12.4) target host
(0.12.4) source host
(0.12.4) remote-viewer

Description Victor Toso 2017-03-09 07:34:42 UTC
* On migration between two hosts with the same spice version, while playing some playback audio in a RHEL 7 Guest:
- spice 0.12.4, we still have audio playing after migration
- spice 0.13.3, we don't have audio after migration

I used spice 0.13.3 from nightly copr at [0] which is basically git master (tagged version + 222 commits)

[0] https://copr-be.cloud.fedoraproject.org/results/@spice/nightly/fedora-25-x86_64/00522879-spice/

Client is also upstream being spice-gtk at ecb4de270587fba and remote-viewer at 4fc66ec46c4

I'll attach the qemu + spice-server and remote-viewer logs from both situations.
Comment 1 Victor Toso 2017-03-09 07:35:40 UTC
Created attachment 130138 [details]
(0.13.3) target host
Comment 2 Victor Toso 2017-03-09 07:38:35 UTC
Created attachment 130139 [details]
(0.13.3) source host
Comment 3 Victor Toso 2017-03-09 07:39:16 UTC
Created attachment 130140 [details]
(0.13.3) remote-viewer
Comment 4 Victor Toso 2017-03-09 07:40:21 UTC
Created attachment 130141 [details]
(0.12.4) target host
Comment 5 Victor Toso 2017-03-09 07:40:45 UTC
Created attachment 130142 [details]
(0.12.4) source host
Comment 6 Victor Toso 2017-03-09 07:41:09 UTC
Created attachment 130143 [details]
(0.12.4) remote-viewer
Comment 7 Christophe Fergeau 2017-04-13 16:24:48 UTC
Here are some call traces with a recent 0.13 snapshot, and then with 0.12

     0 qemu-system-x86(16634):->spice_server_playback_set_volume sin=0x55a2eba807d8 nchannels=0x2 volume=0x55a2ef2f9ce0
    26 qemu-system-x86(16634): ->snd_channel_set_volume channel=0x55a2ee6ec980 nchannels=0x2 volume=0x55a2ef2f9ce0
   408 qemu-system-x86(16634): <-0x55a2ea0eb9d4
   414 qemu-system-x86(16634):<-0x55a2ea0eb9d4
     0 qemu-system-x86(16634):->spice_server_playback_set_mute sin=0x55a2eba807d8 mute=0x0
     6 qemu-system-x86(16634): ->snd_channel_set_mute channel=0x55a2ee6ec980 mute=0x0
    22 qemu-system-x86(16634): <-0x55a2ea0eb9e0
    26 qemu-system-x86(16634):<-0x55a2ea0eb9e0
     0 qemu-system-x86(16634):->spice_server_record_set_volume sin=0x55a2ee6ea078 nchannels=0x2 volume=0x55a2ef2f9ce0
     6 qemu-system-x86(16634): ->snd_channel_set_volume channel=0x55a2ee6eca50 nchannels=0x2 volume=0x55a2ef2f9ce0
    26 qemu-system-x86(16634): <-0x55a2ea0eb7d1
    30 qemu-system-x86(16634):<-0x55a2ea0eb7d1
     0 qemu-system-x86(16634):->spice_server_record_set_mute sin=0x55a2ee6ea078 mute=0x0
     4 qemu-system-x86(16634): ->snd_channel_set_mute channel=0x55a2ee6eca50 mute=0x0
    19 qemu-system-x86(16634):  ->snd_send client=0x55a2ed2981b0
    35 qemu-system-x86(16634):   ->record_channel_send_item rcc=0x55a2ed2981b0 item=0x55a2ed2989a0
    40 qemu-system-x86(16634):    ->record_channel_client_get_type
    44 qemu-system-x86(16634):    <-record_channel_send_item return=0x55a2eb9cf3b0
    47 qemu-system-x86(16634):    ->snd_channel_client_get_type
    51 qemu-system-x86(16634):    <-record_channel_send_item return=0x55a2eb9ced20
    56 qemu-system-x86(16634):    ->snd_send_mute.constprop.5 client=0x55a2ed2981b0 msg=0x68 cap=0x1
    60 qemu-system-x86(16634):     ->snd_channel_get_type
    64 qemu-system-x86(16634):     <-snd_send_mute.constprop.5 return=0x55a2eb9cea10
   117 qemu-system-x86(16634):    <-record_channel_send_item return=0x1
   121 qemu-system-x86(16634):    ->snd_send client=0x55a2ed2981b0
   126 qemu-system-x86(16634):    <-record_channel_send_item
   128 qemu-system-x86(16634):   <-red_channel_client_push
   133 qemu-system-x86(16634):   ->snd_persistent_pipe_item_free item=0x55a2ed2989a0
   138 qemu-system-x86(16634):   <-red_channel_client_push
   143 qemu-system-x86(16634):  <-0x55a2ea0eb7dd
   147 qemu-system-x86(16634): <-0x55a2ea0eb7dd
   151 qemu-system-x86(16634):<-0x55a2ea0eb7dd



     0 qemu-system-x86(18427):->spice_server_playback_set_volume sin=0x559a318727d8 nchannels=0x2 volume=0x559a3407bce0
    60 qemu-system-x86(18427): ->snd_playback_send_volume playback_channel=0x559a343da000
    69 qemu-system-x86(18427):  ->snd_send_volume.isra.2 channel=0x559a343da000 msg=0x69 st=? st=?
   320 qemu-system-x86(18427):   ->snd_begin_send_message channel=0x559a343da000
   331 qemu-system-x86(18427):    ->snd_send_data channel=0x559a343da000
   393 qemu-system-x86(18427):     ->snd_playback_on_message_done channel=0x559a343da000
   400 qemu-system-x86(18427):     <-snd_send_data
   403 qemu-system-x86(18427):    <-snd_send_volume.isra.2 return=0x1
   406 qemu-system-x86(18427):   <-snd_send_volume.isra.2 return=0x1
   408 qemu-system-x86(18427):  <-0x559a2e3a99d4 return=0x1
   422 qemu-system-x86(18427): <-0x559a2e3a99d4 return=0x1
   426 qemu-system-x86(18427):<-0x559a2e3a99d4
     0 qemu-system-x86(18427):->spice_server_playback_set_mute sin=0x559a318727d8 mute=0x0
    34 qemu-system-x86(18427): ->snd_playback_send_mute playback_channel=0x559a343da000
    42 qemu-system-x86(18427):  ->snd_begin_send_message channel=0x559a343da000
    48 qemu-system-x86(18427):   ->snd_send_data channel=0x559a343da000
    80 qemu-system-x86(18427):    ->snd_playback_on_message_done channel=0x559a343da000
    85 qemu-system-x86(18427):    <-snd_send_data
    88 qemu-system-x86(18427):   <-snd_playback_send_mute return=0x1
    90 qemu-system-x86(18427):  <-snd_playback_send_mute return=0x1
    93 qemu-system-x86(18427): <-0x559a2e3a99e0 return=0x1
    97 qemu-system-x86(18427):<-0x559a2e3a99e0
     0 qemu-system-x86(18427):->spice_server_record_set_volume sin=0x559a3311c078 nchannels=0x2 volume=0x559a3407bce0
    22 qemu-system-x86(18427): ->snd_record_send_volume record_channel=0x559a32ac4000
    30 qemu-system-x86(18427):  ->snd_send_volume.isra.2 channel=0x559a32ac4000 msg=0x67 st=? st=?
    38 qemu-system-x86(18427):   ->snd_begin_send_message channel=0x559a32ac4000
    44 qemu-system-x86(18427):    ->snd_send_data channel=0x559a32ac4000
    75 qemu-system-x86(18427):     ->snd_record_on_message_done channel=0x559a32ac4000
    80 qemu-system-x86(18427):     <-snd_send_data
    82 qemu-system-x86(18427):    <-snd_send_volume.isra.2 return=0x1
    84 qemu-system-x86(18427):   <-snd_send_volume.isra.2 return=0x1
    87 qemu-system-x86(18427):  <-0x559a2e3a97d1 return=0x1
    91 qemu-system-x86(18427): <-0x559a2e3a97d1 return=0x1
    94 qemu-system-x86(18427):<-0x559a2e3a97d1
     0 qemu-system-x86(18427):->spice_server_record_set_mute sin=0x559a3311c078 mute=0x0
    18 qemu-system-x86(18427): ->snd_record_send_mute record_channel=0x559a32ac4000
    25 qemu-system-x86(18427):  ->snd_begin_send_message channel=0x559a32ac4000
    31 qemu-system-x86(18427):   ->snd_send_data channel=0x559a32ac4000
    57 qemu-system-x86(18427):    ->snd_record_on_message_done channel=0x559a32ac4000
    62 qemu-system-x86(18427):    <-snd_send_data
    64 qemu-system-x86(18427):   <-snd_record_send_mute return=0x1
    66 qemu-system-x86(18427):  <-snd_record_send_mute return=0x1
    69 qemu-system-x86(18427): <-0x559a2e3a97dd return=0x1
    73 qemu-system-x86(18427):<-0x559a2e3a97dd


For the playback channel, the volume is never actually sent on the wire (no calls to playback_channel_send_item).

This is because when snd_channel_set_volume() is called, channel->connection is NULL for the playback channel, and thus we return early.
channel->connection is set by on_new_playback_channel_client() which is not called during migration, so that's expected.

In 0.12.8, this was unconditionally set in snd_set_playback_peer()

I did not have time yet to check whether setting it would fix that bug, but it 's likely.
Comment 8 Christophe Fergeau 2017-04-13 20:26:35 UTC
See https://cgit.freedesktop.org/spice/spice/commit/?id=590acf3c556 which changed this.
Comment 9 Christophe Fergeau 2017-04-14 07:04:58 UTC
https://lists.freedesktop.org/archives/spice-devel/2017-April/037177.html should fix this.
Comment 10 GitLab Migration User 2018-06-03 10:14:29 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/spice/spice-server/issues/2.

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.