Uploaded image for project: 'Container Tools'
  1. Container Tools
  2. RUN-2435

[containers/podman] Container restore fails due to rootfsImageID mismatch

XMLWordPrintable

    • False
    • Hide

      None

      Show
      None
    • False
    • rhel-container-tools

      [2595568351] Upstream Reporter: Radostin Stoyanov
      Upstream issue status: Open
      Upstream description:

      Issue Description

      When migrating a container from one VM to another with the latest version of Podman, container restore fails with the following error:

      Error: creating container storage: reading image "01086e2bbcfab816ef337fa91d8b71862e2ded41c96261ed8a5bb605f92eb9c1": locating image with ID "01086e2bbcfab816ef337fa91d8b71862e2ded41c96261ed8a5bb605f92eb9c1": image not known

      This error occurs because the rootfsImageID value stored in the config.dump file in the checkpoint does not match the rootfsImageID value generated on the new VM.

      In the following example, we can see that running podman pull results in 3417cee3cb7fa02b251c6157dd3d940172383b796b65aed93f3d82d490839270 on srv1 and 01086e2bbcfab816ef337fa91d8b71862e2ded41c96261ed8a5bb605f92eb9c1 on srv2:

      [root@srv1 ~]# podman pull quay.io/radostin/iperf3:latest
      Trying to pull quay.io/radostin/iperf3:latest...
      Getting image source signatures
      Copying blob 4bfe8d9702cf done  2.7MiB / 2.7MiB (skipped: 224.0b = 0.01%)
      Copying blob f7406d2490fe done  29.8MiB / 29.8MiB (skipped: 1.9KiB = 0.01%)
      Copying config 3417cee3cb done   | 
      Writing manifest to image destination
      3417cee3cb7fa02b251c6157dd3d940172383b796b65aed93f3d82d490839270
      [root@srv2 ~]# podman pull quay.io/radostin/iperf3:latest
      Trying to pull quay.io/radostin/iperf3:latest...
      Getting image source signatures
      Copying blob 4bfe8d9702cf done  2.7MiB / 2.7MiB (skipped: 224.0b = 0.01%)
      Copying blob f7406d2490fe done  29.8MiB / 29.8MiB (skipped: 1.9KiB = 0.01%)
      Copying config 3417cee3cb done   | 
      Writing manifest to image destination
      01086e2bbcfab816ef337fa91d8b71862e2ded41c96261ed8a5bb605f92eb9c1

      This checksum mismatch causes container restore to fail. This can be confirmed by manually editing the rootfsImageID value in config.dump as shown in this video.

      Steps to reproduce the issue

      Steps to reproduce the issue using two VMs (A and B):

      1. Run a container in A, and create a container checkpoint
      podman run -d --name looper busybox /bin/sh -c 'i=0; while true; do echo $i; i=$(expr $i + 1); sleep 1; done'
      podman container checkpoint -l --export=/tmp/chkpt.tar.gz
      1. Transfer the checkpoint from A to B (e.g., using NFS or scp)
      2. Restore container from checkpoint in B
      podman container restore --import=/tmp/chkpt.tar.gz

      Describe the results you received

      Restore fails with the error message above.

      Describe the results you expected

      Restore should complete successfully.

      podman info output

      Podman installed as follows on Fedora Rawhide:

      dnf copr enable -y rhcontainerbot/podman-next
      dnf --repo='copr*' update  -y
      dnf install -y podman

      Podman in a container

      No

      Privileged Or Rootless

      Privileged

      Upstream Latest Release

      Yes

      Additional environment details

      Additional environment details

      Additional information

      No response


      Upstream URL: https://github.com/containers/podman/issues/24307

              container-runtime-eng Container Runtime Eng Bot
              upstream-sync Upstream Sync
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated: