RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Bug 1025122 - [virtio-win][vioser] virtio-serial driver fail to work without rebooting guest after install guest-agent for some windows os
Summary: [virtio-win][vioser] virtio-serial driver fail to work without rebooting gues...
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: virtio-win
Version: 7.0
Hardware: Unspecified
OS: Unspecified
medium
medium
Target Milestone: rc
: 7.0
Assignee: Gal Hammer
QA Contact: Virtualization Bugs
URL:
Whiteboard:
: 988390 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-10-31 04:22 UTC by Sibiao Luo
Modified: 2014-06-18 08:57 UTC (History)
14 users (show)

Fixed In Version: virtio-win-prewhql-0.1-74
Doc Type: Rebase: Bug Fixes and Enhancements
Doc Text:
Clone Of:
Environment:
Last Closed: 2014-06-13 11:17:39 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)

Description Sibiao Luo 2013-10-31 04:22:43 UTC
Description of problem:
virtio-serial driver fail to work without rebooting guest after install guest-agent for some windows os(e.g: win2008r2-64bit and win7-64bit), but the virtio-serial and guest-agent can work well after reboot guest.

Version-Release number of selected component (if applicable):
host info:
2.6.32-425.el6.x86_64
qemu-kvm-0.12.1.2-2.415.el6.x86_64
virtio-win-1.6.7-2.el6.noarch(guest agent driver)
guest info:
win2008r2-64bit and win7-64bit
virtio-win-prewhql-0.1-72(virtio-serial driver)

How reproducible:
100%

Steps to Reproduce:
1.boot a win2008r2-64bit guest with virtio serial.
e.g:...-device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x7 -chardev socket,id=channel1,path=/tmp/helloworld1,server,nowait -device virtserialport,chardev=channel1,name=org.qemu.guest_agent.0,bus=virtio-serial0.0,id=port1,nr=1
2.install the virtio-serial driver from virtio-win-prewhql-0.1-72.
3.chansfer some characters from guest to host via serial port.
guest:C:\Users\Administrator> echo "sluosluo" >> \\.\Global\.\org.qemu.guest_agent.0
host : # nc -U /tmp/helloworld1
4.install the guest agent driver in guest.
/usr/share/virtio-win/guest-agent/qemu-ga-x64.msi
5.chansfer some characters from guest to host via serial port again.
6.uninstall the guest agent driver in guest.
7.reboot guest and retry the step 5 and do some basical actions with guest agent.

Actual results:
after step 3, it can chansfer the characters from guest to host via serial port successfully.
host ]# nc -U /tmp/helloworld1
"sluosluo" 
after step 5, if fail to chansfer the characters from guest to host via serial port.
guest:C:\Users\Administrator> echo "sluosluo" >> \\.\Global\.\org.qemu.guest_agent.0
Accesss is denied.
after step 6, it can chansfer the characters from guest to host via serial port again if remove the guest agent driver.
after step 7, virtio-serial and guest agent work well.
# nc -U /tmp/helloworld1
{"execute":"guest-sync", "arguments":{"id":1234}}
{"return": 1234}

Expected results:
virtio-serial driver should work well without rebooting guest after install guest-agent.

Additional info:
Tried the windows guest result lists as following:
win8-64-virtio.qcow2      ------- work well
win8-32-virtio.qcow2      ------- work well
win2008r2-64-virtio.qcow2 ------- fail to work
win7-32-virtio.qcow2      ------- work well
win2008-32-virtio.qcow2   ------- work well
win2008-64.qcow2          ------- work well  serial
win7-64-virtio.qcow2      ------- fail to work
win2012-64-virtio.qcow2   ------- work well
win2012r2-64-virtio.qcow2 ------- work well

