Commit Graph

61 Commits

Author SHA1 Message Date
Maksym Pavlenko
eb7c7c71e2 Fix oom tests on non Linux
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
2021-03-23 11:57:24 -07:00
Sebastiaan van Stijn
708299ca40
Move RunningInUserNS() to its own package
This allows using the utility without bringing whole of "sys" with it.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2021-03-23 11:29:53 +01:00
Muhammad Kaisar Arkhan
380b52652c Bring OpenBSD support
Signed-off-by: Muhammad Kaisar Arkhan <hi@yukiisbo.red>
2021-01-04 14:43:48 +01:00
Simon Kaegi
da2fd657ab Add bounds on max oom_score_adj value for AdjustOOMScore
oom_score_adj must be in the range -1000 to 1000. In AdjustOOMScore if containerd's score is already at the maximum value we should set that value for the shim instead of trying to set 1001 which is invalid.

Signed-off-by: Simon Kaegi <simon_kaegi@ca.ibm.com>
2020-12-14 15:09:24 -05:00
Phil Estes
af2fb4eb77
Allow oom adj test to run in environments with a score
GitHub Actions process wrapper sets score adj to 500 for any process;
the OOM score adj test expected default adj to be 0 during test.

Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com>
2020-11-19 08:43:32 -05:00
Leonardo Taccari
4c47fe0a2f Add support for NetBSD
Signed-off-by: Leonardo Taccari <leot@NetBSD.org>
2020-09-22 20:03:50 +02:00
Gaurav Singh
ae08491bff waitForPid: fix goroutine leak
Signed-off-by: Gaurav Singh <gaurav1086@gmail.com>
2020-06-07 17:33:10 -04:00
Sebastiaan van Stijn
dc92ad6520
Replace errors.Cause() with errors.Is()
Dependencies may be switching to use the new `%w` formatting
option to wrap errors; switching to use `errors.Is()` makes
sure that we are still able to unwrap the error and detect the
underlying cause.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-05-08 14:36:45 +02:00
Phil Estes
990076b731
Merge pull request #4228 from thaJeztah/refactor_reaper
Refactor reaper-related functionality to be in the sys/reaper package
2020-05-07 14:32:55 -04:00
Sebastiaan van Stijn
0088c2de80
sys: RunningInUserNS(): use sync.Once
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-05-04 18:57:02 +02:00
Sebastiaan van Stijn
76c62f2722
sys: simplify RunningInUserNS to original implementation
Given that we're only interested in detecting if userns is
enabled, and no further details about the mapping, we can
revert this function to go back to its original implementation
in github.com/lxc/lxd/shared/util.go

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-05-04 18:56:59 +02:00
Sebastiaan van Stijn
6a9b94927f
Remove remaining uses of libcontainer/system package
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-05-04 18:56:57 +02:00
Sebastiaan van Stijn
37c839e594
sys/proc: remove GetSystemCPUUsage as it is unused
After e115b52ce2 was merged, this
function was no longer in use, so we should be able to remove it.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-05-04 13:40:19 +02:00
Sebastiaan van Stijn
1b66fecad3
Integrate sys.SetSubreaper, sys.GetSubreaper in sys/reaper package
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-05-04 08:44:02 +02:00
Sebastiaan van Stijn
fffea312aa
move sys.Reap() into sys/reaper package
It was only used in sys/reaper, and after moving it, that package
no longer depends on the `sys` package.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-05-04 08:44:00 +02:00
Sebastiaan van Stijn
295e74008f
sys: remove custom setChildSubreaper const
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-05-04 08:43:57 +02:00
Haitao Li
35c14c6b56 sys/mount_linux: use pipe for communicating mount result
forkAndMountat forks a process to chdir then mount layers. Signals are
blocked (using runtime_beforeFork) during fork.

There is a race condition that the child process finishes before the
parent process is scheduled and can unblock signal handling. The SIGCHLD
signal sent from the finished process may have been delivered to the
shim process's reaper thread and caused the parent process fail with
ECHLD error.

This patch sets up a pipe for communication between child and parent
instead of waiting for child exit status.

Fixes #4009.

Signed-off-by: Haitao Li <hli@atlassian.com>
2020-04-09 09:50:41 +10:00
Phil Estes
0c78dacbc5
Move isFifo from process/io to sys/ and make public
Make "IsFifo" a public function for use by other parts of containerd
codebase.

Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com>
2020-03-25 10:44:17 -04:00
Sebastiaan van Stijn
6320236985
Partial revert of sys: windows: use golang.org/x/sys/windows
- preserve `syscall.ENOTDIR` to match os.MkDirAll
- change back parameter name to `adminAndLocalSystem`
- revert accidental change of permissions of parent-dir

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-03-09 16:01:09 +01:00
Michael Crosby
9ec579bf8a
Merge pull request #4093 from thaJeztah/replace_more_syscall
sys: windows: use golang.org/x/sys/windows
2020-03-09 10:47:23 -04:00
Sebastiaan van Stijn
0a7fd55f32
sys: deprecate EpollCreate1, EpollCtl, EpollWait
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-03-09 13:15:07 +01:00
Sebastiaan van Stijn
7b06192f61
sys: windows: use golang.org/x/sys/windows
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-03-09 13:05:53 +01:00
Sebastiaan van Stijn
f2edc6f164
vendor: update gotest.tools v3.0.2
full diff: https://github.com/gotestyourself/gotest.tools/compare/v2.3.0...v3.0.2

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-02-28 17:47:20 +01:00
Shengjing Zhu
35a8e6e589 sys: clean up process after test
Signed-off-by: Shengjing Zhu <zhsj@debian.org>
2020-01-15 22:03:39 +08:00
Akihiro Suda
62adc516dd sys: mkdirAs: do chown if dir already exists
Fix `buildkitd --group GROUP` issue when `/run/buildkit` already exists
and is owned by the root.

Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
2019-12-18 14:19:19 +09:00
Shukui Yang
21174cb497 Change bufferSize back to 32
Shim use non-blocking send now, there is no need to set bufferSize to 2048,
it's a waste.

