Browse code

[19.03] vendor: containerd 481103c8793316c118d9f795cde18060847c370e

full diff: https://github.com/containerd/containerd/compare/7c1e88399ec0b0b077121d9d5ad97e647b11c870...481103c8793316c118d9f795cde18060847c370e

- Fix error handling for task deletion
- Fix fd leak of shim log
- Fix killall when use pidnamespace
- Improve ARM platform matching

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>

Sebastiaan van Stijn authored on 2020/03/31 02:30:16
Showing 5 changed files
... ...
@@ -117,7 +117,7 @@ github.com/googleapis/gax-go                        317e0006254c44a0ac427cc52a0e
117 117
 google.golang.org/genproto                          694d95ba50e67b2e363f3483057db5d4910c18f9
118 118
 
119 119
 # containerd
120
-github.com/containerd/containerd                    7c1e88399ec0b0b077121d9d5ad97e647b11c870
120
+github.com/containerd/containerd                    481103c8793316c118d9f795cde18060847c370e
121 121
 github.com/containerd/fifo                          a9fb20d87448d386e6d50b1f2e1fa70dcf0de43c
122 122
 github.com/containerd/continuity                    aaeac12a7ffcd198ae25440a9dff125c2e2703a7
123 123
 github.com/containerd/cgroups                       5fbad35c2a7e855762d3c60f2e474ffcad0d470a
... ...
@@ -29,11 +29,48 @@ type MatchComparer interface {
29 29
 // Only returns a match comparer for a single platform
30 30
 // using default resolution logic for the platform.
31 31
 //
32
+// For ARMv8, will also match ARMv7, ARMv6 and ARMv5 (for 32bit runtimes)
32 33
 // For ARMv7, will also match ARMv6 and ARMv5
33 34
 // For ARMv6, will also match ARMv5
34 35
 func Only(platform specs.Platform) MatchComparer {
35 36
 	platform = Normalize(platform)
36 37
 	if platform.Architecture == "arm" {
38
+		if platform.Variant == "v8" {
39
+			return orderedPlatformComparer{
40
+				matchers: []Matcher{
41
+					&matcher{
42
+						Platform: platform,
43
+					},
44
+					&matcher{
45
+						Platform: specs.Platform{
46
+							Architecture: platform.Architecture,
47
+							OS:           platform.OS,
48
+							OSVersion:    platform.OSVersion,
49
+							OSFeatures:   platform.OSFeatures,
50
+							Variant:      "v7",
51
+						},
52
+					},
53
+					&matcher{
54
+						Platform: specs.Platform{
55
+							Architecture: platform.Architecture,
56
+							OS:           platform.OS,
57
+							OSVersion:    platform.OSVersion,
58
+							OSFeatures:   platform.OSFeatures,
59
+							Variant:      "v6",
60
+						},
61
+					},
62
+					&matcher{
63
+						Platform: specs.Platform{
64
+							Architecture: platform.Architecture,
65
+							OS:           platform.OS,
66
+							OSVersion:    platform.OSVersion,
67
+							OSFeatures:   platform.OSFeatures,
68
+							Variant:      "v5",
69
+						},
70
+					},
71
+				},
72
+			}
73
+		}
37 74
 		if platform.Variant == "v7" {
38 75
 			return orderedPlatformComparer{
39 76
 				matchers: []Matcher{
... ...
@@ -97,7 +97,7 @@ func getCPUVariant() string {
97 97
 	}
98 98
 
99 99
 	switch variant {
100
-	case "8":
100
+	case "8", "AArch64":
101 101
 		variant = "v8"
102 102
 	case "7", "7M", "?(12)", "?(13)", "?(14)", "?(15)", "?(16)", "?(17)":
103 103
 		variant = "v7"
... ...
@@ -98,9 +98,9 @@ func WithStart(binary, address, daemonAddress, cgroup string, debug bool, exitHa
98 98
 			cmd.Wait()
99 99
 			exitHandler()
100 100
 			if stdoutLog != nil {
101
-				stderrLog.Close()
101
+				stdoutLog.Close()
102 102
 			}
103
-			if stdoutLog != nil {
103
+			if stderrLog != nil {
104 104
 				stderrLog.Close()
105 105
 			}
106 106
 		}()
... ...
@@ -554,7 +554,7 @@ func shouldKillAllOnExit(bundlePath string) (bool, error) {
554 554
 
555 555
 	if bundleSpec.Linux != nil {
556 556
 		for _, ns := range bundleSpec.Linux.Namespaces {
557
-			if ns.Type == specs.PIDNamespace {
557
+			if ns.Type == specs.PIDNamespace && ns.Path == "" {
558 558
 				return false, nil
559 559
 			}
560 560
 		}