Bug 682638

Summary: "FLOPPY ERROR: fdctrl_transfer_handler" error loop happens in monitor when format floppy device in guest
Product: Red Hat Enterprise Linux 6 Reporter: Shirley Zhou <szhou>
Component: qemu-kvmAssignee: Ademar Reis <areis>
Status: CLOSED WONTFIX QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 6.1CC: areis, chayang, juzhang, mkenneth, mshao, phrdina, qzhang, sluo, virt-maint
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-01-15 14:20:38 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On:    
Bug Blocks: 580953    

Description Shirley Zhou 2011-03-07 05:38:18 UTC
Description of problem:
"FLOPPY ERROR: fdctrl_transfer_handler" error loop happens in monitor when format qcow2 floppy device in guest

Version-Release number of selected component (if applicable):
qemu-kvm-0.12.1.2-2.113.el6_0.8.x86_64

How reproducible:
3/3

Steps to Reproduce:
1.start guest with floppy device
2.make file system on floppy device
3.mount floppy device and write data to mount point
  
Actual results:
Error loop "FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2878" happens in qemu monitor, and some error happens in guest dmesg:

floppy0: unknown error. ST[0..2] are: 0x64 0x0 0x0: track 79, head 1, sector 9, size 2
floppy0: unknown error. ST[0..2] are: 0x64 0x0 0x0: track 79, head 1, sector 9, size 2
end_request: I/O error, dev fd0, sector 2870
floppy0: unknown error. ST[0..2] are: 0x64 0x0 0x0: track 79, head 1, sector 17, size 2
floppy0: unknown error. ST[0..2] are: 0x64 0x0 0x0: track 79, head 1, sector 17, size 2
end_request: I/O error, dev fd0, sector 2878

Expected results:
no error happens in monitor and dmesg.

Additional info:

Comment 3 Kevin Wolf 2012-01-16 11:30:26 UTC
How did you create the floppy image? Are you sure that it has the right size?

Comment 5 Ademar Reis 2012-07-20 18:21:56 UTC
Corner case, relatively low priority. Deferring to 6.5 because of capacity.

Comment 7 Pavel Hrdina 2012-10-04 10:32:56 UTC
I tried to reproduce this bug on qemu-kvm-0.12.1.2-2.113.el6_0.8.x86_64 but I failed. I used a few floppy images with different size but no luck. 

Please provide how you created your floppy image or provide directly that image.

Comment 8 Sibiao Luo 2012-10-08 07:24:16 UTC
(In reply to comment #3)
> How did you create the floppy image? Are you sure that it has the right size?

According to the comment #0, he created a qcow2 format floppy image. 
I have tried on qemu-kvm-0.12.1.2-2.320.el6.x86_64 and kernel-2.6.32-315.el6.x86_64 host with the same steps. No mater how much size the qcow2 format floppy(1.44M, 2M and 1M size) it is, all of them can hit this issue.

Version-Release number of selected component (if applicable):
host info:
# uname -r && rpm -q qemu-kvm
2.6.32-315.el6.x86_64
qemu-kvm-0.12.1.2-2.320.el6.x86_64
guest info:
# uname -r
2.6.32-279.el6.x86_64

Steps to Reproduce:
1.# qemu-img create -f qcow2 floppy-1440K.vfd 1440K
Formatting 'floppy-1440K.vfd', fmt=qcow2 size=1474560 encryption=off cluster_size=65536 
# qemu-img info floppy-1440K.vfd
image: floppy-1440K.vfd
file format: qcow2
virtual size: 1.4M (1474560 bytes)
disk size: 136K
cluster_size: 65536
2.start guest with floppy device.
...-drive file=/home/floppy-1440K.vfd,if=none,id=drive-fdc0-0-0,format=raw -global isa-fdc.driveA=drive-fdc0-0-0
3.make file system on floppy device.
# mkfs.ext4 /dev/fd0
4.mount floppy device and write data to mount point.

Results:
after the step 3, the qemu monitor will prompt as following:
(qemu) FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2688
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2688
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2688
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2688
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2696
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2696
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2696
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2696
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2704
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2704
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2704
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2704
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2712
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2712
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2712
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2712
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2720
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2720
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2720
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2720
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2728
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2728
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2728
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2728
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2736
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2736
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2736
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2736
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2744
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2744
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2744
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2744
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2752
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2752
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2752
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2752
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2760
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2760
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2760
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2760
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2768
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2768
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2768
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2768
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2776
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2776
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2776
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2776
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2784
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2784
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2784
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2784
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2792
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2792
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2792
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2792
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2800
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2800
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2800
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2800
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2808
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2808
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2808
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2808
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2816
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2816
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2816
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2816
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2824
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2824
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2824
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2824
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2832
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2832
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2832
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2832
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2840
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2840
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2840
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2840
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2848
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2848
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2848
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2848
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2856
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2856
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2856
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2856
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2864
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2864
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2864
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2864
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2872
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2872
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2872
FLOPPY ERROR: fdctrl_transfer_handler: writing sector 2872

And the guest kernel also prompt as following:
# nc -U /tmp/ttyS1
floppy0: unknown error. ST[0..2] are: 0x64 0x0 0x0: track 74, head 1, sector 7, size 2
floppy0: unknown error. ST[0..2] are: 0x64 0x0 0x0: track 74, head 1, sector 7, size 2
Buffer I/O error on device fd0, logical block 336
lost page write due to I/O error on fd0
floppy0: unknown error. ST[0..2] are: 0x64 0x0 0x0: track 74, head 1, sector 15, size 2
floppy0: unknown error. ST[0..2] are: 0x64 0x0 0x0: track 74, head 1, sector 15, size 2
Buffer I/O error on device fd0, logical block 337
lost page write due to I/O error on fd0
floppy0: unknown error. ST[0..2] are: 0x60 0x0 0x0: track 75, head 0, sector 5, size 2
floppy0: unknown error. ST[0..2] are: 0x60 0x0 0x0: track 75, head 0, sector 5, size 2
Buffer I/O error on device fd0, logical block 338
lost page write due to I/O error on fd0
floppy0: unknown error. ST[0..2] are: 0x60 0x0 0x0: track 75, head 0, sector 13, size 2
floppy0: unknown error. ST[0..2] are: 0x60 0x0 0x0: track 75, head 0, sector 13, size 2
Buffer I/O error on device fd0, logical block 339
lost page write due to I/O error on fd0
floppy0: unknown error. ST[0..2] are: 0x64 0x0 0x0: track 75, head 1, sector 3, size 2
floppy0: unknown error. ST[0..2] are: 0x64 0x0 0x0: track 75, head 1, sector 3, size 2
Buffer I/O error on device fd0, logical block 340
lost page write due to I/O error on fd0
floppy0: unknown error. ST[0..2] are: 0x64 0x0 0x0: track 75, head 1, sector 11, size 2
floppy0: unknown error. ST[0..2] are: 0x64 0x0 0x0: track 75, head 1, sector 11, size 2
Buffer I/O error on device fd0, logical block 341
lost page write due to I/O error on fd0
floppy0: unknown error. ST[0..2] are: 0x60 0x0 0x0: track 76, head 0, sector 1, size 2
floppy0: unknown error. ST[0..2] are: 0x60 0x0 0x0: track 76, head 0, sector 1, size 2
Buffer I/O error on device fd0, logical block 342
lost page write due to I/O error on fd0
floppy0: unknown error. ST[0..2] are: 0x60 0x0 0x0: track 76, head 0, sector 9, size 2
floppy0: unknown error. ST[0..2] are: 0x60 0x0 0x0: track 76, head 0, sector 9, size 2
Buffer I/O error on device fd0, logical block 343
lost page write due to I/O error on fd0
floppy0: unknown error. ST[0..2] are: 0x60 0x0 0x0: track 76, head 0, sector 17, size 2
floppy0: unknown error. ST[0..2] are: 0x60 0x0 0x0: track 76, head 0, sector 17, size 2
Buffer I/O error on device fd0, logical block 344
lost page write due to I/O error on fd0
floppy0: unknown error. ST[0..2] are: 0x64 0x0 0x0: track 76, head 1, sector 7, size 2
floppy0: unknown error. ST[0..2] are: 0x64 0x0 0x0: track 76, head 1, sector 7, size 2
floppy0: unknown error. ST[0..2] are: 0x64 0x0 0x0: track 76, head 1, sector 15, size 2
floppy0: unknown error. ST[0..2] are: 0x64 0x0 0x0: track 76, head 1, sector 15, size 2
end_request: I/O error, dev fd0, sector 2768
floppy0: unknown error. ST[0..2] are: 0x60 0x0 0x0: track 77, head 0, sector 5, size 2
floppy0: unknown error. ST[0..2] are: 0x60 0x0 0x0: track 77, head 0, sector 5, size 2
end_request: I/O error, dev fd0, sector 2776
floppy0: unknown error. ST[0..2] are: 0x60 0x0 0x0: track 77, head 0, sector 13, size 2
floppy0: unknown error. ST[0..2] are: 0x60 0x0 0x0: track 77, head 0, sector 13, size 2
end_request: I/O error, dev fd0, sector 2784
floppy0: unknown error. ST[0..2] are: 0x64 0x0 0x0: track 77, head 1, sector 3, size 2
floppy0: unknown error. ST[0..2] are: 0x64 0x0 0x0: track 77, head 1, sector 3, size 2
end_request: I/O error, dev fd0, sector 2792
floppy0: unknown error. ST[0..2] are: 0x64 0x0 0x0: track 77, head 1, sector 11, size 2
floppy0: unknown error. ST[0..2] are: 0x64 0x0 0x0: track 77, head 1, sector 11, size 2
end_request: I/O error, dev fd0, sector 2800
floppy0: unknown error. ST[0..2] are: 0x60 0x0 0x0: track 78, head 0, sector 1, size 2
floppy0: unknown error. ST[0..2] are: 0x60 0x0 0x0: track 78, head 0, sector 1, size 2
end_request: I/O error, dev fd0, sector 2808
floppy0: unknown error. ST[0..2] are: 0x60 0x0 0x0: track 78, head 0, sector 9, size 2
floppy0: unknown error. ST[0..2] are: 0x60 0x0 0x0: track 78, head 0, sector 9, size 2
end_request: I/O error, dev fd0, sector 2816
floppy0: unknown error. ST[0..2] are: 0x60 0x0 0x0: track 78, head 0, sector 17, size 2
floppy0: unknown error. ST[0..2] are: 0x60 0x0 0x0: track 78, head 0, sector 17, size 2
end_request: I/O error, dev fd0, sector 2824
floppy0: unknown error. ST[0..2] are: 0x64 0x0 0x0: track 78, head 1, sector 7, size 2
floppy0: unknown error. ST[0..2] are: 0x64 0x0 0x0: track 78, head 1, sector 7, size 2
end_request: I/O error, dev fd0, sector 2832
floppy0: unknown error. ST[0..2] are: 0x64 0x0 0x0: track 78, head 1, sector 15, size 2
floppy0: unknown error. ST[0..2] are: 0x64 0x0 0x0: track 78, head 1, sector 15, size 2
end_request: I/O error, dev fd0, sector 2840
floppy0: unknown error. ST[0..2] are: 0x60 0x0 0x0: track 79, head 0, sector 5, size 2
floppy0: unknown error. ST[0..2] are: 0x60 0x0 0x0: track 79, head 0, sector 5, size 2
end_request: I/O error, dev fd0, sector 2848
floppy0: unknown error. ST[0..2] are: 0x60 0x0 0x0: track 79, head 0, sector 13, size 2
floppy0: unknown error. ST[0..2] are: 0x60 0x0 0x0: track 79, head 0, sector 13, size 2
end_request: I/O error, dev fd0, sector 2856
floppy0: unknown error. ST[0..2] are: 0x64 0x0 0x0: track 79, head 1, sector 3, size 2
floppy0: unknown error. ST[0..2] are: 0x64 0x0 0x0: track 79, head 1, sector 3, size 2
end_request: I/O error, dev fd0, sector 2864
floppy0: unknown error. ST[0..2] are: 0x64 0x0 0x0: track 79, head 1, sector 11, size 2
floppy0: unknown error. ST[0..2] are: 0x64 0x0 0x0: track 79, head 1, sector 11, size 2
end_request: I/O error, dev fd0, sector 2872


(In reply to comment #7)
> I tried to reproduce this bug on qemu-kvm-0.12.1.2-2.113.el6_0.8.x86_64 but
> I failed. I used a few floppy images with different size but no luck. 
> 
> Please provide how you created your floppy image or provide directly that
> image.

BTW, i do think we'd better use raw format floppy image. I have tried the raw format floppy image with 1M,1.44M and 2M size, the 1.44M and 2M size raw floppy is OK when format it, mount floppy device and write data to mount point successfully. only the 1M size raw floppy can hit this issue with "FLOPPY ERROR: fdctrl_transfer_handler" error loop happens in QEMU monitor when format it in guest.

Base on above, make qa_ack+, please correct me if any mistake.

Best Regards.
sluo

Comment 10 Sibiao Luo 2013-03-13 08:00:25 UTC
Hit this issue in rhel7, but HMP monitor did not prompt error, just the guest kernel flood with 'floppy0: unknown error', and i open a new bug 920964 in rhel7 for tracing it. 

Best Regards.
sluo