summaryrefslogtreecommitdiffstats
path: root/results/classifier/105/device/1505652
diff options
context:
space:
mode:
authorChristian Krinitsin <mail@krinitsin.com>2025-06-03 12:04:13 +0000
committerChristian Krinitsin <mail@krinitsin.com>2025-06-03 12:04:13 +0000
commit256709d2eb3fd80d768a99964be5caa61effa2a0 (patch)
tree05b2352fba70923126836a64b6a0de43902e976a /results/classifier/105/device/1505652
parent2ab14fa96a6c5484b5e4ba8337551bb8dcc79cc5 (diff)
downloademulator-bug-study-256709d2eb3fd80d768a99964be5caa61effa2a0.tar.gz
emulator-bug-study-256709d2eb3fd80d768a99964be5caa61effa2a0.zip
add new classifier result
Diffstat (limited to 'results/classifier/105/device/1505652')
-rw-r--r--results/classifier/105/device/150565291
1 files changed, 91 insertions, 0 deletions
diff --git a/results/classifier/105/device/1505652 b/results/classifier/105/device/1505652
new file mode 100644
index 00000000..787c1a0e
--- /dev/null
+++ b/results/classifier/105/device/1505652
@@ -0,0 +1,91 @@
+semantic: 0.990
+instruction: 0.990
+device: 0.989
+other: 0.987
+assembly: 0.987
+graphic: 0.982
+socket: 0.971
+boot: 0.969
+network: 0.968
+vnc: 0.964
+mistranslation: 0.951
+KVM: 0.943
+
+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.
+
+