Skip to content

Routed NIC interface not cleaned up on migration failure #2445

@ibot3

Description

@ibot3

Is there an existing issue for this?

  • There is no existing issue for this bug

Is this happening on an up to date version of Incus?

  • This is happening on a supported version of Incus

Incus system details

Version 6.16

Instance details

No response

Instance log

No response

Current behavior

It sometimes happens that a migration fails and the veth/tap interface of a routed-nic is therefore not deleted but the VM is stopped.

When trying to start the VM on the same host, the action fails because the route into the VM already exists and therefore can't be created.

When instances.nic.host_name would be set to mac, it would probably fail earlier, because incus cannot create the same veth/tap interface a second time.

The only solution to get the VM running again is ip link delete <tap interface>, as this removes the interface and the routes for that interface.

Expected behavior

Interfaces are cleaned-up if the migration of a VM fails or the VM is otherwise unexpectedly stopped.
Maybe some kind of cronjob that checks for veth/tap interfaces that are in state DOWN?

A quick workaround could also be to delete an existing veth/tap interface before creating it (on VM startup).
This would at least solve the problem when instances.nic.host_name is set to mac.

Steps to reproduce

  1. Use routed NIC
  2. Somehow stop the VM without incus running the cleanup routine (killing the QEMU process might be enough)
  3. Try to start the VM

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions