xorpaul / g10k

my r10k fork in Go
Apache License 2.0
125 stars 50 forks source link

g10k segfaults under runuser or sudo #134

Closed pillarsdotnet closed 5 years ago

pillarsdotnet commented 5 years ago

runuser:

[robvin@cusdpupcom01 puppet]$ sudo /usr/sbin/runuser -u puppet -- /usr/local/sbin/g10k -config /etc/puppetlabs/g10k/g10k.yaml deploy environment -force -p
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x28 pc=0x8591f7]

goroutine 1 [running]:
main.isDir(0xc000090820, 0x16, 0x1)
        /home/andpaul/dev/go/src/github.com/xorpaul/g10k/helper.go:95 +0xb7
main.checkDirAndCreate(0xc000090820, 0x16, 0x9141d7, 0xe, 0x6, 0xc000090820)
        /home/andpaul/dev/go/src/github.com/xorpaul/g10k/helper.go:123 +0x155
main.readConfigfile(0x7ffe4bdad83f, 0x1e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /home/andpaul/dev/go/src/github.com/xorpaul/g10k/config.go:51 +0x61b
main.main()
        /home/andpaul/dev/go/src/github.com/xorpaul/g10k/g10k.go:237 +0xf8f

sudo:

[robvin@cusdpupcom01 puppet]$ sudo /usr/sbin/runuser -u puppet -- /usr/local/sbin/g10k -config /etc/puppetlabs/g10k/g10k.yaml deploy environment -force -p
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x28 pc=0x8591f7]

goroutine 1 [running]:
main.isDir(0xc000090820, 0x16, 0x1)
        /home/andpaul/dev/go/src/github.com/xorpaul/g10k/helper.go:95 +0xb7
main.checkDirAndCreate(0xc000090820, 0x16, 0x9141d7, 0xe, 0x6, 0xc000090820)
        /home/andpaul/dev/go/src/github.com/xorpaul/g10k/helper.go:123 +0x155
main.readConfigfile(0x7ffe4bdad83f, 0x1e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /home/andpaul/dev/go/src/github.com/xorpaul/g10k/config.go:51 +0x61b
main.main()
        /home/andpaul/dev/go/src/github.com/xorpaul/g10k/g10k.go:237 +0xf8f
[robvin@cusdpupcom01 puppet]$ sudo -u puppet /usr/local/sbin/g10k -config /etc/puppetlabs/g10k/g10k.yaml deploy environment -force -p
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x28 pc=0x8591f7]

goroutine 1 [running]:
main.isDir(0xc00008e820, 0x16, 0x1)
        /home/andpaul/dev/go/src/github.com/xorpaul/g10k/helper.go:95 +0xb7
main.checkDirAndCreate(0xc00008e820, 0x16, 0x9141d7, 0xe, 0x6, 0xc00008e820)
        /home/andpaul/dev/go/src/github.com/xorpaul/g10k/helper.go:123 +0x155
main.readConfigfile(0x7ffceba08858, 0x1e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
        /home/andpaul/dev/go/src/github.com/xorpaul/g10k/config.go:51 +0x61b
main.main()
        /home/andpaul/dev/go/src/github.com/xorpaul/g10k/g10k.go:237 +0xf8f
[robvin@cusdpupcom01 puppet]$
pillarsdotnet commented 5 years ago

File permissions look okay:

[robvin@cusdpupcom01 puppet]$ sudo -u puppet ls -ld /etc/puppetlabs/g10k/g10k.yaml /etc/puppetlabs/code/environments
drwxrwx---. 2 root puppet   6 Jul  2 13:39 /etc/puppetlabs/code/environments
-r--r-----. 1 root puppet 297 Jun 25 03:23 /etc/puppetlabs/g10k/g10k.yaml
pillarsdotnet commented 5 years ago

On the suspicion that this may be related to selinux, I'm setting SELINUX=permissive, rebooting, and trying again...

pillarsdotnet commented 5 years ago

Nope; same segfaults as before.

pillarsdotnet commented 5 years ago

Nevermind; I figured it out. The g10k cachedir was still owned by root.