Merge pull request #2116 from crosbymichael/bump-runc
Update runc to a618ab5a0186905949ee463dbb762c3d23e
This commit is contained in:
commit
ee6ffdd91e
2
RUNC.md
2
RUNC.md
@ -2,7 +2,7 @@ containerd is built with OCI support and with support for advanced features prov
|
|||||||
|
|
||||||
We depend on a specific `runc` version when dealing with advanced features. You should have a specific runc build for development. The current supported runc commit is:
|
We depend on a specific `runc` version when dealing with advanced features. You should have a specific runc build for development. The current supported runc commit is:
|
||||||
|
|
||||||
RUNC_COMMIT = 9f9c96235cc97674e935002fc3d78361b696a69e
|
RUNC_COMMIT = a618ab5a0186905949ee463dbb762c3d23e12a80
|
||||||
|
|
||||||
For more information on how to clone and build runc see the runc Building [documentation](https://github.com/opencontainers/runc#building).
|
For more information on how to clone and build runc see the runc Building [documentation](https://github.com/opencontainers/runc#building).
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ github.com/docker/go-units v0.3.1
|
|||||||
github.com/gogo/protobuf v0.5
|
github.com/gogo/protobuf v0.5
|
||||||
github.com/golang/protobuf 1643683e1b54a9e88ad26d98f81400c8c9d9f4f9
|
github.com/golang/protobuf 1643683e1b54a9e88ad26d98f81400c8c9d9f4f9
|
||||||
github.com/opencontainers/runtime-spec v1.0.1
|
github.com/opencontainers/runtime-spec v1.0.1
|
||||||
github.com/opencontainers/runc 9f9c96235cc97674e935002fc3d78361b696a69e
|
github.com/opencontainers/runc a618ab5a0186905949ee463dbb762c3d23e12a80
|
||||||
github.com/sirupsen/logrus v1.0.0
|
github.com/sirupsen/logrus v1.0.0
|
||||||
github.com/containerd/btrfs cc52c4dea2ce11a44e6639e561bb5c2af9ada9e3
|
github.com/containerd/btrfs cc52c4dea2ce11a44e6639e561bb5c2af9ada9e3
|
||||||
github.com/stretchr/testify v1.1.4
|
github.com/stretchr/testify v1.1.4
|
||||||
|
27
vendor/github.com/opencontainers/runc/libcontainer/nsenter/nsexec.c
generated
vendored
27
vendor/github.com/opencontainers/runc/libcontainer/nsenter/nsexec.c
generated
vendored
@ -22,7 +22,6 @@
|
|||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/wait.h>
|
#include <sys/wait.h>
|
||||||
|
|
||||||
|
|
||||||
#include <linux/limits.h>
|
#include <linux/limits.h>
|
||||||
#include <linux/netlink.h>
|
#include <linux/netlink.h>
|
||||||
#include <linux/types.h>
|
#include <linux/types.h>
|
||||||
@ -73,7 +72,7 @@ struct nlconfig_t {
|
|||||||
char *oom_score_adj;
|
char *oom_score_adj;
|
||||||
size_t oom_score_adj_len;
|
size_t oom_score_adj_len;
|
||||||
|
|
||||||
/* User namespace settings.*/
|
/* User namespace settings. */
|
||||||
char *uidmap;
|
char *uidmap;
|
||||||
size_t uidmap_len;
|
size_t uidmap_len;
|
||||||
char *gidmap;
|
char *gidmap;
|
||||||
@ -82,7 +81,7 @@ struct nlconfig_t {
|
|||||||
size_t namespaces_len;
|
size_t namespaces_len;
|
||||||
uint8_t is_setgroup;
|
uint8_t is_setgroup;
|
||||||
|
|
||||||
/* Rootless container settings.*/
|
/* Rootless container settings. */
|
||||||
uint8_t is_rootless;
|
uint8_t is_rootless;
|
||||||
char *uidmappath;
|
char *uidmappath;
|
||||||
size_t uidmappath_len;
|
size_t uidmappath_len;
|
||||||
@ -167,7 +166,7 @@ static int write_file(char *data, size_t data_len, char *pathfmt, ...)
|
|||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
out:
|
out:
|
||||||
close(fd);
|
close(fd);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -226,14 +225,14 @@ static int try_mapping_tool(const char *app, int pid, char *map, size_t map_len)
|
|||||||
if (!child) {
|
if (!child) {
|
||||||
#define MAX_ARGV 20
|
#define MAX_ARGV 20
|
||||||
char *argv[MAX_ARGV];
|
char *argv[MAX_ARGV];
|
||||||
char *envp[] = {NULL};
|
char *envp[] = { NULL };
|
||||||
char pid_fmt[16];
|
char pid_fmt[16];
|
||||||
int argc = 0;
|
int argc = 0;
|
||||||
char *next;
|
char *next;
|
||||||
|
|
||||||
snprintf(pid_fmt, 16, "%d", pid);
|
snprintf(pid_fmt, 16, "%d", pid);
|
||||||
|
|
||||||
argv[argc++] = (char *) app;
|
argv[argc++] = (char *)app;
|
||||||
argv[argc++] = pid_fmt;
|
argv[argc++] = pid_fmt;
|
||||||
/*
|
/*
|
||||||
* Convert the map string into a list of argument that
|
* Convert the map string into a list of argument that
|
||||||
@ -533,7 +532,7 @@ void nsexec(void)
|
|||||||
int pipenum;
|
int pipenum;
|
||||||
jmp_buf env;
|
jmp_buf env;
|
||||||
int sync_child_pipe[2], sync_grandchild_pipe[2];
|
int sync_child_pipe[2], sync_grandchild_pipe[2];
|
||||||
struct nlconfig_t config = {0};
|
struct nlconfig_t config = { 0 };
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If we don't have an init pipe, just return to the go routine.
|
* If we don't have an init pipe, just return to the go routine.
|
||||||
@ -637,14 +636,14 @@ void nsexec(void)
|
|||||||
* it will send us its PID which we will send to the bootstrap
|
* it will send us its PID which we will send to the bootstrap
|
||||||
* process.
|
* process.
|
||||||
*/
|
*/
|
||||||
case JUMP_PARENT: {
|
case JUMP_PARENT:{
|
||||||
int len;
|
int len;
|
||||||
pid_t child, first_child = -1;
|
pid_t child, first_child = -1;
|
||||||
char buf[JSON_MAX];
|
char buf[JSON_MAX];
|
||||||
bool ready = false;
|
bool ready = false;
|
||||||
|
|
||||||
/* For debugging. */
|
/* For debugging. */
|
||||||
prctl(PR_SET_NAME, (unsigned long) "runc:[0:PARENT]", 0, 0, 0);
|
prctl(PR_SET_NAME, (unsigned long)"runc:[0:PARENT]", 0, 0, 0);
|
||||||
|
|
||||||
/* Start the process of getting a container. */
|
/* Start the process of getting a container. */
|
||||||
child = clone_parent(&env, JUMP_CHILD);
|
child = clone_parent(&env, JUMP_CHILD);
|
||||||
@ -702,7 +701,7 @@ void nsexec(void)
|
|||||||
bail("failed to sync with child: write(SYNC_USERMAP_ACK)");
|
bail("failed to sync with child: write(SYNC_USERMAP_ACK)");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case SYNC_RECVPID_PLS: {
|
case SYNC_RECVPID_PLS:{
|
||||||
first_child = child;
|
first_child = child;
|
||||||
|
|
||||||
/* Get the init_func pid. */
|
/* Get the init_func pid. */
|
||||||
@ -790,7 +789,7 @@ void nsexec(void)
|
|||||||
* (stage 2: JUMP_INIT) for PID namespace. We then send the
|
* (stage 2: JUMP_INIT) for PID namespace. We then send the
|
||||||
* child's PID to our parent (stage 0).
|
* child's PID to our parent (stage 0).
|
||||||
*/
|
*/
|
||||||
case JUMP_CHILD: {
|
case JUMP_CHILD:{
|
||||||
pid_t child;
|
pid_t child;
|
||||||
enum sync_t s;
|
enum sync_t s;
|
||||||
|
|
||||||
@ -799,7 +798,7 @@ void nsexec(void)
|
|||||||
close(sync_child_pipe[1]);
|
close(sync_child_pipe[1]);
|
||||||
|
|
||||||
/* For debugging. */
|
/* For debugging. */
|
||||||
prctl(PR_SET_NAME, (unsigned long) "runc:[1:CHILD]", 0, 0, 0);
|
prctl(PR_SET_NAME, (unsigned long)"runc:[1:CHILD]", 0, 0, 0);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We need to setns first. We cannot do this earlier (in stage 0)
|
* We need to setns first. We cannot do this earlier (in stage 0)
|
||||||
@ -907,7 +906,7 @@ void nsexec(void)
|
|||||||
* final cleanup steps and then return to the Go runtime to allow
|
* final cleanup steps and then return to the Go runtime to allow
|
||||||
* init_linux.go to run.
|
* init_linux.go to run.
|
||||||
*/
|
*/
|
||||||
case JUMP_INIT: {
|
case JUMP_INIT:{
|
||||||
/*
|
/*
|
||||||
* We're inside the child now, having jumped from the
|
* We're inside the child now, having jumped from the
|
||||||
* start_child() code after forking in the parent.
|
* start_child() code after forking in the parent.
|
||||||
@ -921,7 +920,7 @@ void nsexec(void)
|
|||||||
close(sync_child_pipe[1]);
|
close(sync_child_pipe[1]);
|
||||||
|
|
||||||
/* For debugging. */
|
/* For debugging. */
|
||||||
prctl(PR_SET_NAME, (unsigned long) "runc:[2:INIT]", 0, 0, 0);
|
prctl(PR_SET_NAME, (unsigned long)"runc:[2:INIT]", 0, 0, 0);
|
||||||
|
|
||||||
if (read(syncfd, &s, sizeof(s)) != sizeof(s))
|
if (read(syncfd, &s, sizeof(s)) != sizeof(s))
|
||||||
bail("failed to sync with parent: read(SYNC_GRANDCHILD)");
|
bail("failed to sync with parent: read(SYNC_GRANDCHILD)");
|
||||||
|
Loading…
Reference in New Issue
Block a user