check_can_live_migrate_source fails with mkfs.vfat error: Label can be no longer than 11 characters
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Triaged
|
Low
|
Unassigned |
Bug Description
When testing NBD TLS live-migration the initial attempt failed. Looks like a generated filesystem label is too long.
Subsequent attempts succeeded
$ nova-compute --version
Modules with known eventlet monkey patching issues were imported prior to eventlet monkey patching: urllib3. This warning can usually be ignored if the caller is only importing and not executing nova code.
27.2.1
oslo_messaging.
Command: mkfs -t vfat -n ephemeral_1_0706d66 /var/lib/
Exit code: 1
Stdout: 'mkfs.fat 4.2 (2021-01-31)\n'
Stderr: 'mkfs.vfat: Label can be no longer than 11 characters\n'
looking at the log and the behavior you describe it sound like the mkfs perhaps works but returns an error an the second migration uses the previously created disk?
i do not be live that anything has regress or changed in nova in this regard so this feels like either a latent bug or a regression outside of nova.
a possible work around is to change the default format of ephemeral disk.
the fact this is using vfat implies that the glance image does not have os_type set to windows or linux /github. com/openstack/ nova/blob/ 96268d4e7a0dd18 72c77641a634a94 f599d59fe0/ nova/privsep/ fs.py#L257- L260
https:/
assuming default_ ephemeral_ format is not set which it wont be by default
https:/ /github. com/openstack/ nova/blob/ 96268d4e7a0dd18 72c77641a634a94 f599d59fe0/ nova/privsep/ fs.py#L348- L375
is going to take this code path /github. com/openstack/ nova/blob/ 96268d4e7a0dd18 72c77641a634a94 f599d59fe0/ nova/privsep/ fs.py#L368C11- L370C79
https:/
so its failing back to vfat as the only type that works for both.
the that code is called form https:/ /github. com/openstack/ nova/blob/ 96268d4e7a0dd18 72c77641a634a94 f599d59fe0/ nova/virt/ disk/api. py#L65- L68
which is called here
https:/ /github. com/openstack/ nova/blob/ 96268d4e7a0dd18 72c77641a634a94 f599d59fe0/ nova/virt/ libvirt/ driver. py#L4872- L4888
based on the error this is likely being invoked here
https:/ /github. com/openstack/ nova/blob/ 96268d4e7a0dd18 72c77641a634a94 f599d59fe0/ nova/virt/ libvirt/ driver. py#L5146- L5158
the label should be fs_label= 'ephemeral% d' % idx,
i.e. ephemeral0 or 1
which is 10 charters long
and it would be 11 for the first 100 epmeral disks.