Signed-off-by: Shukui Yang <keloyangsk@gmail.com>
2019-08-20 22:10:11 +08:00
Michael Crosby
2763639388 Try to preserve exit event order
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2019-08-19 14:23:12 +00:00
Michael Crosby
bee4c1a8a2 Add retry and non-blocking send for exit events
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2019-08-16 13:55:05 +00:00
Michael Crosby
0d27d8f4f2 Unifi reaper logic into package
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2019-08-16 13:55:05 +00:00
Michael Crosby
c93d645435 Add GetOOMScore function
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2019-04-09 10:40:54 -04:00
John Howard
6034c1950a Windows:Create root/state with ACL
Signed-off-by: John Howard <jhoward@microsoft.com>
2019-03-21 18:47:34 -07:00
zhangyue
996c60616a fix: fix error info start capitalized
Signed-off-by: zhangyue <zy675793960@yeah.net>
2018-11-28 15:26:16 +08:00
Claudia Beresford
32e6aa742b Fix teeny tiny typos
Signed-off-by: Claudia Beresford <cberesford@pivotal.io>
2018-09-05 14:44:44 +01:00
Wei Fu
67b54c6670 Support >= 128 layers in overlayfs snapshots
Auto-detect longest common dir in lowerdir option and compact it if the
option size is hitting one page size. If does, Use chdir + CLONE to do
mount thing to avoid hitting one page argument buffer in linux kernel
mount.

Signed-off-by: Wei Fu <fhfuwei@163.com>
2018-08-07 10:59:36 +08:00
Michael Crosby
da1b5470cd Runtime v2
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2018-07-17 10:21:29 -04:00
Vincent Demeester
832b05ae67
Update tests to use gotest.tools angel
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2018-06-08 21:02:01 +02:00
Claudia Beresford
544b985ff2 Don't fail on setting -ve oom score when rootless
This allows non-privileged users to use containerd.
If a non root user tried to set a negative oom score adjustment,
it will fail. Containerd should not fail if running rootless.

This is part of a larger track of work integrating containerd
into Cloudfoundry's garden with support for rootless.

[#156343443]

Signed-off-by: Danail Branekov <danailster@gmail.com>
2018-05-04 17:06:01 +01:00
Kenfe-Mickael Laventure
81feacd393
Fix typo in CreateUnixSocket error message
Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
2018-03-30 13:14:55 -07:00
Kenfe-Mickael Laventure
3c3a676490
Return a better error message is unix socket path is too long.
Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
2018-03-30 09:00:02 -07:00
Kunal Kushwaha
b12c3215a0 Licence header added
Signed-off-by: Kunal Kushwaha <kushwaha_kunal_v7@lab.ntt.co.jp>
2018-02-19 10:32:26 +09:00
Trevor Porter
d994d08664 Add time type conversion for 32bit Unix platforms
Ensures the time.Unix function is given int64 arguments

Signed-off-by: Trevor Porter <trkporter@ucdavis.edu>
2018-02-03 22:36:36 +00:00
Darren Stahl
e6280a7c82 Enable integration tests on Windows using snapshotter and differ
Signed-off-by: Darren Stahl <darst@microsoft.com>
2018-01-23 15:25:17 -08:00
Phil Estes
f47f6af585
Remove unnecessary subreaper API from sys/
Given these same exact functions are both now available in
opencontainers/runc (libcontainer/system) package, and we only use the
`SetSubreaper` today from the shim, there seems to be no reason for
duplication.

Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com>
2018-01-23 10:30:29 -05:00
Daniel Nephin
184bc25629 Add unconvert linter
This linter checks for unnecessary type convertions.

Some convertions are whitelisted because their type is different
on 32bit platforms

Signed-off-by: Daniel Nephin <dnephin@gmail.com>
2018-01-09 17:36:44 -05:00
Daniel Nephin
f9e969bac8 Use gometalinter for linting
gometalinter runs linters in parallel for faster linting
it provides a uniform way of whitelisting lines using // nolint or the exclude
field in the config

Signed-off-by: Daniel Nephin <dnephin@gmail.com>
2017-11-03 18:02:27 -04:00
Michael Crosby
1d298c89a4 Fix windows lint issues and enable ci
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2017-10-25 16:15:45 -04:00
Michael Crosby
b6e0c4f321 Fix go lint errors
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2017-10-25 15:26:44 -04:00
Michael Crosby
9956fa4b33 Remove solaris files
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2017-10-24 15:35:12 -04:00
Edward Pilatowicz
56c1f5c184 Add solaris build support
Signed-off-by: Edward Pilatowicz <edward.pilatowicz@oracle.com>
2017-08-07 12:40:21 -07:00
Tobias Klauser
bfa4b901a1 Use Prctl() and associated constants from x/sys/unix
Use unix.Prctl() instead of manually reimplementing it using
unix.RawSyscall. Also use unix.PR_SET_CHILD_SUBREAPER
unix.PR_GET_CHILD_SUBREAPER instead of locally defining them.

Also fix the package name form 'osutils' to 'sys' in the package level
comment.

Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2017-07-19 10:30:12 +02:00