When creation of a snapshot for the HybridBackup fails, we end up with a null pointer exception.
2024-04-17 10:29:48,296+02 ERROR [org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector] (default task-2) [76e81a20-4d1d-441b-8e6c-90f37889cd66] EVENT_ID: USER_FAILED_CREATE_SNAPSHOT(117), Failed to create Snapshot Auto-generated for Backup VM for VM xxxxx (User: admin@internal-authz). 2024-04-17 10:29:48,298+02 INFO [org.ovirt.engine.core.bll.storage.backup.HybridBackupCommand] (default task-2) [76e81a20-4d1d-441b-8e6c-90f37889cd66] Change VM '73df70f5-09b0-4f1a-abd8-2d0b4cd5e8b2' backup 'null' phase from 'null' to 'FAILED' 2024-04-17 10:29:48,299+02 ERROR [org.ovirt.engine.core.bll.storage.backup.HybridBackupCommand] (default task-2) [76e81a20-4d1d-441b-8e6c-90f37889cd66] Command 'org.ovirt.engine.core.bll.storage.backup.HybridBackupCommand' failed: null 2024-04-17 10:29:48,299+02 ERROR [org.ovirt.engine.core.bll.storage.backup.HybridBackupCommand] (default task-2) [76e81a20-4d1d-441b-8e6c-90f37889cd66] Exception: java.lang.NullPointerException
at org.ovirt.engine.core.dal//org.ovirt.engine.core.dao.VmBackupDaoImpl.update(VmBackupDaoImpl.java:90)
at org.ovirt.engine.core.dal//org.ovirt.engine.core.dao.VmBackupDaoImpl.update(VmBackupDaoImpl.java:22)
at deployment.engine.ear.bll.jar//org.ovirt.engine.core.bll.storage.backup.StartVmBackupCommand.updateVmBackupPhase(StartVmBackupCommand.java:632)
at deployment.engine.ear.bll.jar//org.ovirt.engine.core.bll.storage.backup.HybridBackupCommand.executeCommand(HybridBackupCommand.java:118)
at deployment.engine.ear.bll.jar//org.ovirt.engine.core.bll.CommandBase.executeWithoutTransaction(CommandBase.java:1174)
at deployment.engine.ear.bll.jar//org.ovirt.engine.core.bll.CommandBase.executeActionInTransactionScope(CommandBase.java:1332)
This happens because VmBackupDaoImpl tries to save the BackupType into the database (entity.getBackupType().getName()), but that value is still null.
The BackupType is only set when calling createVmBackup.
But as we already have all the data except the snapshotId at the start of the HybridBackup, we already call createVmBackup before creating the snapshot and when the snapshot was created, we add it to the VmBackup data.
This avoids the null getBackupType()
Fixes issue # (delete if not relevant)
Changes introduced with this PR
*
*
*
Are you the owner of the code you are sending in, or do you have permission of the owner?
When creation of a snapshot for the HybridBackup fails, we end up with a null pointer exception.
This happens because VmBackupDaoImpl tries to save the BackupType into the database (entity.getBackupType().getName()), but that value is still null. The BackupType is only set when calling createVmBackup.
But as we already have all the data except the snapshotId at the start of the HybridBackup, we already call createVmBackup before creating the snapshot and when the snapshot was created, we add it to the VmBackup data.
This avoids the null getBackupType()
Fixes issue # (delete if not relevant)
Changes introduced with this PR
*
*
*
Are you the owner of the code you are sending in, or do you have permission of the owner?
[y]