mgmt
mgmt copied to clipboard
fatal error: concurrent map read and map write
Versions:
-
mgmt version (eg:
mgmt --version
): mgmt version 0.0.19-21-ga050cff-dirty -
operating system/distribution (eg:
uname -a
): Linux oxygen 5.1.1dell #1 SMP Tue May 14 09:39:53 CEST 2019 x86_64 GNU/Linux -
golang version (eg:
go version
): go version go1.12 linux/amd64
Description:
When running:
echo 1.0000001 > /tmp/test
import "os"
import "fmt"
import "math"
import "strings"
import "example"
$pow = example.str2float(strings.trim_space(os.readfile("/tmp/test")))
file "/tmp/test" {
content => if $pow > 1.0 { fmt.printf("%f", math.pow($pow, $pow)) } else { "1.0000001" },
}
Good report thanks!
mgmt version 0.0.19-21-ga050cff-dirty
Can you reproduce this with a clean version please. Dirty means there's some weird junk in there, which means it's very hard for me to know exactly what line in the trace corresponds to what :(
only patch is #517 which is required to reproduce
mgmt version 0.0.19-21-ga050cff
import "os"
import "fmt"
import "math"
import "strings"
import "example"
$str = strings.trim_space(os.readfile("/tmp/test"))
file "/tmp/test" {
content => if $str == "2" { "1" } else { "2" },
}
@roidelapluie Can you send the logs for that please?
head:
2019-05-14 15:41:08.985097 I | cli: lang: lexing/parsing...
2019-05-14 15:41:08.990087 I | cli: lang: init...
2019-05-14 15:41:08.990108 I | cli: lang: interpolating...
2019-05-14 15:41:08.990167 I | cli: lang: building scope...
2019-05-14 15:41:08.990259 I | cli: lang: running type unification...
2019-05-14 15:41:08.990491 I | cli: lang: input: examples/lang/exherbo.mcl
2019-05-14 15:41:08.990504 I | cli: lang: tree:
.
├── exherbo.mcl
└── metadata.yaml
This is: mgmt, version: 0.0.19-21-ga050cff
Copyright (C) 2013-2019+ James Shubin and the project contributors
Written by James Shubin <[email protected]> and the project contributors
15:41:08 main: start: 1557841268990519758
15:41:08 main: warning: working prefix directory is temporary!
15:41:08 main: working prefix is: /tmp/mgmt-oxygen-158773216
tail: race2.log
Tentative fix in: https://github.com/purpleidea/mgmt/commit/812fd57c33b7a6d1d432bc5bbea8ea679b13ce96
Thanks for finding this =D
Close! there is a second race.
goroutine 2289585 [running]:
runtime.throw(0x16e8c4d, 0x21)
/home/roidelapluie/godist/go/src/runtime/panic.go:617 +0x72 fp=0xc00031cbc0 sp=0xc00031cb90 pc=0x42f982
runtime.mapaccess1(0x14683c0, 0xc000408ff0, 0xc00031ce18, 0x19f9d20)
/home/roidelapluie/godist/go/src/runtime/map.go:413 +0x265 fp=0xc00031cc08 sp=0xc00031cbc0 pc=0x40fbe5
github.com/purpleidea/mgmt/engine/graph.(*Engine).Worker(0xc00022c460, 0x7f74a99d4f08, 0xc00045eb40, 0x0, 0x0)
/home/roidelapluie/go/src/github.com/purpleidea/mgmt/engine/graph/actions.go:260 +0x116 fp=0xc00031cf60 sp=0xc00031cc08 pc=0xc949b6
github.com/purpleidea/mgmt/engine/graph.(*Engine).Commit.func1.2.1(0xc00022c460, 0x7f74a99d4f08, 0xc00045eb40)
/home/roidelapluie/go/src/github.com/purpleidea/mgmt/engine/graph/engine.go:225 +0x135 fp=0xc00031cfc8 sp=0xc00031cf60 pc=0xc9ea35
runtime.goexit()
/home/roidelapluie/godist/go/src/runtime/asm_amd64.s:1337 +0x1 fp=0xc00031cfd0 sp=0xc00031cfc8 pc=0x45e9e1
created by github.com/purpleidea/mgmt/engine/graph.(*Engine).Commit.func1.2
/home/roidelapluie/go/src/github.com/purpleidea/mgmt/engine/graph/engine.go:212 +0x105
I wasn't able to reproduce this, but I did get a deadlock I think...
I also tried to speed things up with this variant:
# prepare with:
# sudo mkdir -p /tmp/tmpfs/
# sudo mount -t tmpfs -o size=1m tmpfs /mnt/tmpfs
# echo foo > /tmp/tmpfs/test
import "os"
import "strings"
$str = strings.trim_space(os.readfile("/mnt/tmpfs/test"))
file "/mnt/tmpfs/test" {
content => if $str == "2" { "1" } else { "2" },
}
Not sure if it helps, but maybe.
PC=0x4a1c8a m=0 sigcode=128
goroutine 329 [syscall]:
syscall.Syscall6(0xe8, 0x10, 0xc00099fd5c, 0x7, 0xffffffffffffffff, 0x0, 0x0, 0xffffffffffffffff, 0x0, 0x4)
/usr/lib/golang/src/syscall/asm_linux_amd64.s:44 +0x5 fp=0xc00099fc90 sp=0xc00099fc88 pc=0x4a1c65
syscall.EpollWait(0x10, 0xc00099fd5c, 0x7, 0x7, 0xffffffffffffffff, 0xffffffffffffffff, 0x1c02560, 0xc0003fb580)
/usr/lib/golang/src/syscall/zsyscall_linux_amd64.go:1714 +0x72 fp=0xc00099fd00 sp=0xc00099fc90 pc=0x4a1872
github.com/purpleidea/mgmt/vendor/gopkg.in/fsnotify%2ev1.(*fdPoller).wait(0xc000953320, 0xc00099fe00, 0x2, 0x0)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/vendor/gopkg.in/fsnotify.v1/inotify_poller.go:85 +0x91 fp=0xc00099fdc8 sp=0xc00099fd00 pc=0xb9e911
github.com/purpleidea/mgmt/vendor/gopkg.in/fsnotify%2ev1.(*Watcher).readEvents(0xc00095bc70)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/vendor/gopkg.in/fsnotify.v1/inotify.go:179 +0x195 fp=0xc0009affd8 sp=0xc00099fdc8 pc=0xb9dd35
runtime.goexit()
/usr/lib/golang/src/runtime/asm_amd64.s:1333 +0x1 fp=0xc0009affe0 sp=0xc0009affd8 pc=0x47a931
created by github.com/purpleidea/mgmt/vendor/gopkg.in/fsnotify%2ev1.NewWatcher
/home/james/code/gopath/src/github.com/purpleidea/mgmt/vendor/gopkg.in/fsnotify.v1/inotify.go:58 +0x19b
goroutine 1 [semacquire]:
sync.runtime_Semacquire(0xc000254394)
/usr/lib/golang/src/runtime/sema.go:56 +0x39
sync.(*WaitGroup).Wait(0xc000254394)
/usr/lib/golang/src/sync/waitgroup.go:130 +0x64
github.com/purpleidea/mgmt/lib.(*Main).Run(0xc000148000, 0x0, 0x0)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lib/main.go:918 +0x145c
github.com/purpleidea/mgmt/lib.run(0xc0000da420, 0x1956b39, 0x4, 0x1c1b9e0, 0xc000424b00, 0x0, 0x0)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lib/run.go:174 +0xe1b
github.com/purpleidea/mgmt/lib.CLI.func1(0xc0000da420, 0xc000424b00, 0xc0000da420)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lib/cli.go:260 +0x53
github.com/urfave/cli.HandleAction(0x15feee0, 0xc000226c00, 0xc0000da420, 0x0, 0xc00041d4a0)
/home/james/code/gopath/src/github.com/urfave/cli/app.go:502 +0xbe
github.com/urfave/cli.Command.Run(0x1956b39, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc00027b8a0, 0x1d, 0x0, ...)
/home/james/code/gopath/src/github.com/urfave/cli/command.go:165 +0x459
github.com/urfave/cli.(*App).RunAsSubcommand(0xc000494700, 0xc0000da160, 0x0, 0x0)
/home/james/code/gopath/src/github.com/urfave/cli/app.go:383 +0x827
github.com/urfave/cli.Command.startApp(0x19561e9, 0x3, 0x0, 0x0, 0xc00041a8b0, 0x1, 0x1, 0x19561e9, 0x3, 0x0, ...)
/home/james/code/gopath/src/github.com/urfave/cli/command.go:377 +0x808
github.com/urfave/cli.Command.Run(0x19561e9, 0x3, 0x0, 0x0, 0xc00041a8b0, 0x1, 0x1, 0x19561e9, 0x3, 0x0, ...)
/home/james/code/gopath/src/github.com/urfave/cli/command.go:103 +0x80f
github.com/urfave/cli.(*App).Run(0xc000494540, 0xc00003a050, 0x5, 0x5, 0x0, 0x0)
/home/james/code/gopath/src/github.com/urfave/cli/app.go:259 +0x6bb
github.com/purpleidea/mgmt/lib.CLI(0x1bef914, 0x4, 0x1bfbe20, 0x13, 0x1460000, 0x0, 0x0)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lib/cli.go:386 +0x260d
main.main()
/home/james/code/gopath/src/github.com/purpleidea/mgmt/main.go:44 +0x5c
goroutine 51 [chan receive]:
github.com/purpleidea/mgmt/vendor/github.com/coreos/etcd/pkg/logutil.(*MergeLogger).outputLoop(0xc0003ebb00)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/vendor/github.com/coreos/etcd/pkg/logutil/merge_logger.go:174 +0x39e
created by github.com/purpleidea/mgmt/vendor/github.com/coreos/etcd/pkg/logutil.NewMergeLogger
/home/james/code/gopath/src/github.com/purpleidea/mgmt/vendor/github.com/coreos/etcd/pkg/logutil/merge_logger.go:92 +0x80
goroutine 98 [chan receive]:
github.com/purpleidea/mgmt/vendor/github.com/coreos/etcd/pkg/logutil.(*MergeLogger).outputLoop(0xc0003ebf80)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/vendor/github.com/coreos/etcd/pkg/logutil/merge_logger.go:174 +0x39e
created by github.com/purpleidea/mgmt/vendor/github.com/coreos/etcd/pkg/logutil.NewMergeLogger
/home/james/code/gopath/src/github.com/purpleidea/mgmt/vendor/github.com/coreos/etcd/pkg/logutil/merge_logger.go:92 +0x80
goroutine 101 [chan receive]:
github.com/purpleidea/mgmt/vendor/github.com/coreos/etcd/pkg/logutil.(*MergeLogger).outputLoop(0xc0004ec120)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/vendor/github.com/coreos/etcd/pkg/logutil/merge_logger.go:174 +0x39e
created by github.com/purpleidea/mgmt/vendor/github.com/coreos/etcd/pkg/logutil.NewMergeLogger
/home/james/code/gopath/src/github.com/purpleidea/mgmt/vendor/github.com/coreos/etcd/pkg/logutil/merge_logger.go:92 +0x80
goroutine 106 [syscall]:
os/signal.signal_recv(0x1c096c0)
/usr/lib/golang/src/runtime/sigqueue.go:139 +0x9c
os/signal.loop()
/usr/lib/golang/src/os/signal/signal_unix.go:23 +0x22
created by os/signal.init.0
/usr/lib/golang/src/os/signal/signal_unix.go:29 +0x41
goroutine 130 [select]:
github.com/purpleidea/mgmt/lib.run.func2(0xc0004acac0, 0xc000148000, 0xc00004e720)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lib/run.go:147 +0x1c4
created by github.com/purpleidea/mgmt/lib.run
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lib/run.go:138 +0xe0d
goroutine 132 [select, 1 minutes]:
github.com/purpleidea/mgmt/converger.(*Coordinator).Run(0xc0000d8230, 0x1)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/converger/converger.go:170 +0x2bc
created by github.com/purpleidea/mgmt/lib.(*Main).Run
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lib/main.go:346 +0x6ee
goroutine 242 [select, 1 minutes]:
github.com/purpleidea/mgmt/converger.(*Coordinator).Pause(0xc0000d8230, 0x1c1d6c0, 0xc000315380)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/converger/converger.go:224 +0x15a
github.com/purpleidea/mgmt/lib.(*Main).Run.func15(0x19c29c8, 0xc000254394, 0xc00000e5c0, 0xc0005085b0, 0xc00000e5c8, 0xc000148000, 0xc0004acad8, 0x5, 0xc00054b2c0, 0xc000485900, ...)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lib/main.go:686 +0xf97
created by github.com/purpleidea/mgmt/lib.(*Main).Run
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lib/main.go:493 +0x12c4
goroutine 275 [select, 1 minutes]:
github.com/purpleidea/mgmt/lang.(*GAPI).Next.func1(0xc0003fefc0, 0xc000018de0)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lang/gapi.go:478 +0x1cf
created by github.com/purpleidea/mgmt/lang.(*GAPI).Next
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lang/gapi.go:454 +0x8b
goroutine 330 [select, 1 minutes]:
github.com/purpleidea/mgmt/recwatch.(*RecWatcher).Watch(0xc00060b2c0, 0x19c4a08, 0xc00060b30c)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/recwatch/recwatch.go:180 +0x5f5
github.com/purpleidea/mgmt/recwatch.(*RecWatcher).Init.func1(0xc00060b2c0)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/recwatch/recwatch.go:93 +0x73
created by github.com/purpleidea/mgmt/recwatch.(*RecWatcher).Init
/home/james/code/gopath/src/github.com/purpleidea/mgmt/recwatch/recwatch.go:91 +0x1b1
goroutine 307 [select, 1 minutes]:
github.com/purpleidea/mgmt/lang/funcs/core/os.(*ReadFileFunc).Stream(0xc00060b1a0, 0x0, 0x0)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lang/funcs/core/os/readfile_func.go:87 +0x1b0
github.com/purpleidea/mgmt/lang/funcs.(*Engine).Run.func3(0xc000209130, 0x1bfe060, 0xc0008b4960)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lang/funcs/engine.go:416 +0xef
created by github.com/purpleidea/mgmt/lang/funcs.(*Engine).Run
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lang/funcs/engine.go:410 +0x2c7
goroutine 308 [chan receive, 1 minutes]:
github.com/purpleidea/mgmt/lang/funcs.(*Engine).Run.func4(0xc000209130, 0x1bfe060, 0xc0008b4960)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lang/funcs/engine.go:438 +0x18f
created by github.com/purpleidea/mgmt/lang/funcs.(*Engine).Run
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lang/funcs/engine.go:433 +0x321
goroutine 309 [chan receive, 1 minutes]:
github.com/purpleidea/mgmt/lang/funcs.(*Engine).Run.func2(0xc000209130, 0xc000956540, 0x1, 0x1, 0x1bfe060, 0xc0008b49b0)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lang/funcs/engine.go:363 +0x126
created by github.com/purpleidea/mgmt/lang/funcs.(*Engine).Run
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lang/funcs/engine.go:357 +0x413
goroutine 310 [select, 1 minutes]:
github.com/purpleidea/mgmt/lang/funcs/simple.(*simpleFunc).Stream(0xc000945000, 0x0, 0x0)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lang/funcs/simple/simple.go:93 +0x346
github.com/purpleidea/mgmt/lang/funcs.(*Engine).Run.func3(0xc000209130, 0x1bfe060, 0xc0008b49b0)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lang/funcs/engine.go:416 +0xef
created by github.com/purpleidea/mgmt/lang/funcs.(*Engine).Run
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lang/funcs/engine.go:410 +0x2c7
goroutine 311 [chan receive, 1 minutes]:
github.com/purpleidea/mgmt/lang/funcs.(*Engine).Run.func4(0xc000209130, 0x1bfe060, 0xc0008b49b0)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lang/funcs/engine.go:438 +0x18f
created by github.com/purpleidea/mgmt/lang/funcs.(*Engine).Run
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lang/funcs/engine.go:433 +0x321
goroutine 312 [chan receive, 1 minutes]:
github.com/purpleidea/mgmt/lang/funcs.(*Engine).Run.func2(0xc000209130, 0xc000956560, 0x1, 0x1, 0x1bfe280, 0xc000612c00)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lang/funcs/engine.go:363 +0x126
created by github.com/purpleidea/mgmt/lang/funcs.(*Engine).Run
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lang/funcs/engine.go:357 +0x413
goroutine 313 [select, 1 minutes]:
github.com/purpleidea/mgmt/lang/funcs/structs.(*VarFunc).Stream(0xc00060b200, 0x0, 0x0)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lang/funcs/structs/var.go:96 +0x111
github.com/purpleidea/mgmt/lang/funcs.(*Engine).Run.func3(0xc000209130, 0x1bfe280, 0xc000612c00)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lang/funcs/engine.go:416 +0xef
created by github.com/purpleidea/mgmt/lang/funcs.(*Engine).Run
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lang/funcs/engine.go:410 +0x2c7
goroutine 314 [chan receive, 1 minutes]:
github.com/purpleidea/mgmt/lang/funcs.(*Engine).Run.func4(0xc000209130, 0x1bfe280, 0xc000612c00)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lang/funcs/engine.go:438 +0x18f
created by github.com/purpleidea/mgmt/lang/funcs.(*Engine).Run
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lang/funcs/engine.go:433 +0x321
goroutine 319 [chan receive, 1 minutes]:
github.com/purpleidea/mgmt/lang/funcs.(*Engine).Run.func2(0xc000209130, 0xc0009454c0, 0x3, 0x4, 0x1bfe060, 0xc0008b4a00)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lang/funcs/engine.go:363 +0x126
created by github.com/purpleidea/mgmt/lang/funcs.(*Engine).Run
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lang/funcs/engine.go:357 +0x413
goroutine 320 [select, 1 minutes]:
github.com/purpleidea/mgmt/lang/funcs.(*OperatorPolyFunc).Stream(0xc000945040, 0x0, 0x0)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lang/funcs/operator_polyfunc.go:565 +0x43e
github.com/purpleidea/mgmt/lang/funcs.(*Engine).Run.func3(0xc000209130, 0x1bfe060, 0xc0008b4a00)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lang/funcs/engine.go:416 +0xef
created by github.com/purpleidea/mgmt/lang/funcs.(*Engine).Run
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lang/funcs/engine.go:410 +0x2c7
goroutine 321 [chan receive, 1 minutes]:
github.com/purpleidea/mgmt/lang/funcs.(*Engine).Run.func4(0xc000209130, 0x1bfe060, 0xc0008b4a00)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lang/funcs/engine.go:438 +0x18f
created by github.com/purpleidea/mgmt/lang/funcs.(*Engine).Run
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lang/funcs/engine.go:433 +0x321
goroutine 324 [chan receive, 1 minutes]:
github.com/purpleidea/mgmt/lang/funcs.(*Engine).Run.func2(0xc000209130, 0xc000945580, 0x3, 0x4, 0x1bfe100, 0xc000225600)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lang/funcs/engine.go:363 +0x126
created by github.com/purpleidea/mgmt/lang/funcs.(*Engine).Run
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lang/funcs/engine.go:357 +0x413
goroutine 325 [select, 1 minutes]:
github.com/purpleidea/mgmt/lang/funcs/structs.(*IfFunc).Stream(0xc000945180, 0x0, 0x0)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lang/funcs/structs/if.go:81 +0x10b
github.com/purpleidea/mgmt/lang/funcs.(*Engine).Run.func3(0xc000209130, 0x1bfe100, 0xc000225600)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lang/funcs/engine.go:416 +0xef
created by github.com/purpleidea/mgmt/lang/funcs.(*Engine).Run
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lang/funcs/engine.go:410 +0x2c7
goroutine 326 [chan receive, 1 minutes]:
github.com/purpleidea/mgmt/lang/funcs.(*Engine).Run.func4(0xc000209130, 0x1bfe100, 0xc000225600)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lang/funcs/engine.go:438 +0x18f
created by github.com/purpleidea/mgmt/lang/funcs.(*Engine).Run
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lang/funcs/engine.go:433 +0x321
goroutine 327 [select, 1 minutes]:
github.com/purpleidea/mgmt/lang/funcs.(*Engine).Run.func5(0xc000209130)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lang/funcs/engine.go:507 +0x132
created by github.com/purpleidea/mgmt/lang/funcs.(*Engine).Run
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lang/funcs/engine.go:500 +0x37d
goroutine 328 [select, 1 minutes]:
github.com/purpleidea/mgmt/lang.(*Lang).Init.func6(0xc0002de500, 0xc00027fc80, 0xc000045360, 0xc000554750)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lang/lang.go:269 +0x16c
created by github.com/purpleidea/mgmt/lang.(*Lang).Init
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lang/lang.go:262 +0xcbe
goroutine 331 [select, 1 minutes]:
github.com/purpleidea/mgmt/lang/funcs/core/os.(*ReadFileFunc).Stream.func2(0xc00060b1a0, 0xc0003f6348)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lang/funcs/core/os/readfile_func.go:141 +0x10e
created by github.com/purpleidea/mgmt/lang/funcs/core/os.(*ReadFileFunc).Stream
/home/james/code/gopath/src/github.com/purpleidea/mgmt/lang/funcs/core/os/readfile_func.go:137 +0x431
goroutine 487625 [select, 1 minutes]:
github.com/purpleidea/mgmt/converger.(*UID).StartTimer.func1(0xc000314840)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/converger/converger.go:440 +0xe5
created by github.com/purpleidea/mgmt/converger.(*UID).StartTimer
/home/james/code/gopath/src/github.com/purpleidea/mgmt/converger/converger.go:437 +0x1a2
goroutine 487626 [syscall, 1 minutes]:
syscall.Syscall6(0xe8, 0x14, 0xc00072dd5c, 0x7, 0xffffffffffffffff, 0x0, 0x0, 0x0, 0xc00072dd10, 0x453953)
/usr/lib/golang/src/syscall/asm_linux_amd64.s:44 +0x5
syscall.EpollWait(0x14, 0xc00072dd5c, 0x7, 0x7, 0xffffffffffffffff, 0x300000002, 0xc0008c2180, 0xc00072dd68)
/usr/lib/golang/src/syscall/zsyscall_linux_amd64.go:1714 +0x72
github.com/purpleidea/mgmt/vendor/gopkg.in/fsnotify%2ev1.(*fdPoller).wait(0xc0005e0760, 0x19c3600, 0xc0005e0760, 0x0)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/vendor/gopkg.in/fsnotify.v1/inotify_poller.go:85 +0x91
github.com/purpleidea/mgmt/vendor/gopkg.in/fsnotify%2ev1.(*Watcher).readEvents(0xc000a973b0)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/vendor/gopkg.in/fsnotify.v1/inotify.go:179 +0x195
created by github.com/purpleidea/mgmt/vendor/gopkg.in/fsnotify%2ev1.NewWatcher
/home/james/code/gopath/src/github.com/purpleidea/mgmt/vendor/gopkg.in/fsnotify.v1/inotify.go:58 +0x19b
goroutine 487622 [select, 1 minutes]:
github.com/purpleidea/mgmt/engine/graph.(*Engine).Worker(0xc000164960, 0x7f19bd3027f8, 0xc0009843c0, 0x0, 0x0)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/engine/graph/actions.go:369 +0x6b3
github.com/purpleidea/mgmt/engine/graph.(*Engine).Commit.func1.2.1(0xc000164960, 0x7f19bd3027f8, 0xc0009843c0)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/engine/graph/engine.go:225 +0x135
created by github.com/purpleidea/mgmt/engine/graph.(*Engine).Commit.func1.2
/home/james/code/gopath/src/github.com/purpleidea/mgmt/engine/graph/engine.go:212 +0x105
goroutine 487623 [select, 1 minutes]:
github.com/purpleidea/mgmt/engine/resources.(*FileRes).Watch(0xc0009843c0, 0x0, 0x0)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/engine/resources/file.go:225 +0x1c4
github.com/purpleidea/mgmt/engine/graph.(*Engine).Worker.func1(0xc000164960, 0x7f19bd3027f8, 0xc0009843c0, 0x1c25a60, 0xc0009843c0)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/engine/graph/actions.go:327 +0x8d9
created by github.com/purpleidea/mgmt/engine/graph.(*Engine).Worker
/home/james/code/gopath/src/github.com/purpleidea/mgmt/engine/graph/actions.go:270 +0x41d
goroutine 487624 [select, 1 minutes]:
github.com/purpleidea/mgmt/engine/graph.(*Engine).Worker.func1.1(0xc000164960, 0x7f19bd3027f8, 0xc0009843c0)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/engine/graph/actions.go:283 +0x351
created by github.com/purpleidea/mgmt/engine/graph.(*Engine).Worker.func1
/home/james/code/gopath/src/github.com/purpleidea/mgmt/engine/graph/actions.go:279 +0x1e4
goroutine 487627 [select, 1 minutes]:
github.com/purpleidea/mgmt/recwatch.(*RecWatcher).Watch(0xc000367800, 0x19c4a08, 0xc00036784c)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/recwatch/recwatch.go:180 +0x5f5
github.com/purpleidea/mgmt/recwatch.(*RecWatcher).Init.func1(0xc000367800)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/recwatch/recwatch.go:93 +0x73
created by github.com/purpleidea/mgmt/recwatch.(*RecWatcher).Init
/home/james/code/gopath/src/github.com/purpleidea/mgmt/recwatch/recwatch.go:91 +0x1b1
goroutine 487628 [select, 1 minutes]:
github.com/purpleidea/mgmt/converger.(*UID).StartTimer.func1(0xc000314900)
/home/james/code/gopath/src/github.com/purpleidea/mgmt/converger/converger.go:440 +0xe5
created by github.com/purpleidea/mgmt/converger.(*UID).StartTimer
/home/james/code/gopath/src/github.com/purpleidea/mgmt/converger/converger.go:437 +0x1a2
rax 0xfffffffffffffffc
rbx 0x0
rcx 0x4a1c8a
rdx 0x7
rdi 0x10
rsi 0xc00099fd5c
rbp 0xc00099fcf0
rsp 0xc00099fc88
r8 0x0
r9 0x0
r10 0xffffffffffffffff
r11 0x212
r12 0x159
r13 0x158
r14 0x200
r15 0x0
rip 0x4a1c8a
rflags 0x212
cs 0x33
fs 0x0
gs 0x0
real 2m46.132s
user 1m5.339s
sys 0m34.205s
I believe this is fixed in the latest release. If you can reproduce this or anything similar, please have a go! We have lambdas now!