Skip to content

Commit a985897

Browse files
authored
Merge pull request #2934 from Dingshujie/fix_image_gc
if docker can't connect during InitializeFSContext , do not add image dev info to real fs info label cache
2 parents 889e23f + 24ae795 commit a985897

File tree

2 files changed

+19
-13
lines changed

2 files changed

+19
-13
lines changed

fs/fs.go

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -284,15 +284,17 @@ func (i *RealFsInfo) addSystemRootLabel(mounts []*mount.Info) {
284284

285285
// addDockerImagesLabel attempts to determine which device contains the mount for docker images.
286286
func (i *RealFsInfo) addDockerImagesLabel(context Context, mounts []*mount.Info) {
287-
dockerDev, dockerPartition, err := i.getDockerDeviceMapperInfo(context.Docker)
288-
if err != nil {
289-
klog.Warningf("Could not get Docker devicemapper device: %v", err)
290-
}
291-
if len(dockerDev) > 0 && dockerPartition != nil {
292-
i.partitions[dockerDev] = *dockerPartition
293-
i.labels[LabelDockerImages] = dockerDev
294-
} else {
295-
i.updateContainerImagesPath(LabelDockerImages, mounts, getDockerImagePaths(context))
287+
if context.Docker.Driver != "" {
288+
dockerDev, dockerPartition, err := i.getDockerDeviceMapperInfo(context.Docker)
289+
if err != nil {
290+
klog.Warningf("Could not get Docker devicemapper device: %v", err)
291+
}
292+
if len(dockerDev) > 0 && dockerPartition != nil {
293+
i.partitions[dockerDev] = *dockerPartition
294+
i.labels[LabelDockerImages] = dockerDev
295+
} else {
296+
i.updateContainerImagesPath(LabelDockerImages, mounts, getDockerImagePaths(context))
297+
}
296298
}
297299
}
298300

fs/fs_test.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -374,7 +374,8 @@ func TestAddDockerImagesLabel(t *testing.T) {
374374
expectedPartition *partition
375375
}{
376376
{
377-
name: "single partition, no dedicated image fs",
377+
name: "single partition, no dedicated image fs",
378+
driver: "overlay2",
378379
mounts: []*mount.Info{
379380
{
380381
Source: "/dev/root",
@@ -427,7 +428,8 @@ func TestAddDockerImagesLabel(t *testing.T) {
427428
expectedDockerDevice: "/dev/sdb1",
428429
},
429430
{
430-
name: "multiple mounts - innermost check",
431+
name: "multiple mounts - innermost check",
432+
driver: "overlay2",
431433
mounts: []*mount.Info{
432434
{
433435
Source: "/dev/sda1",
@@ -448,7 +450,8 @@ func TestAddDockerImagesLabel(t *testing.T) {
448450
expectedDockerDevice: "/dev/sdb2",
449451
},
450452
{
451-
name: "root fs inside container, docker-images bindmount",
453+
name: "root fs inside container, docker-images bindmount",
454+
driver: "overlay2",
452455
mounts: []*mount.Info{
453456
{
454457
Source: "overlay",
@@ -464,7 +467,8 @@ func TestAddDockerImagesLabel(t *testing.T) {
464467
expectedDockerDevice: "/dev/sda1",
465468
},
466469
{
467-
name: "[overlay2] root fs inside container - /var/lib/docker bindmount",
470+
name: "[overlay2] root fs inside container - /var/lib/docker bindmount",
471+
driver: "overlay2",
468472
mounts: []*mount.Info{
469473
{
470474
Source: "overlay",

0 commit comments

Comments
 (0)