Merge pull request #5519 from dqminh:runsc-ps-pids

PiperOrigin-RevId: 359334029
This commit is contained in:
gVisor bot
2021-02-24 11:47:27 -08:00
2 changed files with 16 additions and 15 deletions
+2 -2
View File
@@ -334,8 +334,8 @@ func PrintPIDsJSON(pl []*Process) (string, error) {
func Processes(k *kernel.Kernel, containerID string, out *[]*Process) error {
ts := k.TaskSet()
now := k.RealtimeClock().Now()
for _, tg := range ts.Root.ThreadGroups() {
pidns := tg.PIDNamespace()
pidns := ts.Root
for _, tg := range pidns.ThreadGroups() {
pid := pidns.IDOfThreadGroup(tg)
// If tg has already been reaped ignore it.
+14 -13
View File
@@ -203,7 +203,7 @@ func TestMultiPIDNS(t *testing.T) {
t.Errorf("failed to wait for sleep to start: %v", err)
}
expectedPL = []*control.Process{
newProcessBuilder().PID(1).Cmd("sleep").Process(),
newProcessBuilder().PID(2).Cmd("sleep").Process(),
}
if err := waitForProcessList(containers[1], expectedPL); err != nil {
t.Errorf("failed to wait for sleep to start: %v", err)
@@ -291,16 +291,18 @@ func TestMultiPIDNSPath(t *testing.T) {
if err := waitForProcessList(containers[0], expectedPL); err != nil {
t.Errorf("failed to wait for sleep to start: %v", err)
}
if err := waitForProcessList(containers[2], expectedPL); err != nil {
t.Errorf("failed to wait for sleep to start: %v", err)
}
expectedPL = []*control.Process{
newProcessBuilder().PID(2).PPID(0).Cmd("sleep").Process(),
}
if err := waitForProcessList(containers[1], expectedPL); err != nil {
t.Errorf("failed to wait for sleep to start: %v", err)
}
expectedPL = []*control.Process{
newProcessBuilder().PID(3).PPID(0).Cmd("sleep").Process(),
}
if err := waitForProcessList(containers[2], expectedPL); err != nil {
t.Errorf("failed to wait for sleep to start: %v", err)
}
// Root container runs in the root PID namespace and can see all
// processes.
@@ -371,14 +373,13 @@ func TestMultiPIDNSKill(t *testing.T) {
const processes = 3
testSpecs, ids := createSpecs(cmd, cmd)
// TODO: Uncomment after https://github.com/google/gvisor/pull/5519.
//testSpecs[1].Linux = &specs.Linux{
// Namespaces: []specs.LinuxNamespace{
// {
// Type: "pid",
// },
// },
//}
testSpecs[1].Linux = &specs.Linux{
Namespaces: []specs.LinuxNamespace{
{
Type: "pid",
},
},
}
containers, cleanup, err := startContainers(conf, testSpecs, ids)
if err != nil {