Bug 1703793
Summary: | Qemu core dump when set block-mirror speed after target gluster server volume stopped | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux Advanced Virtualization | Reporter: | aihua liang <aliang> |
Component: | qemu-kvm | Assignee: | Hanna Czenczek <hreitz> |
Status: | CLOSED DUPLICATE | QA Contact: | aihua liang <aliang> |
Severity: | high | Docs Contact: | |
Priority: | medium | ||
Version: | --- | CC: | areis, coli, famz, juzhang, ngu, qzhang, virt-maint |
Target Milestone: | rc | ||
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | If docs needed, set a value | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2019-06-25 17:15:38 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
aihua liang
2019-04-28 11:41:01 UTC
Coredump file is too big to attach, provide its storage link: 10.73.194.27:/vol/s2coredump/bug1703793/core.11486 Verified it with -blockdev on RHEL8, don't hit the core dump issue, but some failed info given when quit vm.(see step 7 ~ 9) qemu-kvm version: qemu-kvm-3.1.0-24.module+el8.0.1+3117+9f83299e.x86_64 Test steps: 1.Mount gluster storage as target: mount.gluster dhcp-8-210.nay.redhat.com:/bob /mnt/aliang 2.Start guest with qemu cmds: /usr/libexec/qemu-kvm \ -name 'avocado-vt-vm1' \ -machine pc \ -nodefaults \ -device VGA,bus=pci.0,addr=0x2 \ -chardev socket,id=qmp_id_qmpmonitor1,path=/var/tmp/monitor-qmpmonitor1-20190423-215834-BzwOjODj,server,nowait \ -mon chardev=qmp_id_qmpmonitor1,mode=control \ -chardev socket,id=qmp_id_catch_monitor,path=/var/tmp/monitor-catch_monitor-20190423-215834-BzwOjODj,server,nowait \ -mon chardev=qmp_id_catch_monitor,mode=control \ -device pvpanic,ioport=0x505,id=idapUGH0 \ -chardev socket,id=serial_id_serial0,path=/var/tmp/serial-serial0-20190423-215834-BzwOjODj,server,nowait \ -device isa-serial,chardev=serial_id_serial0 \ -chardev socket,id=seabioslog_id_20190423-215834-BzwOjODj,path=/var/tmp/seabios-20190423-215834-BzwOjODj,server,nowait \ -device isa-debugcon,chardev=seabioslog_id_20190423-215834-BzwOjODj,iobase=0x402 \ -device nec-usb-xhci,id=usb1,bus=pci.0,addr=0x3 \ -blockdev driver=file,node-name=file_node,filename=/home/kvm_autotest_root/images/rhel801-64-virtio-scsi.qcow2 \ -blockdev driver=qcow2,file=file_node,node-name=drive_image1 \ -device virtio-blk-pci,id=image1,drive=drive_image1,bootindex=0,bus=pci.0,addr=0x4 \ -blockdev driver=file,node-name=file_data,filename=/home/data.qcow2 \ -blockdev driver=qcow2,file=file_data,node-name=drive_data1 \ -device virtio-blk-pci,id=data1,drive=drive_data1,bus=pci.0,addr=0x6 \ -device virtio-net-pci,mac=9a:84:85:86:87:88,id=idc38p8G,vectors=4,netdev=idFM5N3v,bus=pci.0,addr=0x5 \ -netdev tap,id=idFM5N3v,vhost=on \ -m 7168 \ -smp 4,maxcpus=4,cores=2,threads=1,sockets=2 \ -cpu 'Skylake-Client',+kvm_pv_unhalt \ -device usb-tablet,id=usb-tablet1,bus=usb1.0,port=1 \ -vnc :0 \ -rtc base=utc,clock=host,driftfix=slew \ -boot menu=off,strict=off,order=cdn,once=c \ -enable-kvm \ -monitor stdio \ -qmp tcp:0:3000,server,nowait \ 3.Add gluster target node: {'execute':'blockdev-create','arguments':{'options': {'driver':'file','filename':'/mnt/aliang/sn1','size':1073741824},'job-id':'job1'}} {'execute':'blockdev-add','arguments':{'driver':'file','node-name':'drive_sn1','filename':'/mnt/aliang/sn1'}} {'execute':'blockdev-create','arguments':{'options': {'driver': 'qcow2','file':'drive_sn$i','size':1073741824},'job-id':'job2'}} {'execute':'blockdev-add','arguments':{'driver':'qcow2','node-name':'sn1','file':'drive_sn1'}} {'execute':'job-dismiss','arguments':{'id':'job1'}} {'execute':'job-dismiss','arguments':{'id':'job2'}} 4.In guest, write data to data disk (guest)#mkfs.ext4 /dev/vdb #dd if=/dev/urandom of=/dev/vdb bs=1M count=900 oflag=direct 5.Do mirror to target node {"execute": "blockdev-mirror", "arguments": { "device": "drive_data1","target": "sn1", "sync": "full", "job-id":"j1","speed":100}} {"execute":"query-block-jobs"} {"return": [{"auto-finalize": true, "io-status": "ok", "device": "j1", "auto-dismiss": true, "busy": false, "len": 943783936, "offset": 16777216, "status": "running", "paused": false, "speed": 100, "ready": false, "type": "mirror"}]} 6.Stop gluster volume (gluster server)gluster volume stop bob 7.Check block job info, then set its speed to 0 {"execute":"query-block-jobs"} {"return": [{"auto-finalize": true, "io-status": "ok", "device": "j1", "auto-dismiss": true, "busy": false, "len": 943783936, "offset": 16777216, "status": "running", "paused": false, "speed": 100, "ready": false, "type": "mirror"}]} { "execute": "block-job-set-speed", "arguments": { "device": "j1", "speed":0}} {"return": {}} {"timestamp": {"seconds": 1556612397, "microseconds": 368313}, "event": "BLOCK_JOB_ERROR", "data": {"device": "j1", "operation": "write", "action": "report"}} {"timestamp": {"seconds": 1556612397, "microseconds": 388417}, "event": "BLOCK_JOB_ERROR", "data": {"device": "j1", "operation": "write", "action": "report"}} {"timestamp": {"seconds": 1556612397, "microseconds": 391112}, "event": "BLOCK_JOB_ERROR", "data": {"device": "j1", "operation": "write", "action": "report"}} {"timestamp": {"seconds": 1556612397, "microseconds": 412652}, "event": "BLOCK_JOB_ERROR", "data": {"device": "j1", "operation": "write", "action": "report"}} {"timestamp": {"seconds": 1556612397, "microseconds": 414832}, "event": "BLOCK_JOB_ERROR", "data": {"device": "j1", "operation": "write", "action": "report"}} {"timestamp": {"seconds": 1556612397, "microseconds": 415204}, "event": "BLOCK_JOB_ERROR", "data": {"device": "j1", "operation": "write", "action": "report"}} {"timestamp": {"seconds": 1556612397, "microseconds": 432395}, "event": "BLOCK_JOB_ERROR", "data": {"device": "j1", "operation": "write", "action": "report"}} {"timestamp": {"seconds": 1556612397, "microseconds": 434473}, "event": "BLOCK_JOB_ERROR", "data": {"device": "j1", "operation": "write", "action": "report"}} {"timestamp": {"seconds": 1556612397, "microseconds": 434892}, "event": "BLOCK_JOB_ERROR", "data": {"device": "j1", "operation": "write", "action": "report"}} {"timestamp": {"seconds": 1556612397, "microseconds": 456267}, "event": "BLOCK_JOB_ERROR", "data": {"device": "j1", "operation": "write", "action": "report"}} {"timestamp": {"seconds": 1556612397, "microseconds": 458164}, "event": "BLOCK_JOB_ERROR", "data": {"device": "j1", "operation": "write", "action": "report"}} {"timestamp": {"seconds": 1556612397, "microseconds": 458514}, "event": "BLOCK_JOB_ERROR", "data": {"device": "j1", "operation": "write", "action": "report"}} {"timestamp": {"seconds": 1556612397, "microseconds": 478629}, "event": "BLOCK_JOB_ERROR", "data": {"device": "j1", "operation": "write", "action": "report"}} {"timestamp": {"seconds": 1556612397, "microseconds": 480492}, "event": "BLOCK_JOB_ERROR", "data": {"device": "j1", "operation": "write", "action": "report"}} {"timestamp": {"seconds": 1556612397, "microseconds": 480862}, "event": "BLOCK_JOB_ERROR", "data": {"device": "j1", "operation": "write", "action": "report"}} {"timestamp": {"seconds": 1556612397, "microseconds": 501651}, "event": "BLOCK_JOB_ERROR", "data": {"device": "j1", "operation": "write", "action": "report"}} {"timestamp": {"seconds": 1556612397, "microseconds": 501850}, "event": "JOB_STATUS_CHANGE", "data": {"status": "aborting", "id": "j1"}} {"timestamp": {"seconds": 1556612397, "microseconds": 502100}, "event": "BLOCK_JOB_COMPLETED", "data": {"device": "j1", "len": 943783936, "offset": 17432576, "speed": 0, "type": "mirror", "error": "Transport endpoint is not connected"}} {"timestamp": {"seconds": 1556612397, "microseconds": 502153}, "event": "JOB_STATUS_CHANGE", "data": {"status": "concluded", "id": "j1"}} {"timestamp": {"seconds": 1556612397, "microseconds": 502189}, "event": "JOB_STATUS_CHANGE", "data": {"status": "null", "id": "j1"}} (qemu) qemu-kvm: warning: Failed to unlock byte 200 qemu-kvm: warning: Failed to unlock byte 200 qemu-kvm: warning: Failed to unlock byte 200 8.Check block job info: {"execute":"query-block-jobs"} {"return": []} 9.Quit vm (qemu) quit qemu-kvm: Failed to flush the L2 table cache: Input/output error qemu-kvm: Failed to flush the refcount block cache: Input/output error qemu-kvm: warning: Failed to unlock byte 100 Additional info: When i test with -blockdev on RHEL7, the same issue with that in RHEL8 exist. So, Ademar Do i need to report a new bug that described in this comment on RHEL8? aliang The warnings are completely correct and normal. The target file is unavailable after all. It only works with -blockdev because auto-read-only is what results in the core dump. This option defaults to true for -drive, but to false with -blockdev. By specifying auto-read-only=on, it fails even with -blockdev for me (upstream master). Max As I wrote in comment 6, it does fail with -blockdev if you specify auto-read-only=on. Max (In reply to Max Reitz from comment #9) > As I wrote in comment 6, it does fail with -blockdev if you specify > auto-read-only=on. > > Max Oh, see it, i only concerned on the default status. *** Bug 1589627 has been marked as a duplicate of this bug. *** I’m closing this BZ because we already have BZ 1709791 for RHEL 8 AV (which existed before this one here was moved to RHEL 8, and which shows a simpler reproducer), and now we have BZ 1722090 for RHEL 7’s qemu-kvm-rhev. I do think this is something we should consider fixing in RHEL 7 still. Max *** This bug has been marked as a duplicate of bug 1709791 *** |