DescriptionMichal Privoznik
2021-07-15 09:37:12 UTC
+++ This bug was initially created as a clone of Bug #1797879 +++
Description of problem:
Libvirt uses synchronous APIs for iscsi-direct type of pool, most notably iscsi_connect_sync(), iscsi_login_sync() and iscsi_reportluns_sync() (and plus some others). But those APIs don't return a negative value as documented but iSCSI status (e.g. SCSI_STATUS_GOOD) which is a positive integer. Thus when there's an error the caller doesn't see it.
Version-Release number of selected component (if applicable):
libvirt-6.0.0-2.virtcov.el8.x86_64
qemu-kvm-4.2.0-8.module+el8.2.0+5607+dc756904.x86_64
libiscsi-1.18.0-8.module+el8.2.0+4793+b09dd2fb.x86_64
How reproducible:
100%
Steps to Reproduce:
1. I've noticed this in the original bug, I can prepare an reproducer if really needed.
Actual results:
iscsi_login_sync() and others return a positive integer on error.
Expected results:
iscsi_login_sync() and others return -1 on error.
Additional info:
This is fixed upstream by the following commit:
https://github.com/sahlberg/libiscsi/commit/b5210a1e31afb9f0adf369cde11c612f3365432e