Bug 1549654

Summary: Reject node-names which would be truncated by the block layer commands
Product: Red Hat Enterprise Linux 7 Reporter: Peter Krempa <pkrempa>
Component: qemu-kvm-rhevAssignee: Kevin Wolf <kwolf>
Status: CLOSED ERRATA QA Contact: CongLi <coli>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.3CC: aliang, chayang, coli, jinzhao, juzhang, knoel, kwolf, michen, qzhang, virt-maint, xuwei, yhong
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: qemu-kvm-rhev-2.12.0-8.el7 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-11-01 11:04:15 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:

Description Peter Krempa 2018-02-27 15:15:56 UTC
Description of problem:
The node-name is stored in a static 32 byte array, thus all node-names provided to commands which create BDSes are silently truncated to 31 characters.

The limitation does not seem to be documented besides 

Version-Release number of selected component (if applicable):
current upstream

How reproducible:
100%

Steps to Reproduce:
1. use blockdev-add to create a BDS with "node-name": "migration-drive-virtio-disk1-storage"
2. call query-named-block-nodes

Actual results:
Node name is reported as "node-name": "migration-drive-virtio-disk1-st"

Expected results:
blockdev commands fail if the node name would be truncated, the limit is documented in the schema


Additional info:
making it unlimited is another option, but rather useless for libvirt, since it will need to stick to the limit

Comment 2 Miroslav Rezanina 2018-07-24 14:15:37 UTC
Fix included in qemu-kvm-rhev-2.12.0-8.el7

Comment 4 CongLi 2018-07-27 09:20:36 UTC
Tested on qemu-kvm-rhev-2.12.0-8.el7.x86_64:

{"execute": "blockdev-add","arguments": {"node-name": "migration-drive-virtio-disk1-storage","driver": "raw", "file":    {"driver":"file", "filename": "/root/test.raw"}}}
{"error": {"class": "GenericError", "desc": "Node name too long"}}


Hi Kevin,

QE did not find where the node name character limit is documented except in iotests, is there any place I missing ?
Else, QE think it's better to document the character limit or we could print the info in the error.

Thanks.

Comment 5 Kevin Wolf 2018-08-06 12:39:58 UTC
Though not directly related to the bug, this is a valid criticism for upstream. I sent a patch upstream, but I don't think we'll backport it for 7.6 (especially since only libvirt is supported as an external interface). Instead, we'll get the documentation improvement with the next rebase.

Does this sound good to you?

Comment 6 CongLi 2018-08-07 02:31:42 UTC
(In reply to Kevin Wolf from comment #5)
> Though not directly related to the bug, this is a valid criticism for
> upstream. I sent a patch upstream, but I don't think we'll backport it for
> 7.6 (especially since only libvirt is supported as an external interface).
> Instead, we'll get the documentation improvement with the next rebase.
> 
> Does this sound good to you?

Thanks Kevin, that sounds good to me.

Based on comment 4 and comment 5, set this bug to 'VERIFIED'.

Comment 7 errata-xmlrpc 2018-11-01 11:04:15 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2018:3443