Upgrade Firecracker to post-v0.20.0#383
Conversation
|
I'm going to upgrade Firecracker Go SDK to 0.20.0 (which will be released hopefully this week) in this PR. |
|
I'm going to upgrade Go SDK to untagged master for making sure it doesn't break firecracker-containerd. |
|
The "failed to create VM: failed to start the VM: invalid character 'v' looking for beginning of value" error seems due to Firecracker. Opening a pull request... |
|
7f1aa72 is not really related to Firecracker upgrade, but better to fix anyways. |
|
I'm not sure the root cause of "vCPUs resume failed". The code below is sending the error and "exit status 148" is firecracker-microvm/firecracker#1456 and not a regression technically. |
|
I'm going to move Firecracker fixes to upstream. In the meantime, we can say that the Go SDK is working correctly and we can release 0.20.0! |
|
Firecracker patches are kept in https://github.com/kzys/firecracker-containerd/tree/upgrade-fc-with-fixes for reference and a successful BuildKite build with the patches is https://buildkite.com/firecracker-microvm/firecracker-containerd/builds/1477. So I'm going to remove them from this PR. |
4a4954e to
7ce63ed
Compare
f53f11e to
f4e6dbd
Compare
|
Right now 31e7627 is referencing an open pull request. I'd like to merge this pull request after the pull request is merged into master. |
| if err != nil { | ||
| return nil, vsockAckError{cause: err} | ||
| } | ||
| if !strings.HasPrefix(line, "OK ") { |
There was a problem hiding this comment.
Why not do the full string compare here?
There was a problem hiding this comment.
The line contains assigned_hostside_port (see https://github.com/firecracker-microvm/firecracker/blob/master/docs/vsock.md#examples) which we don't know. Also we are not using the number by ourselves.
We can check whether the following token is a number or not, but I'm unsure how much value we could get from doing so.
There was a problem hiding this comment.
Ahh, I thought this was the port we were passing in. Can we add the vsock.md link in the comments stating we are following a custom Firecracker protocol?
v0.20.0 has some issues that block firecracker-containerd to use. Signed-off-by: Kazuyoshi Kato <katokazu@amazon.com>
- Rust 1.35 cannot parse Firecracker's Cargo.lock somehow - While Rust's latest release is 1.40.0, we'd like to keep in sync with Firecracker upstream. firecracker-microvm/firecracker#1419 Signed-off-by: Kazuyoshi Kato <katokazu@amazon.com>
|
@xibz Can you take a look the AL build? Seems I cannot retry the job. |
We may need to check our post-build scripts. |
Since 0.20.0, Firecracker itself writes "OK <port>" as ACK. So we don't have to write our own "IMALIVE" message anymore. Signed-off-by: Kazuyoshi Kato <katokazu@amazon.com>
Since Firecracker 0.20.0 can report the size of a special block device correctly, the size of the block device from devmapper snapshotter won't be zero. Signed-off-by: Kazuyoshi Kato <katokazu@amazon.com>
The submodule is used to install a specific version of Firecracker on our Docker-based build. Amazon Linux 2 build should use that as well. Signed-off-by: Kazuyoshi Kato <katokazu@amazon.com>
…ependabot/go_modules/github.com/mdlayher/vsock-1.1.0 Bump github.com/mdlayher/vsock from 1.0.0 to 1.1.0
Issue #, if available:
Fixes #253 finally!
Description of changes:
Upgrade Firecracker to v0.20.0
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.