[OneSwap] Delta migration treats CD-ROM emptyBackingString as an active disk
@ryatsyshyn is already working on this.
Since Oct 12, 2026.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 75/100
Research direction
The bug is in the Delta VMX disk-detection path, where active_disks builds its list from the VM's scsi/sata entries; the payload does not name the file. Start from that method and check how it treats deviceType atapi-cdrom and fileName emptyBackingString. Reproduce with a VMX containing the CD-ROM and VMDK entries from the issue. Done when only the .vmdk disk is returned and the copy step no longer runs for the CD-ROM.
Written by the indexing model from the issue text.
Description
Description
Delta migration fails when the source VM has a CD-ROM device with:
sata0:0.deviceType = "atapi-cdrom"
sata0:0.fileName = "emptyBackingString"
sata0:0.present = "TRUE"
OneSwap includes emptyBackingString in the list of active disks and then tries to process it as a VMDK.
Example:
VM has the following active disks:
["emptyBackingString", "vm-1-000003.vmdk"]
Detected 2 active disk(s) in 0.23s.
Copying files from 10.62.100.19:/vmfs/volumes/path ...
scp: /vmfs/volumes/path: No such file or directory
Error: undefined method `chomp' for nil
The VMX contains one actual disk:
scsi0:0.deviceType = "scsi-hardDisk"
scsi0:0.fileName = "vm-1-000003.vmdk"
scsi0:0.present = "TRUE"
and one CD-ROM:
sata0:0.deviceType = "atapi-cdrom"
sata0:0.fileName = "emptyBackingString"
sata0:0.present = "TRUE"
Steps to reproduce
Run a Delta migration for a VM with a CD-ROM configured as above:
ONE_SWAP_DEBUG=1 oneswap convert vm --delta --config-file oneswap.yaml --verbose
Actual behavior
active_disks returns both the CD-ROM backing and the real VMDK:
["emptyBackingString", "vm-1-000003.vmdk"]
OneSwap then tries to copy emptyBackingString from the ESXi datastore and later fails with:
undefined method `chomp' for nil
Expected behavior
Only actual virtual hard disks should be included in the Delta disk list.
CD-ROM/floppy devices and entries such as emptyBackingString should be ignored.
Notes
Other OneSwap migration methods work with the same VM. The issue appears specific to the Delta VMX disk-detection path.
- Dominant language
- JavaScript
- Stars
- 1.7k
- Forks
- 534
- PR merge metrics
- No merged PRs in 30d
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from OpenNebula/one
-
Category: OneSwap Status: Accepted
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
OpenNebula/one#8237 ·
-
Sunstone truncates VM names containing mixed ASCII and non-ASCII characters in paginated VM poolOpenStatus: Pending
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
OpenNebula/one#8210 · 1 comment ·
-
Category: Sunstone Priority: Normal Status: Accepted
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
OpenNebula/one#8207 · 1 comment ·
-
Fix datastore.conf path in backup documentPossibly taken @mattrowe-opennebula claimed this 14 days ago. OpenCategory: Documentation Priority: Normal Status: Accepted
Difficulty 1/5 Under an hour Newbie friendliness 86/100
OpenNebula/one#8150 · 2 assignees ·
-
Status: Pending
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
OpenNebula/one#8139 ·
Similar issues
-
Difficulty 1/5 Under an hour Newbie friendliness 72/100
mongoosejs/mquery#142 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 65/100
Maintainers usually reply within 1 day
-
Add toro4n to the data modeling toolsPossibly taken @henriklantzhedstrom-prog claimed this today. Open
Difficulty 1/5 Under an hour Newbie friendliness 62/100
neo4j/docs-getting-started#546 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
Maintainers usually reply within 25 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
libnativeapi/nativeapi#21 ·