Bug 844579

Summary: virtio-rng: 'cat' process hangs when ^C pressed when there's no input
Product: Red Hat Enterprise Linux 6 Reporter: Amit Shah <amit.shah>
Component: kernelAssignee: Amit Shah <amit.shah>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 6.4CC: juzhang, mdeng, michen, qzhang, rhod, shuang, virt-maint
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: kernel-2.6.32-298.el6 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-02-21 06:44:11 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Amit Shah 2012-07-31 06:16:48 UTC
Description of problem:

When the host doesn't provide the virtio-rng driver with any data, this set of commands just hangs:

# cat /dev/hwrng
^C

Instead of using wait_for_completion(), use wait_for_completion_killable() to ensure the read is killable.

For testing this, the virtio-rng device isn't yet available upstream or in a RHEL release.  I can give a qemu-kvm build to QE for testing and verification purposes, let me know when you need it.

Comment 1 Amit Shah 2012-07-31 06:21:26 UTC
Upstream commit with fix is cc8744e12936680478ce82b0f21dbaa272df1447

Comment 2 RHEL Program Management 2012-08-06 10:11:36 UTC
This request was evaluated by Red Hat Product Management for
inclusion in a Red Hat Enterprise Linux release.  Product
Management has requested further review of this request by
Red Hat Engineering, for potential inclusion in a Red Hat
Enterprise Linux release for currently deployed products.
This request is not yet committed for inclusion in a release.

Comment 3 juzhang 2012-08-09 02:56:28 UTC
qe will verify this bug along with bz844583/844582/786407

Comment 5 Jarod Wilson 2012-08-16 15:01:01 UTC
Patch(es) available on kernel-2.6.32-298.el6

Comment 8 Qunfang Zhang 2012-12-27 05:21:08 UTC
Hi, Amit
We want to verify the virt-rng related bugs in kernel component but seems virtio-rng device is still not available in qemu-kvm official build? 
BTW, do we have a qemu-kvm bug to track it?

Comment 10 Qunfang Zhang 2012-12-28 07:00:34 UTC
Hi Amit
I tried to reproduce the issue with kernel-279 installed in guest.

Steps:
0. I'm using the upstream qemu-kvm because currently neither rhel6 nor rhel7 has virtio-rng device.

1. Boot guest with  "-device virtio-rng-pci,bus=pci.0,addr=0xa,id=rng0"

2. After guest boot up. 
(1)#cat /etc/hwrng
(2)"Ctrl+c" to kill the above command.

Result: In a rhel6.3 guest kernel (kernel-279), the command hangs for a while, about 5 to 10 seconds. But at last the command is killed. 

And then I verified this issue with a rhel6.4 guest (kernel-348). 

Result: After step 2.(2), the command could be killed immediately. 

Amit,
Is this the reproduction phenomenon in the older kernel-279?  It is not always hang, but only for some seconds.

Thanks,
Qunfang

Comment 11 Qunfang Zhang 2012-12-28 07:44:04 UTC
I think this can be verified pass with the following steps:

1. Boot guest with  "-device virtio-rng-pci,bus=pci.0,addr=0xa,id=rng0"

2. Inside guest:
#cat /dev/hwrng

3. #pm-suspend

4. Resume guest.

5. Using "Ctrl+c" to kill the command in step 2. 

Result:
In the old kernel-2.6.32-279.el6.x86_64, the command can not be killed. 
In the newer kernel-2.6.32-348.el6.x86_64, the command can be killed immediately.

So based on comment 10 and comment 11, this bug can be verified.

Comment 12 Amit Shah 2013-01-02 11:47:07 UTC
Steps in comment 10 and 11 look correct.  Thanks.

Comment 14 errata-xmlrpc 2013-02-21 06:44:11 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHSA-2013-0496.html