Skip to content

Commit 421ae2b

Browse files
committed
remove isCgroupV1 logic
1 parent bcf9464 commit 421ae2b

File tree

2 files changed

+4
-135
lines changed

2 files changed

+4
-135
lines changed

statsd/container_linux.go

+4-31
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,6 @@ const (
2121
// selfMountinfo is the path to the mountinfo path where we can find the container id in case cgroup namespace is preventing the use of /proc/self/cgroup
2222
selfMountInfoPath = "/proc/self/mountinfo"
2323

24-
// mountsPath is the path to the file listing all the mount points
25-
mountsPath = "/proc/mounts"
26-
2724
// defaultCgroupMountPath is the default path to the cgroup mount point.
2825
defaultCgroupMountPath = "/sys/fs/cgroup"
2926

@@ -113,30 +110,6 @@ func readMountinfo(path string) string {
113110
return parseMountinfo(f)
114111
}
115112

116-
// isCgroupV1 checks if Cgroup V1 is used
117-
func isCgroupV1(mountsPath string) bool {
118-
f, err := os.Open(mountsPath)
119-
if err != nil {
120-
return false
121-
}
122-
defer f.Close()
123-
124-
scn := bufio.NewScanner(f)
125-
for scn.Scan() {
126-
line := scn.Text()
127-
128-
tokens := strings.Fields(line)
129-
if len(tokens) >= 3 {
130-
fsType := tokens[2]
131-
if fsType == "cgroup" {
132-
return true
133-
}
134-
}
135-
}
136-
137-
return false
138-
}
139-
140113
func isHostCgroupNamespace() bool {
141114
fi, err := os.Stat("/proc/self/ns/cgroup")
142115
if err != nil {
@@ -214,12 +187,12 @@ func internalInitContainerID(userProvidedID string, cgroupFallback bool) {
214187

215188
if cgroupFallback {
216189
isHostCgroupNs := isHostCgroupNamespace()
217-
if isCgroupV1(mountsPath) || isHostCgroupNs {
190+
if isHostCgroupNs {
218191
containerID = readContainerID(cgroupPath)
219-
} else {
220-
containerID = readMountinfo(selfMountInfoPath)
192+
return
221193
}
222-
if containerID != "" && !isHostCgroupNs {
194+
containerID = readMountinfo(selfMountInfoPath)
195+
if containerID != "" {
223196
containerID = getCgroupInode(defaultCgroupMountPath, cgroupPath)
224197
}
225198
}

statsd/container_test.go

-104
Original file line numberDiff line numberDiff line change
@@ -263,109 +263,6 @@ func TestReadMountinfo(t *testing.T) {
263263
assert.Equal(t, cid, actualCID)
264264
}
265265

266-
func TestIsCgroupV1(t *testing.T) {
267-
for input, expectedResult := range map[string]bool{
268-
`sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
269-
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
270-
udev /dev devtmpfs rw,nosuid,relatime,size=16229088k,nr_inodes=4057272,mode=755,inode64 0 0
271-
devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
272-
tmpfs /run tmpfs rw,nosuid,nodev,noexec,relatime,size=3253732k,mode=755,inode64 0 0
273-
/dev/mapper/vg-root / ext4 rw,relatime,errors=remount-ro 0 0
274-
/dev/mapper/vg-root_usr /usr ext4 rw,nodev,relatime 0 0
275-
securityfs /sys/kernel/security securityfs rw,nosuid,nodev,noexec,relatime 0 0
276-
tmpfs /dev/shm tmpfs rw,nosuid,nodev,noexec,inode64 0 0
277-
tmpfs /run/lock tmpfs rw,nosuid,nodev,noexec,relatime,size=5120k,inode64 0 0
278-
cgroup2 /sys/fs/cgroup cgroup2 rw,nosuid,nodev,noexec,relatime 0 0
279-
pstore /sys/fs/pstore pstore rw,nosuid,nodev,noexec,relatime 0 0
280-
efivarfs /sys/firmware/efi/efivars efivarfs rw,nosuid,nodev,noexec,relatime 0 0
281-
bpf /sys/fs/bpf bpf rw,nosuid,nodev,noexec,relatime,mode=700 0 0
282-
systemd-1 /proc/sys/fs/binfmt_misc autofs rw,relatime,fd=29,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=29681 0 0
283-
hugetlbfs /dev/hugepages hugetlbfs rw,relatime,pagesize=2M 0 0
284-
mqueue /dev/mqueue mqueue rw,nosuid,nodev,noexec,relatime 0 0
285-
debugfs /sys/kernel/debug debugfs rw,nosuid,nodev,noexec,relatime 0 0
286-
tracefs /sys/kernel/tracing tracefs rw,nosuid,nodev,noexec,relatime 0 0
287-
fusectl /sys/fs/fuse/connections fusectl rw,nosuid,nodev,noexec,relatime 0 0
288-
configfs /sys/kernel/config configfs rw,nosuid,nodev,noexec,relatime 0 0
289-
none /run/credentials/systemd-sysusers.service ramfs ro,nosuid,nodev,noexec,relatime,mode=700 0 0
290-
/dev/nvme0n1p3 /boot ext4 rw,nosuid,nodev,noexec,relatime 0 0
291-
/dev/nvme0n1p2 /boot/efi vfat rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro 0 0
292-
tmpfs /run/qemu tmpfs rw,nosuid,nodev,relatime,mode=755,inode64 0 0
293-
/dev/mapper/vg-root_home /home ext4 rw,nosuid,nodev,relatime 0 0
294-
/dev/mapper/vg-root_tmp /tmp ext4 rw,nosuid,nodev,relatime 0 0
295-
/dev/mapper/vg-root_var /var ext4 rw,nosuid,nodev,relatime 0 0
296-
binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc rw,nosuid,nodev,noexec,relatime 0 0
297-
overlay /var/lib/docker/overlay2/d4cea28ac9d244e0d966e9298f2bfec6b51e3dbca19c63be5f25797145e7ae37/merged overlay rw,relatime,lowerdir=/var/lib/docker/overlay2/l/PSA4WM7MRV7OTYBH47EXU5XBNL:/var/lib/docker/overlay2/l/O47GWLQIRN2RDBHNBIT4MQSXHY,upperdir=/var/lib/docker/overlay2/d4cea28ac9d244e0d966e9298f2bfec6b51e3dbca19c63be5f25797145e7ae37/diff,workdir=/var/lib/docker/overlay2/d4cea28ac9d244e0d966e9298f2bfec6b51e3dbca19c63be5f25797145e7ae37/work 0 0
298-
nsfs /run/docker/netns/f5019077c595 nsfs rw 0 0
299-
tmpfs /run/user/1000 tmpfs rw,nosuid,nodev,relatime,size=3253728k,nr_inodes=813432,mode=700,uid=1000,gid=1000,inode64 0 0
300-
portal /run/user/1000/doc fuse.portal rw,nosuid,nodev,relatime,user_id=1000,group_id=1000 0 0`: false,
301-
`/dev/root / ext4 rw,relatime,discard,errors=remount-ro 0 0
302-
devtmpfs /dev devtmpfs rw,relatime,size=4065432k,nr_inodes=1016358,mode=755,inode64 0 0
303-
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
304-
sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
305-
securityfs /sys/kernel/security securityfs rw,nosuid,nodev,noexec,relatime 0 0
306-
tmpfs /dev/shm tmpfs rw,nosuid,nodev,inode64 0 0
307-
devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
308-
tmpfs /run tmpfs rw,nosuid,nodev,size=1627848k,nr_inodes=819200,mode=755,inode64 0 0
309-
tmpfs /run/lock tmpfs rw,nosuid,nodev,noexec,relatime,size=5120k,inode64 0 0
310-
tmpfs /sys/fs/cgroup tmpfs ro,nosuid,nodev,noexec,size=4096k,nr_inodes=1024,mode=755,inode64 0 0
311-
cgroup2 /sys/fs/cgroup/unified cgroup2 rw,nosuid,nodev,noexec,relatime 0 0
312-
cgroup /sys/fs/cgroup/systemd cgroup rw,nosuid,nodev,noexec,relatime,xattr,name=systemd 0 0
313-
pstore /sys/fs/pstore pstore rw,nosuid,nodev,noexec,relatime 0 0
314-
efivarfs /sys/firmware/efi/efivars efivarfs rw,nosuid,nodev,noexec,relatime 0 0
315-
bpf /sys/fs/bpf bpf rw,nosuid,nodev,noexec,relatime,mode=700 0 0
316-
cgroup /sys/fs/cgroup/cpu,cpuacct cgroup rw,nosuid,nodev,noexec,relatime,cpu,cpuacct 0 0
317-
cgroup /sys/fs/cgroup/rdma cgroup rw,nosuid,nodev,noexec,relatime,rdma 0 0
318-
cgroup /sys/fs/cgroup/misc cgroup rw,nosuid,nodev,noexec,relatime,misc 0 0
319-
cgroup /sys/fs/cgroup/net_cls,net_prio cgroup rw,nosuid,nodev,noexec,relatime,net_cls,net_prio 0 0
320-
cgroup /sys/fs/cgroup/blkio cgroup rw,nosuid,nodev,noexec,relatime,blkio 0 0
321-
cgroup /sys/fs/cgroup/freezer cgroup rw,nosuid,nodev,noexec,relatime,freezer 0 0
322-
cgroup /sys/fs/cgroup/pids cgroup rw,nosuid,nodev,noexec,relatime,pids 0 0
323-
cgroup /sys/fs/cgroup/memory cgroup rw,nosuid,nodev,noexec,relatime,memory 0 0
324-
cgroup /sys/fs/cgroup/cpuset cgroup rw,nosuid,nodev,noexec,relatime,cpuset 0 0
325-
cgroup /sys/fs/cgroup/hugetlb cgroup rw,nosuid,nodev,noexec,relatime,hugetlb 0 0
326-
cgroup /sys/fs/cgroup/perf_event cgroup rw,nosuid,nodev,noexec,relatime,perf_event 0 0
327-
cgroup /sys/fs/cgroup/devices cgroup rw,nosuid,nodev,noexec,relatime,devices 0 0
328-
systemd-1 /proc/sys/fs/binfmt_misc autofs rw,relatime,fd=31,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=14210 0 0
329-
hugetlbfs /dev/hugepages hugetlbfs rw,relatime,pagesize=2M 0 0
330-
mqueue /dev/mqueue mqueue rw,nosuid,nodev,noexec,relatime 0 0
331-
debugfs /sys/kernel/debug debugfs rw,nosuid,nodev,noexec,relatime 0 0
332-
tracefs /sys/kernel/tracing tracefs rw,nosuid,nodev,noexec,relatime 0 0
333-
fusectl /sys/fs/fuse/connections fusectl rw,nosuid,nodev,noexec,relatime 0 0
334-
configfs /sys/kernel/config configfs rw,nosuid,nodev,noexec,relatime 0 0
335-
none /run/credentials/systemd-sysusers.service ramfs ro,nosuid,nodev,noexec,relatime,mode=700 0 0
336-
/dev/sda15 /boot/efi vfat rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro 0 0
337-
sunrpc /run/rpc_pipefs rpc_pipefs rw,relatime 0 0
338-
/dev/root /home/kubernetes/bin ext4 rw,relatime,discard,errors=remount-ro 0 0
339-
/dev/root /home/kubernetes/flexvolume ext4 rw,relatime,discard,errors=remount-ro 0 0
340-
binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc rw,nosuid,nodev,noexec,relatime 0 0
341-
/dev/root /var/lib/kubelet ext4 rw,relatime,discard,errors=remount-ro 0 0
342-
tmpfs /var/lib/kubelet/pki tmpfs rw,relatime,inode64 0 0
343-
tmpfs /var/lib/kubelet/pki tmpfs rw,relatime,inode64 0 0
344-
/dev/root /home/containerd ext4 ro,relatime,discard,errors=remount-ro 0 0
345-
/dev/root /home/kubernetes/containerized_mounter ext4 rw,relatime,discard,errors=remount-ro 0 0
346-
/dev/root /home/kubernetes/containerized_mounter/rootfs/var/lib/kubelet ext4 rw,relatime,discard,errors=remount-ro 0 0
347-
tmpfs /home/kubernetes/containerized_mounter/rootfs/var/lib/kubelet/pki tmpfs rw,relatime,inode64 0 0
348-
/dev/root /home/kubernetes/containerized_mounter/rootfs/var/lib/kubelet ext4 rw,relatime,discard,errors=remount-ro 0 0
349-
tmpfs /home/kubernetes/containerized_mounter/rootfs/var/lib/kubelet/pki tmpfs rw,relatime,inode64 0 0
350-
proc /home/kubernetes/containerized_mounter/rootfs/proc proc ro,relatime 0 0
351-
proc /home/kubernetes/containerized_mounter/rootfs/proc proc rw,nosuid,nodev,noexec,relatime 0 0
352-
devtmpfs /home/kubernetes/containerized_mounter/rootfs/dev devtmpfs ro,relatime,size=4065432k,nr_inodes=1016358,mode=755,inode64 0 0
353-
devtmpfs /home/kubernetes/containerized_mounter/rootfs/dev devtmpfs rw,relatime,size=4065432k,nr_inodes=1016358,mode=755,inode64 0 0`: true,
354-
} {
355-
tmpFile, err := ioutil.TempFile("", "mounts-")
356-
assert.NoError(t, err)
357-
358-
defer os.Remove(tmpFile.Name())
359-
360-
_, err = tmpFile.WriteString(input)
361-
assert.NoError(t, err)
362-
363-
assert.Equal(t, expectedResult, isCgroupV1(tmpFile.Name()))
364-
365-
err = tmpFile.Close()
366-
assert.NoError(t, err)
367-
}
368-
}
369266
func TestParsegroupControllerPath(t *testing.T) {
370267
// Test cases
371268
cases := []struct {
@@ -478,7 +375,6 @@ func TestGetCgroupInode(t *testing.T) {
478375
t.Run(tc.description, func(t *testing.T) {
479376
sysFsCgroupPath := path.Join(os.TempDir(), "sysfscgroup")
480377
groupControllerPath := path.Join(sysFsCgroupPath, tc.controller, tc.cgroupNodeDir)
481-
t.Log(groupControllerPath)
482378
err := os.MkdirAll(groupControllerPath, 0755)
483379
require.NoError(t, err)
484380
defer os.RemoveAll(groupControllerPath)

0 commit comments

Comments
 (0)