<div dir="ltr"><div class="gmail_default" style="font-size:large">Hi, could you help to check whether it's a bug or not? <br></div><div class="gmail_default" style="font-size:large">It's a problem that virt-manager and virt-viewer race for console connection.<br></div><div class="gmail_default" style="font-size:large"><br></div><div class="gmail_default" style="font-size:large">Thank you!</div><div class="gmail_default" style="font-size:large">xiaodwan<br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">---------- Forwarded message ---------<br>From: <b class="gmail_sendername" dir="auto">Meina Li</b> <span dir="ltr"><<a href="mailto:meili@redhat.com" target="_blank">meili@redhat.com</a>></span><br>Date: Wed, Mar 6, 2019 at 5:27 PM<br>Subject: [s3-bug-review] Remote-viewer will disconnect after migration back in seamless SPICE migration when there already has another guest client opened by virt-manager<br>To:  <<a href="mailto:spice-devel@redhat.com" target="_blank">spice-devel@redhat.com</a>>, Xiaodai Wang <<a href="mailto:xiaodwan@redhat.com" target="_blank">xiaodwan@redhat.com</a>><br>Cc: s3-bug-review <<a href="mailto:s3-bug-review@redhat.com" target="_blank">s3-bug-review@redhat.com</a>>, Fangge Jin <<a href="mailto:fjin@redhat.com" target="_blank">fjin@redhat.com</a>>, Yanqiu Zhang <<a href="mailto:yanqzhan@redhat.com" target="_blank">yanqzhan@redhat.com</a>>, Junqin Zhou <<a href="mailto:juzhou@redhat.com" target="_blank">juzhou@redhat.com</a>><br></div><br><br><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><span id="m_-5574246701568466502m_5039241465237844806gmail-docs-internal-guid-06fa1d59-7fff-d21d-73d2-36342a91af48"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">Hi all,</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">I encountered a issue when I test </span><span style="color:rgb(0,0,0);font-size:x-small">seamless SPICE migration. Is anyone can help me review this question? Thank you very much.</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><br></span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">Description of problem:</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><font face="Arial" color="#000000"><span style="font-size:14.6667px;white-space:pre-wrap">Remote-viewer will disconnect after migration back in </span></font><span style="color:rgb(0,0,0)"><font size="1">seamless SPICE migration when there already has another guest client opened by virt-manager</font></span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><br></span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">Version-Release number of selected component (if applicable):</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline"><font face="Arial" color="#000000"><span style="font-size:14.6667px;white-space:pre-wrap">libvirt-4.5.0-23.module+el8+2800+2d311f65.x86_64</span></font><br></span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline"><font face="Arial" color="#000000"><span style="font-size:14.6667px;white-space:pre-wrap">qemu-kvm-2.12.0-63.module+el8+2833+c7d6d092.x86_64</span><br></font></span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline"><font face="Arial" color="#000000"><span style="font-size:14.6667px;white-space:pre-wrap">virt-manager-2.0.0-4.el8.noarch</span><br></font></span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline"><font face="Arial" color="#000000"><span style="font-size:14.6667px;white-space:pre-wrap">virt-viewer-7.0-2.el8.x86_64</span><br></font></span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><br></span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">How reproducible:</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">100%</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><br></span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">Steps to Reproduce:</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">1. Prepare migration env: </span><a href="https://docs.google.com/document/d/1_kVln4N0NddvLU4OQ_hxWDGXLpxc7JeMx1OqZqpdgm0/edit#" class="m_-5574246701568466502m_5039241465237844806gmail-descriptionLink" style="font-size:13.3333px;color:rgb(2,119,187)" target="_blank">Migration env setup</a><span style="color:rgb(0,0,0);font-size:13.3333px"> </span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">2. </span><font face="arial, helvetica, sans-serif"><font size="1">Dispatch ssh public key of source host to target host and vice versa.</font></font></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><font face="arial, helvetica, sans-serif"><font size="1">    # ssh-keygen -t rsa</font></font></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><font face="arial, helvetica, sans-serif"><font size="1">    # ssh-copy-id -i ~/.ssh/id_rsa.pub root@$target_ip</font></font></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">3. </span><font size="1"><span style="color:rgb(0,0,0)">Prepare </span><span style="color:rgb(0,0,0);line-height:1.5">a guest with spice graphic</span></font></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="color:rgb(0,0,0);line-height:1.5;font-size:14.6667px;white-space:pre-wrap"><font face="Arial">    </font></span><span style="color:rgb(0,0,0);font-size:13.3333px;font-style:italic"><graphics type='</span><span style="color:rgb(0,0,0);font-size:13.3333px;font-style:italic;font-weight:bold">spice</span><span style="color:rgb(0,0,0);font-size:13.3333px;font-style:italic">' autoport='yes' listen='<b>0.0.0.0</b></span><span style="color:rgb(0,0,0);font-size:13.3333px;font-style:italic">'/></span></p><span style="color:rgb(0,0,0);font-size:13.3333px;font-style:italic">    <video></span><br style="color:rgb(0,0,0);font-size:13.3333px;font-style:italic"><span style="color:rgb(0,0,0);font-size:13.3333px;font-style:italic">        <model type='</span><span style="color:rgb(0,0,0);font-size:13.3333px;font-style:italic;font-weight:bold">qxl</span><span style="color:rgb(0,0,0);font-size:13.3333px;font-style:italic">' vram='65536' heads='1'/></span><br style="color:rgb(0,0,0);font-size:13.3333px;font-style:italic"><span style="color:rgb(0,0,0);font-size:13.3333px;font-style:italic">    </video></span></span></div><div dir="ltr"><font color="#000000"><font size="1">4. Open a guest client connection by virt-manager on source host.</font></font></div><div dir="ltr"><font color="#000000"><font size="1">5. Connect to guest client by remote-viewer on source host:</font></font></div><div dir="ltr"><span style="color:rgb(0,0,0)"><font size="1">    </font></span><span style="color:rgb(0,0,0)"><font size="1"># remote-viewer spice://</font></span><span style="color:rgb(0,0,0);font-size:x-small">{source hostA_ip}</span><span style="font-size:x-small;color:rgb(0,0,0)">:port</span></div><div dir="ltr"><span style="color:rgb(0,0,0)"><font size="1">    --->At this time, the client opened by virt-manager in step4 will disconnect, it's expected.</font></span></div><div dir="ltr"><span style="color:rgb(0,0,0)"><font size="1">6. Do migration from source host to target host and c</font></span><font size="1"><span style="color:rgb(0,0,0)">heck spice client status. S</span></font><span style="color:rgb(0,0,0)"><font size="1">pice client still alive.</font></span></div><div dir="ltr"><span style="color:rgb(0,0,0)"><font size="1">    </font></span><span style="color:rgb(0,0,0)"><font size="1"># virsh migrate guest qemu+ssh://{target hostB_ip}/system </font></span><span style="color:rgb(0,0,0);font-size:x-small">--live --verbose --p2p --tunnelled</span></div><div dir="ltr"><font size="1" color="#000000">    Migration: [100 %]</font><span style="color:rgb(0,0,0);font-size:x-small">    </span></div><div dir="ltr"><span style="color:rgb(0,0,0)"><font size="1"> 7. </font></span><span style="color:rgb(0,0,0)"><font size="1">Migration back and check spice client status again.</font></span></div><div dir="ltr"><span style="color:rgb(0,0,0)"><font size="1">    </font></span><span style="color:rgb(0,0,0)"><font size="1"> </font></span><span style="color:rgb(0,0,0)"><font size="1"># virsh migrate guest qemu+ssh://{source hostA_ip}/system </font></span><span style="color:rgb(0,0,0);font-size:x-small"> </span><span style="color:rgb(0,0,0);font-size:x-small">--live --verbose --p2p --tunnelled</span></div><div dir="ltr"><font color="#000000"><font size="1">      </font></font><font size="1" color="#000000">Migration: [100 %]</font><span style="color:rgb(0,0,0);font-size:x-small"> </span></div><div dir="ltr"><font color="#000000"><font size="1"><br></font></font><span><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">Actual results:</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><font face="Arial" color="#000000"><span style="font-size:14.6667px;white-space:pre-wrap">In step7, after the migration finish, the s</span></font><span style="color:rgb(0,0,0)"><font size="1">pice client will disconnect and the client opened in step 4 will connect</font></span></p></span><span><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><br></span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">Expected results:</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font style="color:rgb(34,34,34);font-family:Arial,Helvetica,sans-serif;white-space:normal" size="1"><span style="color:rgb(0,0,0)">The s</span></font><span style="font-family:Arial,Helvetica,sans-serif;font-size:small;white-space:normal"><font size="1">pice client still alive</font></span><br></span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><br></span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">Additional info:</span></p></span><font size="1"># vim ~/.cache/virt-manager/virt-manager.log<br class="m_-5574246701568466502m_5039241465237844806gmail-Apple-interchange-newline"></font><div><div dir="ltr" class="m_-5574246701568466502m_5039241465237844806gmail_signature"><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><font size="1">[Wed, 06 Mar 2019 04:20:21 virt-manager 13729] DEBUG (console:827) Viewer disconnected</font></div><div dir="ltr"><font size="1">[Wed, 06 Mar 2019 04:20:33 virt-manager 13729] DEBUG (connection:745) domain lifecycle event: domain=lmn80-gui state=VIR_DOMAIN_EVENT_SUSPENDED reason=VIR_DOMAIN_EVENT_SUSPENDED_MIGRATED</font></div><div dir="ltr"><font size="1">[Wed, 06 Mar 2019 04:20:33 virt-manager 13729] DEBUG (console:713) Starting connect process for proto=spice trans= connhost=127.0.0.1 connuser= connport= gaddr=0.0.0.0 gport=5900 gtlsport=None gsocket=None</font></div><div dir="ltr"><font size="1">[Wed, 06 Mar 2019 04:20:33 virt-manager 13729] ERROR (console:732) Error connection to graphical console</font></div><div dir="ltr"><font size="1">Traceback (most recent call last):</font></div><div dir="ltr"><font size="1">  File "/usr/share/virt-manager/virtManager/console.py", line 730, in _init_viewer</font></div><div dir="ltr"><font size="1">    self._viewer.console_open()</font></div><div dir="ltr"><font size="1">  File "/usr/share/virt-manager/virtManager/viewers.py", line 233, in console_open</font></div><div dir="ltr"><font size="1">    return self._open()</font></div><div dir="ltr"><font size="1">  File "/usr/share/virt-manager/virtManager/viewers.py", line 148, in _open</font></div><div dir="ltr"><font size="1">    fd = self._get_fd_for_open()</font></div><div dir="ltr"><font size="1">  File "/usr/share/virt-manager/virtManager/viewers.py", line 142, in _get_fd_for_open</font></div><div dir="ltr"><font size="1">    return self._vm.open_graphics_fd()</font></div><div dir="ltr"><font size="1">  File "/usr/share/virt-manager/virtManager/domain.py", line 1091, in open_graphics_fd</font></div><div dir="ltr"><font size="1">    return self._backend.openGraphicsFD(0, flags)</font></div><div dir="ltr"><font size="1">  File "/usr/lib64/python3.6/site-packages/libvirt.py", line 1886, in openGraphicsFD</font></div><div dir="ltr"><font size="1">    if ret == -1: raise libvirtError ('virDomainOpenGraphicsFD() failed', dom=self)</font></div><div dir="ltr"><font size="1">libvirt.libvirtError: invalid argument: monitor must not be NULL</font></div><div dir="ltr"><font size="1">[Wed, 06 Mar 2019 04:20:33 virt-manager 13729] DEBUG (connection:820) node device lifecycle event: nodedev=net_vnet0_fe_54_00_be_42_bd state=VIR_NODE_DEVICE_EVENT_DELETED reason=0</font></div><div dir="ltr"><font size="1">[Wed, 06 Mar 2019 04:20:33 virt-manager 13729] DEBUG (connection:745) domain lifecycle event: domain=lmn80-gui state=VIR_DOMAIN_EVENT_STOPPED reason=VIR_DOMAIN_EVENT_STOPPED_MIGRATED</font></div><div dir="ltr"><font size="1">[Wed, 06 Mar 2019 04:20:33 virt-manager 13729] DEBUG (connection:1142) nodedev=net_vnet0_fe_54_00_be_42_bd removed</font></div><div dir="ltr"><font size="1">[Wed, 06 Mar 2019 04:20:42 virt-manager 13729] DEBUG (connection:820) node device lifecycle event: nodedev=net_vnet0_fe_54_00_be_42_bd state=VIR_NODE_DEVICE_EVENT_CREATED reason=0</font></div><div dir="ltr"><font size="1">[Wed, 06 Mar 2019 04:20:42 virt-manager 13729] DEBUG (connection:760) domain agent lifecycle event: domain=lmn80-gui state=VIR_CONNECT_DOMAIN_EVENT_AGENT_LIFECYCLE_STATE_DISCONNECTED reason=1</font></div><div dir="ltr"><font size="1">[Wed, 06 Mar 2019 04:20:42 virt-manager 13729] DEBUG (console:713) Starting connect process for proto=spice trans= connhost=127.0.0.1 connuser= connport= gaddr=0.0.0.0 gport=5900 gtlsport=None gsocket=None</font></div><div><div><font size="1">[Wed, 06 Mar 2019 04:20:46 virt-manager 13729] DEBUG (connection:745) domain lifecycle event: domain=lmn80-gui state=VIR_DOMAIN_EVENT_STARTED reason=VIR_DOMAIN_EVENT_STARTED_MIGRATED</font></div><div><font size="1">[Wed, 06 Mar 2019 04:20:46 virt-manager 13729] DEBUG (connection:760) domain agent lifecycle event: domain=lmn80-gui state=VIR_CONNECT_DOMAIN_EVENT_AGENT_LIFECYCLE_STATE_DISCONNECTED reason=2</font></div><div><font size="1">[Wed, 06 Mar 2019 04:20:46 virt-manager 13729] DEBUG (connection:745) domain lifecycle event: domain=lmn80-gui state=VIR_DOMAIN_EVENT_RESUMED reason=VIR_DOMAIN_EVENT_RESUMED_MIGRATED</font></div><div><font size="1">[Wed, 06 Mar 2019 04:20:46 virt-manager 13729] DEBUG (connection:760) domain agent lifecycle event: domain=lmn80-gui state=VIR_CONNECT_DOMAIN_EVENT_AGENT_LIFECYCLE_STATE_DISCONNECTED reason=2</font></div><div><font size="1">[Wed, 06 Mar 2019 04:20:46 virt-manager 13729] DEBUG (viewers:593) Requesting fd for channel: <SpiceClientGLib.UsbredirChannel object at 0x7fc0ec59de58 (SpiceUsbredirChannel at 0x5608351e9c70)></font></div><div><font size="1">[Wed, 06 Mar 2019 04:20:46 virt-manager 13729] DEBUG (viewers:593) Requesting fd for channel: <SpiceClientGLib.UsbredirChannel object at 0x7fc0ec59de58 (SpiceUsbredirChannel at 0x560835243e90)></font></div><div><font size="1">[Wed, 06 Mar 2019 04:20:46 virt-manager 13729] DEBUG (viewers:593) Requesting fd for channel: <SpiceClientGLib.RecordChannel object at 0x7fc0ec59de58 (SpiceRecordChannel at 0x560835265eb0)></font></div><div><font size="1">[Wed, 06 Mar 2019 04:20:46 virt-manager 13729] DEBUG (viewers:593) Requesting fd for channel: <SpiceClientGLib.PlaybackChannel object at 0x7fc0ec59de58 (SpicePlaybackChannel at 0x56083524fba0)></font></div><div><font size="1">[Wed, 06 Mar 2019 04:20:46 virt-manager 13729] DEBUG (viewers:593) Requesting fd for channel: <SpiceClientGLib.DisplayChannel object at 0x7fc0ec59de58 (SpiceDisplayChannel at 0x560835250680)></font></div><div><font size="1">[Wed, 06 Mar 2019 04:20:46 virt-manager 13729] DEBUG (console:836) Viewer connected</font></div><div><font size="1">[Wed, 06 Mar 2019 04:20:46 virt-manager 13729] DEBUG (viewers:593) Requesting fd for channel: <SpiceClientGLib.CursorChannel object at 0x7fc0ec786ea0 (SpiceCursorChannel at 0x560835251500)></font></div><div><font size="1">[Wed, 06 Mar 2019 04:20:46 virt-manager 13729] DEBUG (viewers:593) Requesting fd for channel: <SpiceClientGLib.InputsChannel object at 0x7fc0ec786ea0 (SpiceInputsChannel at 0x5608352529e0)></font></div></div><div><br></div><div><br></div><div><br></div><div>Best Regards,</div><div>Meina Li</div></div></div></div></div></div></div></div></div></div></div></div></div></div></div>
</div></div>