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
https://github.com/containerd/cgroups/releases/tag/v3.0.0