Bug 1967668

Summary: Don't silently truncate (SCSI) disk serial number
Product: Red Hat Enterprise Linux 9 Reporter: Peter Krempa <pkrempa>
Component: qemu-kvmAssignee: Virtualization Maintenance <virt-maint>
qemu-kvm sub component: virtio-blk,scsi QA Contact: qing.wang <qinwang>
Status: NEW --- Docs Contact:
Severity: low    
Priority: low CC: afaria, aliang, coli, jinzhao, juzhang, kwolf, virt-maint
Version: 9.0Keywords: RFE, Triaged
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: 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 Peter Krempa 2021-06-03 14:56:50 UTC
Description of problem:

Silent truncation of the serial can lead to a guest ABI regression when the limit is changed such as happened in:

commit 48b6206305b8d56524ac2ee347b68e6e0a528559
Author: Rony Weng <ronyweng>
Date:   Mon Aug 29 15:52:18 2016 +0800

    scsi-disk: change disk serial length from 20 to 36
    
    Openstack Cinder assigns volume a 36 characters uuid as serial.
    QEMU will shrinks the uuid to 20 characters, which does not match
    the original uuid.
    
    Note that there is no limit to the length of the serial number in
    the SCSI spec.  20 was copy-pasted from virtio-blk which in turn was
    copy-pasted from ATA; 36 is even more arbitrary.  However, bumping it
    up too much might cause issues (e.g. 252 seems to make sense because
    then the maximum amount of returned data is 256; but who knows there's
    no off-by-one somewhere for such a nicely rounded number).
    
    Signed-off-by: Rony Weng <ronyweng>
    Message-Id: <1472457138-23386-1-git-send-email-ronyweng>
    Cc: qemu-stable
    Signed-off-by: Paolo Bonzini <pbonzini>

or alternatively when libvirt started using 'device_id' in addition to 'serial' which has a different truncation length.

Rather than silently truncating, qemu should reject values which would lead to truncation (ideally after fixing truncation limits: https://bugzilla.redhat.com/show_bug.cgi?id=1967666 ).

Libvirt will be okay with using an additional property to enable the feature or to allow querying of the truncation limit.

Comment 1 John Ferlan 2021-09-08 21:41:25 UTC
Move RHEL-AV bugs to RHEL9. If necessary to resolve in RHEL8, then clone to the current RHEL8 release.