-
Notifications
You must be signed in to change notification settings - Fork 581
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
go.mod: github.com/containerd/cgroups/v3 v3.0.1, github.com/docker/docker v24.0.0 #1952
Conversation
There is also https://github.com/containerd/typeurl/releases/tag/v2.0.0 Should we update it as well? Line 20 in ca4a763
|
Looks like Probably due to |
Not sure how it is relevant to this PR, but I'd prefer to wait for v2.1.0 (containerd/typeurl#40) |
SGTM, it's not relevant to this PR, just for awareness since dependabot seems skip checking those dependencies with a specific commit. :) |
b46c83e
to
a7647cd
Compare
a7647cd
to
39d6847
Compare
The windows container is using containerd/[email protected] for metrics while the linux container is using containerd/[email protected]. They are two different packages but the metric fields in proto share the same name. For instance, the `Metrics` type: * in [email protected], it is named by io.containerd.cgroups.v1.Metrics[1]. * in [email protected], it's also named by io.containerd.cgroups.v1.Metrics[2]. It's hard to tell the real type, even if both types are compatible. According to typeurl/[email protected]'s behavior[3], it will check the type registed by the `RegisterType` first. Let's see a case. If the data is marshaled by containerd/[email protected] and the typeurl is `io.containerd.cgroups.v1.Metrics`, ideally the receiver should use the same type to unmarshal it. However, if the receiver has a dependency using the [email protected], the [email protected] package will register the type with `io.containerd.cgroups.v1.Metrics` by `gogo.RegisterType`. And the receiver will [email protected]'s type to unmarshal the data. It's compatible but it is unexpected because the receiver will use the `[email protected]` to do the type assertion, like what nerdctl pr[4] does. They will fail to do assertion. Currently, the windows container metrics is using containerd/[email protected], which impacts nerdctl to do release. So I would like to file this pr to build metrics with target platform. REF: [1]: https://github.com/containerd/cgroups/blob/v1.1.0/stats/v1/metrics.pb.go#L705 [2]: https://github.com/containerd/cgroups/blob/v3.0.1/cgroup1/stats/metrics.pb.go#L1705 [3]: https://github.com/containerd/typeurl/blob/v2.1.0/types.go#L238-L264 [4]: containerd/nerdctl#1952 Signed-off-by: Wei Fu <[email protected]>
The windows container is using containerd/[email protected] for metrics while the linux container is using containerd/[email protected]. They are two different packages but the metric fields in proto share the same name. For instance, the `Metrics` type: * in [email protected], it is named by io.containerd.cgroups.v1.Metrics[1]. * in [email protected], it's also named by io.containerd.cgroups.v1.Metrics[2]. It's hard to tell the real type, even if both types are compatible. According to typeurl/[email protected]'s behavior[3], it will check the type registed by the `RegisterType` first. Let's see a case. If the data is marshaled by containerd/[email protected] and the typeurl is `io.containerd.cgroups.v1.Metrics`, ideally the receiver should use the same type to unmarshal it. However, if the receiver has a dependency using the [email protected], the [email protected] package will register the type with `io.containerd.cgroups.v1.Metrics` by `gogo.RegisterType`. And the receiver will [email protected]'s type to unmarshal the data. It's compatible but it is unexpected because the receiver will use the `[email protected]` to do the type assertion, like what nerdctl pr[4] does. They will fail to do assertion. Currently, the windows container metrics is using containerd/[email protected], which impacts nerdctl to do release. So I would like to file this pr to build metrics with target platform. REF: [1]: https://github.com/containerd/cgroups/blob/v1.1.0/stats/v1/metrics.pb.go#L705 [2]: https://github.com/containerd/cgroups/blob/v3.0.1/cgroup1/stats/metrics.pb.go#L1705 [3]: https://github.com/containerd/typeurl/blob/v2.1.0/types.go#L238-L264 [4]: containerd/nerdctl#1952 Signed-off-by: Wei Fu <[email protected]>
The windows container is using containerd/[email protected] for metrics while the linux container is using containerd/[email protected]. They are two different packages but the metric fields in proto share the same name. For instance, the `Metrics` type: * in [email protected], it is named by io.containerd.cgroups.v1.Metrics[1]. * in [email protected], it's also named by io.containerd.cgroups.v1.Metrics[2]. It's hard to tell the real type, even if both types are compatible. According to typeurl/[email protected]'s behavior[3], it will check the type registed by the `RegisterType` first. Let's see a case. If the data is marshaled by containerd/[email protected] and the typeurl is `io.containerd.cgroups.v1.Metrics`, ideally the receiver should use the same type to unmarshal it. However, if the receiver has a dependency using the [email protected], the [email protected] package will register the type with `io.containerd.cgroups.v1.Metrics` by `gogo.RegisterType`. And the receiver will [email protected]'s type to unmarshal the data. It's compatible but it is unexpected because the receiver will use the `[email protected]` to do the type assertion, like what nerdctl pr[4] does. They will fail to do assertion. Currently, the windows container metrics is using containerd/[email protected], which impacts nerdctl to do release. So I would like to file this pr to build metrics with target platform. REF: [1]: https://github.com/containerd/cgroups/blob/v1.1.0/stats/v1/metrics.pb.go#L705 [2]: https://github.com/containerd/cgroups/blob/v3.0.1/cgroup1/stats/metrics.pb.go#L1705 [3]: https://github.com/containerd/typeurl/blob/v2.1.0/types.go#L238-L264 [4]: containerd/nerdctl#1952 Signed-off-by: Wei Fu <[email protected]>
The windows container is using containerd/[email protected] for metrics while the linux container is using containerd/[email protected]. They are two different packages but the metric fields in proto share the same name. For instance, the `Metrics` type: * in [email protected], it is named by io.containerd.cgroups.v1.Metrics[1]. * in [email protected], it's also named by io.containerd.cgroups.v1.Metrics[2]. It's hard to tell the real type, even if both types are compatible. According to typeurl/[email protected]'s behavior[3], it will check the type registed by the `RegisterType` first. Let's see a case. If the data is marshaled by containerd/[email protected] and the typeurl is `io.containerd.cgroups.v1.Metrics`, ideally the receiver should use the same type to unmarshal it. However, if the receiver has a dependency using the [email protected], the [email protected] package will register the type with `io.containerd.cgroups.v1.Metrics` by `gogo.RegisterType`. And the receiver will [email protected]'s type to unmarshal the data. It's compatible but it is unexpected because the receiver will use the `[email protected]` to do the type assertion, like what nerdctl pr[4] does. They will fail to do assertion. Currently, the windows container metrics is using containerd/[email protected], which impacts nerdctl to do release. So I would like to file this pr to build metrics with target platform. REF: [1]: https://github.com/containerd/cgroups/blob/v1.1.0/stats/v1/metrics.pb.go#L705 [2]: https://github.com/containerd/cgroups/blob/v3.0.1/cgroup1/stats/metrics.pb.go#L1705 [3]: https://github.com/containerd/typeurl/blob/v2.1.0/types.go#L238-L264 [4]: containerd/nerdctl#1952 Signed-off-by: Wei Fu <[email protected]>
39d6847
to
25c832c
Compare
25c832c
to
939cdd1
Compare
939cdd1
to
c816df8
Compare
Signed-off-by: Akihiro Suda <[email protected]>
c816df8
to
79181b7
Compare
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.
LGTM
https://github.com/containerd/cgroups/releases/tag/v3.0.0