Thanks for the (very helpful) pointers, Tianon.

So, here is a summary of the issue:

- docker changed the format of the docker save command output to be OCI 
compliant in https://github.com/moby/moby/pull/44598, as pointed out by Tianon.
- launchpad-buildd does a lot of processing in the tarball generated by docker 
save in .lpbuildd/oci.py, which heavily relies on the old format (See 
https://git.launchpad.net/launchpad-buildd/tree/lpbuildd/oci.py#n149).
- The culprit for the error is the `finally` block in that method which assumes 
at least one `*layer.tar` file would be present in the image, which is no 
longer true, hence, it raises an error.
- The fix is not simple though: if we simply check for that `fileobj` variable 
in the `finally` block before trying to close the file, we will still not have 
the proper results from the `gatherResults` method. The whole method will need 
to be refactored to correctly process the new archive format.

As per our Docker policy described in
https://wiki.ubuntu.com/DockerUpdates, I am unsure if we should revert
the changes ATM.

I suppose the proper way forward here is to adjust launchpad-buildd to
be able to parse the new docker save output format.

In the meanwhile, we may still need a temporary solution to fix the OCI
builders.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2098106

Title:
  Launchpad OCI builds are failing after the docker.io-app SRU update to
  26.x on Focal

To manage notifications about this bug go to:
https://bugs.launchpad.net/launchpad/+bug/2098106/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to