-
Notifications
You must be signed in to change notification settings - Fork 2.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
podman crashes when trying to podman ps
with base64 unmarshalling error
#1283
Comments
Can you revert to 0.7.4 to get a |
We changed some aspects of our DB storage backend between 0.7.4 and 0.8.2 - most notably a different JSON decoder. It seems that it's barfing on this particular container, though I'm not sure of an exact reason yet. A bigger issue this is exposing is that a single invalid container JSON in the DB is causing Podman to completely barf. We need to get a fix in for this. |
Also experiencing this issue
Error:
|
I'll see about getting a partial fix (allowing Podman to start and be used, but not allowing anything to be done to these containers except removing them) in tomorrow's release. An actual fix for the JSON decode issue will take longer. |
@jcpowermac Note that for the time being you can:
|
Thanks @jlebon |
@jlebon @jcpowermac Can I get a Meanwhile, I am going to merge a fix that will make this nonfatal for the moment. You won't be able to see or interact with the container in question, but Podman should still be usable for creating and managing other containers. |
I think the real fix is to convince Go to use the old JSON decoding algorithm if ffjson fails, but this does not seem to be something that is possible. |
Thanks, looking now |
It looks like it's an error trying to unmarshall a net.IP - FFJSON wants to treat it as base64, but the Go unmarshaller just makes it a string. |
However, trying on my local Podman - I'm producing basically identical fields in the DB when encoding net.IP? |
Oh, wait - I'm testing with 0.8.1 which doesn't have the FFJSON decode changes... |
Can replicate locally by upgrading 0.8.1 -> 0.8.2 with a container with a DNS server manually set |
I think it's actually Base64'ing the net.IP struct while the standard-library JSON implementation is prettyprinting the IP as a string. Easiest solution would be to store the IP as a string in the database. More correct solution would be to store the IP as a custom type based on net.IP implementing a correct Mashal() function. Not sure why ffjson is skipping the Marshal() function of the actual struct in question though. |
It might be more correct to fix this in FFJSON - cause net.IP to generate proper strings, similar to the standard library. I'll poke at this on Monday. |
The answer here seems to be that FFJSON does not respect |
Potential alternative: switch from FFJSON to easyjson - Easyjson seems to respect the |
I think we can fix this in FFJSON without much difficulty. I'll open a PR upstream and see about potentially switching us over to a patched version until the fix is merged. |
I've spent several hours here, and I'm not really any closer to making |
Opened #1322 to fix |
This should be fixed via #1322 |
/kind bug
Description
Running
podman ps -a
gives:Running
podman info
also gives a similar error.Steps to reproduce the issue:
Describe the results you received:
Error above.
Describe the results you expected:
No error.
Additional information you deem important (e.g. issue happens only occasionally):
Output of
podman version
:Output of
podman info
:Additional environment details (AWS, VirtualBox, physical, etc.):
Fedora Silverblue laptop.
The text was updated successfully, but these errors were encountered: