Fix raspberry pi zero cpu variant recognition#2086
Conversation
0ce4084 to
5cd4ddc
Compare
mtrmac
left a comment
There was a problem hiding this comment.
Thanks!
I know very little about ARM, still, looking at the available documentation, this doesn’t seem to be a very precise fix. Ultimately actually reading the CPU registers directly seems more accurate… but that would require an ARM expert to discuss what the relevant values for the “v6”/“v7” ABI.
Meh, being consistent with containerd seems a good enough of an improvement for now.
| // https://www.raspberrypi.org/forums/viewtopic.php?t=12614 | ||
| // https://github.com/moby/moby/pull/36121#issuecomment-398328286 | ||
| if runtime.GOARCH == "arm" && variant == "7" { | ||
| model, err := getCPUInfo("model name") |
There was a problem hiding this comment.
Non-blocking:
Plausibly getCPUInfo could parse everything at once and return a map[key]value. That would remove some of the error paths….
Yes, please file that in https://github.com/containers/podman/issues . |
|
@lstolcman are you still interested in this PR? |
|
@rhatdan yes I am. Since I do not have time at the moment to apply the fixes, feel free to do it yourself (or anyone else interested), or I will do once I have some more free time |
b96b090 to
a98e795
Compare
|
LGTM |
mtrmac
left a comment
There was a problem hiding this comment.
Thanks!
Code LGTM. The commit messages do not always match the commit contents; it would probably be simplest to rebase + squash this into one commit now.
Signed-off-by: Łukasz Stolcman <lukasz.stolcman@protonmail.com>
9480bf3 to
da7e6b9
Compare
|
Thanks again! |
…1114) This PR contains the following updates: Package Change Age Adoption Passing Confidence github.com/containers/image/v5 v5.29.2 -> v5.30.0 WarningSome dependencies could not be looked up. Check the warning logs for more information. Release Notes containers/image (github.com/containers/image/v5) v5.30.0 Compare Source What's Changed A fair number of improvements when working with zstd and zstd:chunked-compressed images. Note that make install now installs policy.json and registries.d/default.yaml. Refuse compression to zstd when using schema1 by @mtrmac in containers/image#2196 Don't expose local account details in oci-archive tar files by @mtrmac in containers/image#2202 Trigger a conversion to OCI when compressing to Zstd by @mtrmac in containers/image#2204 Add buildtags to avoid fulcio and rekor dependencies by @siretart in containers/image#2180 copy: do not fail if digest mismatches by @giuseppe in containers/image#1980 Moving policy.json and default.yaml from containers/skopeo by @rahilarious in containers/image#2215 Embrace codespell: config, workflow (to alert when new typos added) and get typos fixed by @yarikoptic in containers/image#2214 Fix raspberry pi zero cpu variant recognition by @lstolcman in containers/image#2086 storage: validate images converted to zstd:chunked by @giuseppe in containers/image#2243 Make blob reuse choices manifest-format-sensitive, and allow conversions when writing to format-agnostic transports by @mtrmac in containers/image#2213 Edit the manifest when pushing uncompressed data from c/storage by @mtrmac in containers/image#2273 Random storage-related cleanups by @mtrmac in containers/image#2287 Improve storage transport documentation, primarily about locking by @mtrmac in containers/image#2291 Fix c/storage destination with partial pulls by @mtrmac in containers/image#2288 Fix manifest updates when we match a layer by TOC digest by @mtrmac in containers/image#2294 Cleanly fail when trying to obtain a DiffID of a non-OCI image by @mtrmac in containers/image#2295 Beautify TOC-related parts of storageImageSource by @mtrmac in containers/image#2296 storage: use the new ApplyStagedLayer interface by @giuseppe in containers/image#2301 Also annotate image instances using zstd:chunked as using zstd by @mtrmac in containers/image#2302 Support editing ArtifactType, preserve it in lists by @nalind in containers/image#2304 Provide data to correctly report throughput on partial pulls by @mtrmac in containers/image#2308 Add validation error to digesting reader by @saschagrunert in containers/image#2312 Fix handling of errors when fetching layers by URLs by @mtrmac in containers/image#2310 Improve handling of zstd vs. zstd:chunked matching by @mtrmac in containers/image#2317 New Contributors @rahilarious made their first contribution in containers/image#2215 @yarikoptic made their first contribution in containers/image#2214 @lstolcman made their first contribution in containers/image#2086 @bainsy88 made their first contribution in containers/image#2260 Full Changelog: containers/image@v5.29.2...v5.30.0 Configuration 📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied. ♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 Ignore: Close this PR and you won't be reminded about this update again. If you want to rebase/retry this PR, check this box This PR has been generated by Mend Renovate. View repository job log here.
The PR fixes a corner-case problem in which images for raspberry pi 1 or raspberry pi zero single board computers are downloaded for a wrong architecture, resulting in unability to run containers.
Also, PR adds some prints to improve the debugging.
The problem may be easily reproduced when using a rpi 1 or rpi zero with podman:
current version:
expected output:
As we can see, image for arm v7 is downloaded (87837ce2bf82) instead of image for arm v6 (9f28bca8fad0)
I would also expect that explicit notice of the error been returned to the console when running failed (like in docker), however it is not a case here. I believe it is another issue, to be submitted directly to podman repo.
The error 139 is reported in syslog though:
conmon fba43d5acde494cff782 <ninfo>: container 2072 exited with status 139references: