summary refs log tree commit diff stats
path: root/results/classifier/118/all/1505652
diff options
context:
space:
mode:
Diffstat (limited to 'results/classifier/118/all/1505652')
-rw-r--r--results/classifier/118/all/1505652108
1 files changed, 108 insertions, 0 deletions
diff --git a/results/classifier/118/all/1505652 b/results/classifier/118/all/1505652
new file mode 100644
index 00000000..041cd5c3
--- /dev/null
+++ b/results/classifier/118/all/1505652
@@ -0,0 +1,108 @@
+permissions: 0.993
+debug: 0.991
+register: 0.991
+semantic: 0.990
+architecture: 0.989
+device: 0.989
+assembly: 0.987
+performance: 0.985
+user-level: 0.984
+arm: 0.983
+graphic: 0.982
+PID: 0.981
+peripherals: 0.979
+virtual: 0.976
+risc-v: 0.974
+files: 0.974
+socket: 0.971
+boot: 0.969
+network: 0.968
+hypervisor: 0.966
+vnc: 0.964
+mistranslation: 0.951
+kernel: 0.944
+ppc: 0.943
+KVM: 0.943
+TCG: 0.932
+VMM: 0.929
+x86: 0.817
+i386: 0.666
+
+An IO error happen when qemu  snapshot-create
+
+My qemu version is 1.7.1,but when I try to make live snapshot by libvirt,the libvirt sometimes report an error :qemuMonitorJSONCheckError:377 : internal error: unable to execute QEMU command 'transaction': An IO error has occurred.
+
+Here is the command being snpshot create by virsh:
+virsh  snapshot-create snapshot-test.vm   snapshot.xml  --no-metadata  --disk-only --reuse-external
+the snapshot.xml:
+<domainsnapshot>
+  <description>test</description>
+  <disks>
+    <disk name='vda' snapshot="external">
+      <source dev='/home/disk/sbd8' file='/home/disk/sdb8'  type="block"/>
+    </disk>
+  </disks>
+</domainsnapshot>
+
+
+I have read the qemu code about the snapshot create, and I find the qemu when call the function handle_aiocb_rw_linear():
+static ssize_t handle_aiocb_rw_linear(RawPosixAIOData *aiocb, char *buf)
+{
+    ssize_t offset = 0;
+    ssize_t len;
+
+    while (offset < aiocb->aio_nbytes) {
+        if (aiocb->aio_type & QEMU_AIO_WRITE) {
+            len = pwrite(aiocb->aio_fildes,
+                         (const char *)buf + offset,
+                         aiocb->aio_nbytes - offset,
+                         aiocb->aio_offset + offset);
+        } else {
+            len = pread(aiocb->aio_fildes,
+                        buf + offset,
+                        aiocb->aio_nbytes - offset,
+                        aiocb->aio_offset + offset);
+        }
+        if (len == -1 && errno == EINTR) {
+            continue;
+        } else if (len == -1) {
+            offset = -errno;
+            break;
+        } else if (len == 0) {
+            break;
+        }
+        offset += len;
+    }
+
+    return offset;
+}
+
+The function pwrite happen error,the errono is 1,and the  error describe:"pwrite  failed, Operation not permitted (1, EPERM) because the process does not have the appropriate privileges to use the pwrite system call".
+The qemu call stack about is:
+external_snapshot_prepare()->bdrv_flush()->...->paio_submit->...->handle_aiocb_rw_linear.
+
+Please ask the libvirt community for help.  This issue is probably related to your libvirt storage setup.
+
+On Tue, Oct 13, 2015 at 11:52:26AM -0000, jiangchi68 wrote:
+> My qemu version is 1.7.1,but when I try to make live snapshot by
+> libvirt,the libvirt sometimes report an error
+> :qemuMonitorJSONCheckError:377 : internal error: unable to execute QEMU
+> command 'transaction': An IO error has occurred.
+> 
+> Here is the command being snpshot create by virsh:
+> virsh  snapshot-create snapshot-test.vm   snapshot.xml  --no-metadata  --disk-only --reuse-external
+> the snapshot.xml:
+> <domainsnapshot>
+>   <description>test</description>
+>   <disks>
+>     <disk name='vda' snapshot="external">
+>       <source dev='/home/disk/sbd8' file='/home/disk/sdb8'  type="block"/>
+>     </disk>
+>   </disks>
+> </domainsnapshot>
+
+Please send your question to <email address hidden>.
+
+It could be related to /home/disk file permissions.
+
+