From 83b81769df037e1f2910f85e25aa7f8fe3e71ddc Mon Sep 17 00:00:00 2001 From: Mikkel Oscar Lyderik Larsen Date: Sun, 30 Apr 2017 17:36:55 +0200 Subject: [PATCH 1/4] Fix segfault in model.Tree(procs) Fixes crash in model.Tree(procs) which occurs when the list of procs passed, isn't in the expected order. E.g. if the first element doesn't have `PPID == 0`, it would crash writing to the uninitialized `parent.Children`. --- model/proc.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/model/proc.go b/model/proc.go index d73001bdb..1d1c1168b 100644 --- a/model/proc.go +++ b/model/proc.go @@ -44,16 +44,17 @@ func (p *Proc) Failing() bool { // Tree creates a process tree from a flat process list. func Tree(procs []*Proc) []*Proc { var ( - nodes []*Proc - parent *Proc + nodes []*Proc + parent *Proc + children []*Proc ) for _, proc := range procs { if proc.PPID == 0 { nodes = append(nodes, proc) parent = proc - continue + parent.Children = children } else { - parent.Children = append(parent.Children, proc) + children = append(children, proc) } } return nodes From 9f6448bb64dc6ef9df79d9a76b4f6db287f19cdf Mon Sep 17 00:00:00 2001 From: Thomas Boerger Date: Mon, 8 May 2017 23:38:54 +0200 Subject: [PATCH 2/4] Fixed typo for volume access --- drone/server/server.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drone/server/server.go b/drone/server/server.go index acd818ff2..6fa45da06 100644 --- a/drone/server/server.go +++ b/drone/server/server.go @@ -418,7 +418,7 @@ func setupEvilGlobals(c *cli.Context, v store.Store) { droneserver.Config.Server.Host = c.String("server-host") droneserver.Config.Server.Port = c.String("server-addr") droneserver.Config.Pipeline.Networks = c.StringSlice("network") - droneserver.Config.Pipeline.Volumes = c.StringSlice("volumes") + droneserver.Config.Pipeline.Volumes = c.StringSlice("volume") droneserver.Config.Pipeline.Privileged = c.StringSlice("escalate") // droneserver.Config.Server.Open = cli.Bool("open") // droneserver.Config.Server.Orgs = sliceToMap(cli.StringSlice("orgs")) From 2d47ebf3cf7002b5c6d7eb99b8bfea99d77430e2 Mon Sep 17 00:00:00 2001 From: Mikkel Oscar Lyderik Larsen Date: Tue, 9 May 2017 21:19:51 +0200 Subject: [PATCH 3/4] Revert "Fix segfault in model.Tree(procs)" This reverts commit 83b81769df037e1f2910f85e25aa7f8fe3e71ddc. --- model/proc.go | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/model/proc.go b/model/proc.go index 1d1c1168b..d73001bdb 100644 --- a/model/proc.go +++ b/model/proc.go @@ -44,17 +44,16 @@ func (p *Proc) Failing() bool { // Tree creates a process tree from a flat process list. func Tree(procs []*Proc) []*Proc { var ( - nodes []*Proc - parent *Proc - children []*Proc + nodes []*Proc + parent *Proc ) for _, proc := range procs { if proc.PPID == 0 { nodes = append(nodes, proc) parent = proc - parent.Children = children + continue } else { - children = append(children, proc) + parent.Children = append(parent.Children, proc) } } return nodes From 97946dad38c6385156bd30a73769f0b4778e3abe Mon Sep 17 00:00:00 2001 From: Mikkel Oscar Lyderik Larsen Date: Tue, 9 May 2017 21:20:33 +0200 Subject: [PATCH 4/4] Order procs by proc_pid --- store/datastore/sql/postgres/files/procs.sql | 1 + store/datastore/sql/postgres/sql_gen.go | 1 + 2 files changed, 2 insertions(+) diff --git a/store/datastore/sql/postgres/files/procs.sql b/store/datastore/sql/postgres/files/procs.sql index 7f336885b..3c80b8ac0 100644 --- a/store/datastore/sql/postgres/files/procs.sql +++ b/store/datastore/sql/postgres/files/procs.sql @@ -37,6 +37,7 @@ SELECT ,proc_environ FROM procs WHERE proc_build_id = $1 +ORDER BY proc_pid ASC -- name: procs-find-build-pid diff --git a/store/datastore/sql/postgres/sql_gen.go b/store/datastore/sql/postgres/sql_gen.go index 24f37a610..e14760336 100644 --- a/store/datastore/sql/postgres/sql_gen.go +++ b/store/datastore/sql/postgres/sql_gen.go @@ -164,6 +164,7 @@ SELECT ,proc_environ FROM procs WHERE proc_build_id = $1 +ORDER BY proc_pid ASC ` var procsFindBuildPid = `