Bug 2152471

Summary: [virtio-win][vioser] VM couldn't go down after live-migration and uninstalling vioser driver
Product: Red Hat Enterprise Linux 9 Reporter: dehanmeng <demeng>
Component: virtio-winAssignee: Yvugenfi <yvugenfi>
virtio-win sub component: virtio-win-prewhql QA Contact: dehanmeng <demeng>
Status: CLOSED MIGRATED Docs Contact:
Severity: medium    
Priority: medium CC: coli, demeng, jinzhao, juzhang, qizhu, viktor, vrozenfe, xiagao, yvugenfi
Version: 9.2Keywords: MigratedToJIRA
Target Milestone: rcFlags: pm-rhel: mirror+
Target Release: ---   
Hardware: x86_64   
OS: Windows   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-08-15 11:29:01 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 dehanmeng 2022-12-12 04:48:56 UTC
Description of problem:
The VM couldn't be shutdown/reboot after live-migration and uninstalling vioser driver. the screen is totally black.

Version-Release number of selected component (if applicable):
qemu-kvm-7.1.0-5.el9.x86_64
kernel-5.14.0-200.el9.x86_64
seabios-bin-1.16.0-4.el9.noarch
virtio-win-prewhql-0.1-229.iso

How reproducible:
100%

Steps to Reproduce:
1. boot up VM with vioser device 
2. install vioser driver and do migration directly
3. uninstall driver and reboot/shutdown VM.

Actual results:
VM hang and the screen is black.

Expected results:
VM shutdown/reboot successfully.

Additional info:
the background is we add memory_leak_check for all cases that include enable verifier driver operations, since the uninstall driver operation is included memory_leak_check function and executed after all function test steps. so this scenario is new for this migration case.

Comment 11 Viktor Prutyanov 2023-08-02 19:38:53 UTC
Hi,

I have a couple of questions regarding reproducing the issue:

1. How do you instantiate virtio serial in QEMU?
2. How do you uninstall the driver?
3. Which of the driver verifier options are enabled?
4. What is memory_leak_check? Where is it enabled/disabled?

Thanks,
Viktor

Comment 12 Viktor Prutyanov 2023-08-03 08:14:31 UTC
Also,

5. Does QEMU guest agent installed?
6. Does virtio serial really transfers some data in this case?

Comment 13 dehanmeng 2023-08-07 03:02:39 UTC
1. How do you instantiate virtio serial in QEMU?
A:
     -chardev socket,server=on,id=chardev_vs1,wait=off,path=/var/tmp/avocado_n48c8i8m/serial-vs1-20230726-234057-ZVZ3OV0h \
     -device '{"id": "virtio_serial_pci0", "driver": "virtio-serial-pci", "bus": "pci.0", "addr": "0x3"}' \
     -device '{"id": "vs1", "driver": "virtserialport", "name": "vs1", "chardev": "chardev_vs1", "bus": "virtio_serial_pci0.0", "nr": 1}'  \

2. How do you uninstall the driver?
It's not actually uninstalling the driver. just disabled driver.

3. Which of the driver verifier options are enabled?
`verifier /standard /driver` vioser.sys`

4. What is memory_leak_check? Where is it enabled/disabled?
the memory_leak_check just disable/enable the driver and after that, checks whether there is BSOD situation. that's the whole 'memory_leak_check'

5. Does QEMU guest agent installed?
not at all, 

6. Does virtio serial really transfers some data in this case?
exactly, it does have it.

Comment 14 Viktor Prutyanov 2023-08-07 17:54:48 UTC
Could you please explain what kind of communication goes through this virtio serial port?

Comment 15 Viktor Prutyanov 2023-08-07 21:23:25 UTC
Also, what is the Windows version?

Comment 16 dehanmeng 2023-08-08 02:06:52 UTC
(In reply to Viktor Prutyanov from comment #15)
> Also, what is the Windows version?

win10/win2019_x86_64

Comment 17 dehanmeng 2023-08-08 02:10:52 UTC
(In reply to Viktor Prutyanov from comment #14)
> Could you please explain what kind of communication goes through this virtio
> serial port?

I'm not sure I understand your question quite clearly, it's data transmission. Create a data block inside VM and then run.py script to send&recieve data from host to guest(or guest to host).

Comment 18 Yvugenfi@redhat.com 2023-08-08 06:27:28 UTC
(In reply to dehanmeng from comment #17)
> (In reply to Viktor Prutyanov from comment #14)
> > Could you please explain what kind of communication goes through this virtio
> > serial port?
> 
> I'm not sure I understand your question quite clearly, it's data
> transmission. Create a data block inside VM and then run.py script to
> send&recieve data from host to guest(or guest to host).

Hi Dehan,

Can you please provide run.py, and the script that run on the host side?

Thanks,
Yan.

Comment 22 RHEL Program Management 2023-08-14 07:27:43 UTC
Issue migration from Bugzilla to Jira is in process at this time. This will be the last message in Jira copied from the Bugzilla bug.