-
Notifications
You must be signed in to change notification settings - Fork 374
Land experimental "newstore" as formal feature #2239
Land experimental "newstore" as formal feature #2239
Conversation
fe919b5
to
1851007
Compare
/test |
Depends on: kata-containers/tests#2113 CI failed since I remove "/var/lib/vc" dir but test cases always check this dir for active pod info. "/var/lib/vc" isn't necessary, we can put all persist informations in "/var/run". Suppose the server meets a reboot, all qemu and kata processes will be dead, but garbage information will be left in "/var/lib/vc". Since "/run/vc" is tmpfs, it will be automatically cleaned up after reboot. |
Ping @kata-containers/runtime for more eyes. Please help me merge the test PR first 😄 |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
ab51eac
to
cd331b4
Compare
This comment has been minimized.
This comment has been minimized.
e153e7c
to
98edf03
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
2 similar comments
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
8195869
to
16fa202
Compare
This comment has been minimized.
This comment has been minimized.
c5c1e6d
to
cb93f1c
Compare
This comment has been minimized.
This comment has been minimized.
@bergwolf @lifupan @WeiZhang555 @egernst @chavafg this PR breaks backward compatibility, I ran a container with master, then applied this patch and tried to stop the container, but I got the following error:
I'm working in a test to check backward compatibility in the CI |
@devimc Yes, this will break backward compatibility, AS expected. This PR will finally remove all VCStore and replace it with experimental "newstore" feature which changed persistent data structure totally. And I'm happy you're adding the test, we should add backward compatibility test cases from long time ago. |
cb93f1c
to
2b4be7e
Compare
This comment has been minimized.
This comment has been minimized.
2b4be7e
to
4c92e3e
Compare
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great to see code being removed! 😄
First pass review.
4c92e3e
to
1874ec4
Compare
/test |
2270c13
to
b95052b
Compare
/test |
Keep old store restore functions for keeping backward compatibility, if old store files are found from disk, restore them with old store first. Signed-off-by: Wei Zhang <[email protected]>
b95052b
to
290339d
Compare
/test |
@WeiZhang555 compatibility test is ready kata-containers/tests#2135 |
@devimc It's not? I tried in my local machine, new kata-runtime can clean old containers started with old kata-runtime. Are you testing this PR based on latest (With commit My opinion is the new store is added for better keep backward compatibility, because it's so easy to break with old store, so the earlier we merge this, the more benefit we can enjoy. I did a lots of cleanup work to remove old storage, but if we want to keep the compatibility, we have to add them back, this could make the code base kind of messy and hard to maintain. |
@devimc I can see there is foreward compatibility test in your PR, it's good but I have no idea how to pass it, because that means you need to let old kata-runtime recognize new persist storage structure. I believe it will fail for this one at least. One solution I can find is that we add the feature in one release but not enable it, then enable it in the following release...But I hope we can get this in earlier :-( |
Forward compat. is a bit harder to handle, and I'm not sure in a production environment when you'd realistically hit this. Based on your local tests, I'm happy with this @WeiZhang555, but I want to wait on an ACK from @devimc (Julio - thanks for putting these tests in). |
@WeiZhang555 @egernst I'm using the latest version of this PR
|
/test-ubuntu |
@devimc I think you're testing the backward compatibility in wrong direction(correct me if I'm wrong). The backward compatibility testing process should be:
I think your "backward compatibility" test is actually "forward compatibility" and vice versa. I modified the test case according to my environment and run it locally, the script:
result:
PR kata-runtime |
/test-fc |
yes, but what about forward compatibility? should kata support this? what happen when users run containers with latest kata but they rollback because something went wrong? |
If its passing backward, i'm okay with this. Handling the forward upgrade is a very niche problem, and if we're fighting that, we're in a more serious issue imo. If it passes backward, let's plan on merging this. @devimc can we update the test for just backward compat (at least for now)? |
/test-ubuntu |
@WeiZhang555 @egernst test fixed, ubuntu CI is passing but FC and initrd CIs are failing |
@devimc I think initrd and firecracker CI are unstable, for FC test, it fails quite randomly, besides I don't have a complete env for testing and debugging this. Is there anyone can help? @Pennyzct Any idea on FC test failure? Found similar error log from your PR: #2379 (comment) |
/test-fc FC CI passed with nothing modified, randomly 😓 |
Nice work @WeiZhang555 ! |
Wow 🎆 👏 Thanks everyone for help review! |
WEEEEEE IT MADE IT! |
Fixes #803
The "newstore" feature has had been a "experimental" feature for long time, it aims to re-organize the persistent data on disk and merging separate files into one "persist.json", and also better guarantee the compatibility.
I have been working on this for a long time and preparing its landing before Kata 2.0, and now I think it's the time. Let's land it as a formal feature!
I'm not sure when is the exact date of release 2.0, but since I can't put enough energy on this work, I hope to merge it ASAP in case nobody else would like to pick up.
You can see I removed lots of code, the "newstore" will make code clearer and easier to read, I hope everyone likes it. :-)
Signed-off-by: Wei Zhang [email protected]