Comment 1 Sibiao Luo 2013-10-31 04:23:23 UTC
My qemu-kvm command line:
# /usr/libexec/qemu-kvm -M pc -S -cpu SandyBridge -enable-kvm -m 2048 -smp 2,sockets=2,cores=1,threads=1 -no-kvm-pit-reinjection -usb -device usb-tablet,id=input0 -name sluo -uuid 990ea161-6b67-47b2-b803-19fb01d30d30 -rtc base=localtime,clock=host,driftfix=slew -drive file=/home/win2008r2-64-virtio.qcow2,if=none,id=drive-virtio-disk,format=qcow2,cache=none,aio=native,werror=stop,rerror=stop -device virtio-blk-pci,vectors=0,bus=pci.0,addr=0x4,scsi=off,drive=drive-virtio-disk,id=virtio-disk,bootindex=1 -netdev tap,id=hostnet0,vhost=on,script=/etc/qemu-ifup -device virtio-net-pci,netdev=hostnet0,id=virtio-net-pci0,mac=00:01:02:B6:40:21,bus=pci.0,addr=0x5 -device virtio-balloon-pci,id=ballooning,bus=pci.0,addr=0x6 -k en-us -boot menu=on -qmp tcp:0:4444,server,nowait -serial unix:/tmp/ttyS0,server,nowait -vnc :1 -spice disable-ticketing,port=5931 -monitor stdio -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x7 -chardev socket,id=channel1,path=/tmp/helloworld1,server,nowait -device virtserialport,chardev=channel1,name=org.qemu.guest_agent.0,bus=virtio-serial0.0,id=port1,nr=1

Comment 2 Gal Hammer 2013-10-31 09:02:47 UTC
I'm not sure that understand what is the bug.

If the qemu agent *service* (it is not a driver) runs and use its serial port then it is impossible for another application to use that port (hence the "access is denied" error).

Is it possible that the agent's installer doesn't start the service after installation? What is the status of the service after installation is completed?

Comment 3 Sibiao Luo 2013-10-31 09:13:11 UTC
(In reply to Gal Hammer from comment #2)
> I'm not sure that understand what is the bug.
hmm... 
> If the qemu agent *service* (it is not a driver) runs and use its serial
> port then it is impossible for another application to use that port (hence
> the "access is denied" error).
No, you mistake it. At first, we met that the guest agent cann't use any at all after installation, then we have the steps to check whether the virtio-serial work well. Maybe i have to modify the title [virtio-win][serial]--->[virtio-win][qemu-ga] as the misleading.
And why other windows guests can work well expect win2008r2-64bit and win7-64bit guest, see 'Additional info' section.
> Is it possible that the agent's installer doesn't start the service after
> installation? What is the status of the service after installation is
> completed?
No, the guest agent service was starting aotumatically after completed installation.

Best Regards,
sluo

Comment 6 RHEL Program Management 2013-11-03 10:54:57 UTC
This request was not resolved in time for the current release.
Red Hat invites you to ask your support representative to
propose this request, if still desired, for consideration in
the next release of Red Hat Enterprise Linux.

Comment 7 Gal Hammer 2013-11-03 11:48:57 UTC
(In reply to Sibiao Luo from comment #3)
> (In reply to Gal Hammer from comment #2)
> > I'm not sure that understand what is the bug.
> hmm... 
> > If the qemu agent *service* (it is not a driver) runs and use its serial
> > port then it is impossible for another application to use that port (hence
> > the "access is denied" error).
> No, you mistake it. At first, we met that the guest agent cann't use any at
> all after installation, then we have the steps to check whether the
> virtio-serial work well. Maybe i have to modify the title
> [virtio-win][serial]--->[virtio-win][qemu-ga] as the misleading.
> And why other windows guests can work well expect win2008r2-64bit and
> win7-64bit guest, see 'Additional info' section.

Yes, I didn't understand that you were trying to see if the virtio-serial is working. Sorry.

> > Is it possible that the agent's installer doesn't start the service after
> > installation? What is the status of the service after installation is
> > completed?
> No, the guest agent service was starting aotumatically after completed
> installation.

The problem was that after a first-time installation (and it seems that not on all Windows versions) the port is released and then plugged-in back again. This cause the driver to disable the input virt queue's interrupt. So when someone writes to the port everything worked but when qga is executed (and read from the port), it didn't work.

Comment 8 Mike Cao 2013-11-20 09:09:00 UTC
Pls verified it on build74

Comment 9 Sibiao Luo 2013-11-26 05:33:02 UTC
(In reply to Mike Cao from comment #8)
> Pls verified it on build74
Verify this issue on virtio-win-prewhql-0.1-74 with the same testing as comment#0. 

host info:
# uname -r && rpm -q qemu-kvm-rhev
2.6.32-425.el6.x86_64
qemu-kvm-rhev-0.12.1.2-2.415.el6.x86_64
guest info:
win2008r2-64bit & win7-64bit
virtio-win-prewhql-0.1-74

Steps:
the same to comment #0.
qemu-kvm command line:
# /usr/libexec/qemu-kvm -M rhel6.4.0 -cpu SandyBridge -enable-kvm -m 4G -smp 4 -name rhel6.5 -rtc base=localtime,clock=host,driftfix=slew -uuid 6afa5f93-2d4f-420f-81c6-e5fdddbd1c83 -vnc :1 -monitor stdio -drive file=/home/win2008r2-64-virtio.qcow2,if=none,id=drive-disk,format=qcow2,cache=none,aio=native,werror=stop,rerror=stop -device ide-drive,bus=ide.0,unit=0,drive=drive-disk,id=system-disk -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x7 -chardev socket,id=channel1,path=/tmp/helloworld1,server,nowait -device virtserialport,chardev=channel1,name=org.qemu.guest_agent.0,bus=virtio-serial0.0,id=port1,nr=1

Results:
1.We can chansfer the characters from guest to host via serial port *before* install guest agent driver in guest.
2.The serial port accesss was denied but the guest agent can work correctly *after* install guest agent driver in guest.
# nc -U /tmp/helloworld1
{"execute":"guest-sync", "arguments":{"id":1234}}
{"return": 1234}
{"execute":"guest-ping"}
{"return": {}}
{ "execute":"guest-shutdown","arguments":{"mode":"powerdown"}}
          <------------guest was poweroff successfully.

Base on above, this issue has been fixed correctly, move to VERIFIED status.

Best Regards,
sluo

Comment 10 Mike Cao 2013-11-26 05:37:24 UTC
(In reply to Sibiao Luo from comment #9)
> (In reply to Mike Cao from comment #8)
> > Pls verified it on build74
> Verify this issue on virtio-win-prewhql-0.1-74 with the same testing as
> comment#0. 
> 
> host info:
> # uname -r && rpm -q qemu-kvm-rhev
> 2.6.32-425.el6.x86_64
> qemu-kvm-rhev-0.12.1.2-2.415.el6.x86_64
> guest info:
> win2008r2-64bit & win7-64bit
> virtio-win-prewhql-0.1-74
> 
> Steps:
> the same to comment #0.
> qemu-kvm command line:
> # /usr/libexec/qemu-kvm -M rhel6.4.0 -cpu SandyBridge -enable-kvm -m 4G -smp
> 4 -name rhel6.5 -rtc base=localtime,clock=host,driftfix=slew -uuid
> 6afa5f93-2d4f-420f-81c6-e5fdddbd1c83 -vnc :1 -monitor stdio -drive
> file=/home/win2008r2-64-virtio.qcow2,if=none,id=drive-disk,format=qcow2,
> cache=none,aio=native,werror=stop,rerror=stop -device
> ide-drive,bus=ide.0,unit=0,drive=drive-disk,id=system-disk -device
> virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x7 -chardev
> socket,id=channel1,path=/tmp/helloworld1,server,nowait -device
> virtserialport,chardev=channel1,name=org.qemu.guest_agent.0,bus=virtio-
> serial0.0,id=port1,nr=1
> 
> Results:
> 1.We can chansfer the characters from guest to host via serial port *before*
> install guest agent driver in guest.
> 2.The serial port accesss was denied but the guest agent can work correctly
> *after* install guest agent driver in guest.


Did you use Administrator privileged cmd ?

Comment 11 Gal Hammer 2013-12-19 14:22:23 UTC
*** Bug 988390 has been marked as a duplicate of this bug. ***

Comment 13 Mike Cao 2014-01-14 12:08:07 UTC
We ship build71 for virtio serial ,so this bug is not visible to customers ,Reopen

Comment 14 Ludek Smid 2014-06-13 11:17:39 UTC
This request was resolved in Red Hat Enterprise Linux 7.0.

Contact your manager or support representative in case you have further questions about the request.


Note You need to log in before you can comment on or make changes to this bug.