#1032706 lxc-snapshot cannot restore containers with loop storage backend

Package:
lxc
Source:
lxc
Description:
Linux Containers userspace tools
Submitter:
Sperl, Mario
Date:
2023-03-20 23:24:04 UTC
Severity:
normal
#1032706#5
Date:
2023-03-11 08:30:06 UTC
From:
To:
Dear Maintainer,

*** Reporter, please consider answering these questions, where appropriate ***

   * What led up to the situation? I tried to generate a snapshot with lxc-snapshot for a test container that is more than 1G of size. Snapshot generation does not show any problems but the restore does only restore 1G so the container is not able to start after restore.
   * What exactly did you do (or not do) that was effective (or
     ineffective)? One can create a new loop file with correct size and copy the snapshot contents in here but this renders this command absolute useless when using loop backend
   * What was the outcome of this action? Container cannot start
   * What outcome did you expect instead? A container that does start normally after restoring.

#1032706#10
Date:
2023-03-11 16:59:51 UTC
From:
To:
Hi Mario,

  I'm currently on travel with not-so-great network connectivity, so I
haven't been able to reproduce this on my travel laptop, but will
attempt to do so when I'm back from my trip.

  I expect that this issue will have to be forwarded to the lxc
developers; if you want to do so you can submit an issue at
https://github.com/lxc/lxc/issues, otherwise I'll so after reproducing
the issue myself.

  To help ensure I'll be following exactly what you did, could you
share the commands you used to setup the loop storage backend, the
creation of the container, snapshoting, and attempted restoration of
that snapshot?

Thanks,
Mathias

#1032706#15
Date:
2023-03-12 07:04:41 UTC
From:
To:
Hi Mathias,

I submitted an issue on github: https://github.com/lxc/lxc/issues/4289

Step-by-step is explained there.

Thank you,

Mario

#1032706#20
Date:
2023-03-12 12:38:27 UTC
From:
To:
Control: forwarded -1 https://github.com/lxc/lxc/issues/4289
#1032706#27
Date:
2023-03-20 09:32:40 UTC
From:
To:
I would suggest to add a note to https://github.com/lxc/lxc/issues/4289
to mention that LXC was kicked out from Bookworm due to this bug. Maybe
they don't know.


Regards

Harri

#1032706#32
Date:
2023-03-20 22:51:25 UTC
From:
To:
severity 1032706 important
thanks

Hi,

"Sperl, Mario" <mario@sperl.eu.org> wrote on 11/03/2023 at 09:30:06+0100:

Lowering the severity for multiple reasons:

 1. The data is not lost, only the changes after the latest snapshot
    are, as the snapshots are not deleted by a call to restore. The
    snapshot is actually a full-fledged lxc directory under snaps, that
    you can reuse almost directly. I admit not losing the changes after
    the latest snapshot would be better, but I feel that this sole point
    is not enough to keep the bug as 'grave';
 2. A snapshot should not be restored inplace, as suggested by the
    command's manpage. The -N option is only useful for restoration and
    allows one to create a new container based on the snapshot. It's
    actually this feature that doesn't work when the rootfs is on a loop
    device ;
 3. This bug is tied specifically to a backend little to no user use,
    other filesystems seem to produce the proper result. If it comes to
    that, I'd rather remove the loop feature than having LXC out of
    bookworm.

I'll still try to have a proper upstream solution offer before the release.