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

Failure to stage a zstd:chunked layer with missing parent directories

XMLWordPrintable

    • Icon: Story Story
    • Resolution: Unresolved
    • Icon: Undefined Undefined
    • None
    • None
    • c/storage
    • None
    • False
    • None
    • False

      Given podman pull git.uncontrol.me/ver4a/onc-kde:main (with digest sha256:2baf651ea4e20108003cf6f7dddd417966024e48711d388b03d989e7f94e2810 ), the command fails with

      Error pulling candidate git.uncontrol.me/ver4a/onc-kde:main: partial pull of blob sha256:a2c0797e11c739c1ef984858af4c06b5696ea77d750470bb01f7642535a1c4ab: staging a partially-pulled layer: open \"usr/share/qt6/translations/qtwebengine_locales/nl.pak\" under the rootfs: openat2 usr/share/qt6/translations/qtwebengine_locales/nl.pak: no such file or directory"

       

      The layer contains that file, but not the parent …_locales directory.

       

      Abriged strace:

      openat2(25, "sysroot/ostree/repo/objects/01/5f2cc09d8e3a2eaf733f64c8789c67cc4edf0c2236ae13f15c7ccc2332021c.file", {flags=O_RDONLY|O_NOFOLLOW|O_CLOEXEC|O_PATH, resolve=RESOLVE_IN_ROOT}, 24) = 11
      openat2(25, "usr/share/qt6/translations/qtwebengine_locales/", {flags=O_RDONLY|O_CLOEXEC|O_DIRECTORY, resolve=RESOLVE_IN_ROOT}, 24) = -1 ENOENT (No such file or directory)
      openat2(25, "usr/share/qt6/translations/qtwebengine_locales", {flags=O_RDONLY|O_CLOEXEC|O_DIRECTORY, resolve=RESOLVE_IN_ROOT}, 24) = -1 ENOENT (No such file or directory)
      openat2(25, "usr/share/qt6/translations", {flags=O_RDONLY|O_CLOEXEC|O_DIRECTORY, resolve=RESOLVE_IN_ROOT}, 24) = -1 ENOENT (No such file or directory)
      openat2(25, "usr/share/qt6", {flags=O_RDONLY|O_CLOEXEC|O_DIRECTORY, resolve=RESOLVE_IN_ROOT}, 24) = -1 ENOENT (No such file or directory)
      openat2(25, "usr/share", {flags=O_RDONLY|O_CLOEXEC|O_DIRECTORY, resolve=RESOLVE_IN_ROOT}, 24) = -1 ENOENT (No such file or directory)
      openat2(25, "usr", {flags=O_RDONLY|O_CLOEXEC|O_DIRECTORY, resolve=RESOLVE_IN_ROOT}, 24) = -1 ENOENT (No such file or directory)
      openat2(25, ".", {flags=O_RDONLY|O_CLOEXEC|O_DIRECTORY, resolve=RESOLVE_IN_ROOT}, 24) = 13
      fcntl(13, F_GETFL)                      = 0x18000 (flags O_RDONLY|O_LARGEFILE|O_DIRECTORY)
      mkdirat(13, "usr", 000)                 = 0
      openat2(13, "usr", {flags=O_RDONLY|O_CLOEXEC|O_DIRECTORY, resolve=RESOLVE_IN_ROOT}, 24) = 14
      fcntl(14, F_GETFL)                      = 0x18000 (flags O_RDONLY|O_LARGEFILE|O_DIRECTORY)
      close(13)                               = 0
      mkdirat(14, "share", 000)               = 0
      openat2(14, "share", {flags=O_RDONLY|O_CLOEXEC|O_DIRECTORY, resolve=RESOLVE_IN_ROOT}, 24) = 13
      fcntl(13, F_GETFL)                      = 0x18000 (flags O_RDONLY|O_LARGEFILE|O_DIRECTORY)
      close(14)                               = 0
      mkdirat(13, "qt6", 000)                 = 0
      openat2(13, "qt6", {flags=O_RDONLY|O_CLOEXEC|O_DIRECTORY, resolve=RESOLVE_IN_ROOT}, 24) = 14
      fcntl(14, F_GETFL)                      = 0x18000 (flags O_RDONLY|O_LARGEFILE|O_DIRECTORY)
      close(13)                               = 0
      mkdirat(14, "translations", 000)        = 0
      openat2(14, "translations", {flags=O_RDONLY|O_CLOEXEC|O_DIRECTORY, resolve=RESOLVE_IN_ROOT}, 24) = 13
      fcntl(13, F_GETFL)                      = 0x18000 (flags O_RDONLY|O_LARGEFILE|O_DIRECTORY)
      close(14)                               = 0
      mkdirat(13, "qtwebengine_locales", 000) = 0
      openat2(13, "qtwebengine_locales", {flags=O_RDONLY|O_CLOEXEC|O_DIRECTORY, resolve=RESOLVE_IN_ROOT}, 24) = 14
      fcntl(14, F_GETFL)                      = 0x18000 (flags O_RDONLY|O_LARGEFILE|O_DIRECTORY)
      close(13)                               = 0
      mkdirat(14, "qtwebengine_locales", 000) = 0
      openat2(14, "qtwebengine_locales", {flags=O_RDONLY|O_CLOEXEC|O_DIRECTORY, resolve=RESOLVE_IN_ROOT}, 24) = 13
      fcntl(13, F_GETFL)                      = 0x18000 (flags O_RDONLY|O_LARGEFILE|O_DIRECTORY)
      close(14)                               = 0
      linkat(AT_FDCWD, "/proc/self/fd/11", 13, "nl.pak", AT_SYMLINK_FOLLOW) = 0
      close(13)                               = 0
      openat2(25, "usr/share/qt6/translations/qtwebengine_locales/nl.pak", {flags=O_WRONLY|O_NOFOLLOW, resolve=RESOLVE_IN_ROOT}, 24) = -1 ENOENT (No such file or directory)

      suggests some kind of logic bug when creating the parent directories.

              Unassigned Unassigned
              rhn-engineering-mitr Miloslav Trmač
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated: