Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Concurrent Map Read/Write Panic When Running Tests #158

Closed
rebeccaskinner opened this issue Aug 16, 2016 · 1 comment
Closed

Concurrent Map Read/Write Panic When Running Tests #158

rebeccaskinner opened this issue Aug 16, 2016 · 1 comment
Assignees
Labels

Comments

@rebeccaskinner
Copy link
Contributor

rebeccaskinner commented Aug 16, 2016

A concurrent map read/write caused a panic while runing make test on branch feature/resource-return-refactor.

Output:

fatal error: concurrent map read and map write

goroutine 1 [running]:
runtime.throw(0x49e200, 0x21)
        /usr/local/go/src/runtime/panic.go:566 +0x95 fp=0xc4201cb740 sp=0xc4201cb720
runtime.mapaccess1(0x418360, 0xc4202990b0, 0xc4201cb7a8, 0xc4202c7cc0)
        /usr/local/go/src/runtime/hashmap.go:286 +0x23f fp=0xc4201cb788 sp=0xc4201cb740
github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*Graph).DownEdges(0xc4202c08a0, 0x3f7200, 0xc4202c7cc0, 0xc420220840)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/graph.go:134 +0xa4 fp=0xc4201cb7d8 sp=0xc4201cb788
github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk(0xc4202c08a0, 0xc420220840, 0x43faa0, 0xc4202b5e01)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:189 +0x30f fp=0xc4201cba40 sp=0xc4201cb7d8
github.com/asteris-llc/converge/graph.walk(0x691420, 0xc420010ac0, 0xc4202c0ed0, 0xc42013d820, 0x32, 0xe0)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/graph/graph.go:173 +0xa4 fp=0xc4201cba78 sp=0xc4201cba40
github.com/asteris-llc/converge/graph.transform(0x691420, 0xc420010ac0, 0xc4202238f0, 0x4ce708, 0x4ce710, 0x1e, 0x0, 0x0)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/graph/graph.go:342 +0xba fp=0xc4201cbac8 sp=0xc4201cba78
github.com/asteris-llc/converge/graph.(*Graph).Transform(0xc4202238f0, 0x691420, 0xc420010ac0, 0x4ce710, 0xc4202c7bc0, 0xc4202b4fa0, 0x17)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/graph/graph.go:239 +0x55 fp=0xc4201cbb18 sp=0xc4201cbac8
github.com/asteris-llc/converge/load.ResolveDependencies(0x691420, 0xc420010ac0, 0xc4202238f0, 0x10, 0xc4202238f0, 0x0)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/load/dependencyresolver.go:65 +0xcd fp=0xc4201cbb80 sp=0xc4201cbb18
github.com/asteris-llc/converge/load.Load(0x691420, 0xc420010ac0, 0x7fff5fbffa63, 0x10, 0x1, 0x0, 0x0)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/load/load.go:30 +0xc8 fp=0xc4201cbbc8 sp=0xc4201cbb80
github.com/asteris-llc/converge/cmd.glob..func13(0x6accc0, 0xc42009c500, 0x8, 0x8)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/cmd/validate.go:43 +0xdd fp=0xc4201cbca0 sp=0xc4201cbbc8
github.com/asteris-llc/converge/vendor/github.com/spf13/cobra.(*Command).execute(0x6accc0, 0xc42009c380, 0x8, 0x8, 0x6accc0, 0xc42009c380)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/spf13/cobra/command.go:565 +0x411 fp=0xc4201cbd60 sp=0xc4201cbca0
github.com/asteris-llc/converge/vendor/github.com/spf13/cobra.(*Command).ExecuteC(0x6ac8c0, 0xc420074058, 0x0, 0xc420051f28)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/spf13/cobra/command.go:651 +0x367 fp=0xc4201cbeb0 sp=0xc4201cbd60
github.com/asteris-llc/converge/vendor/github.com/spf13/cobra.(*Command).Execute(0x6ac8c0, 0x0, 0x0)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/spf13/cobra/command.go:610 +0x2b fp=0xc4201cbee0 sp=0xc4201cbeb0
github.com/asteris-llc/converge/cmd.Execute()
        /Users/rebecca/go/src/github.com/asteris-llc/converge/cmd/root.go:59 +0x31 fp=0xc4201cbf30 sp=0xc4201cbee0
main.main()
        /Users/rebecca/go/src/github.com/asteris-llc/converge/main.go:20 +0x14 fp=0xc4201cbf38 sp=0xc4201cbf30
runtime.main()
        /usr/local/go/src/runtime/proc.go:183 +0x1f4 fp=0xc4201cbf90 sp=0xc4201cbf38
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:2086 +0x1 fp=0xc4201cbf98 sp=0xc4201cbf90

goroutine 17 [syscall, locked to thread]:
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:2086 +0x1

goroutine 5 [syscall]:
os/signal.signal_recv(0x0)
        /usr/local/go/src/runtime/sigqueue.go:116 +0x157
os/signal.loop()
        /usr/local/go/src/os/signal/signal_unix.go:22 +0x22
created by os/signal.init.1
        /usr/local/go/src/os/signal/signal_unix.go:28 +0x41

goroutine 6 [select, locked to thread]:
runtime.gopark(0x4cf410, 0x0, 0x48eedf, 0x6, 0x18, 0x2)
        /usr/local/go/src/runtime/proc.go:259 +0x13a
runtime.selectgoImpl(0xc42002e730, 0x0, 0x18)
        /usr/local/go/src/runtime/select.go:423 +0x11d9
runtime.selectgo(0xc42002e730)
        /usr/local/go/src/runtime/select.go:238 +0x1c
runtime.ensureSigM.func1()
        /usr/local/go/src/runtime/signal1_unix.go:304 +0x2d1
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:2086 +0x1

goroutine 7 [chan receive]:
github.com/asteris-llc/converge/cmd.GracefulExit.func1(0xc420074660, 0xc42012e040)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/cmd/graceful_exit.go:32 +0x7c
created by github.com/asteris-llc/converge/cmd.GracefulExit
        /Users/rebecca/go/src/github.com/asteris-llc/converge/cmd/graceful_exit.go:44 +0xbf

goroutine 79 [semacquire]:
sync.runtime_Semacquire(0xc42012f9ac)
        /usr/local/go/src/runtime/sema.go:47 +0x30
sync.(*WaitGroup).Wait(0xc42012f9a0)
        /usr/local/go/src/sync/waitgroup.go:131 +0x97
github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk.func1(0xc420075d40, 0xc42012f9a0)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:173 +0x53
created by github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:174 +0xeb

goroutine 361 [chan receive]:
github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk.func3(0xc42012f9a0, 0xc420220840, 0xc42012f9b0, 0xc420220870, 0xc42012f9c0, 0x3f7200, 0xc420187450, 0xc420306240, 0xc420306ba0)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:237 +0xae
created by github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:247 +0x618

goroutine 360 [semacquire]:
sync.runtime_Semacquire(0xc42012f9b4)
        /usr/local/go/src/runtime/sema.go:47 +0x30
sync.(*Mutex).Lock(0xc42012f9b0)
        /usr/local/go/src/sync/mutex.go:85 +0xd0
github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk.func2(0xc42012f9b0, 0xc420220870, 0x3f7200, 0xc420187450, 0x6cf6b0, 0x0, 0x0, 0x6cf6b0, 0x0, 0x0, ...)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:218 +0x494
created by github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:229 +0x58b

goroutine 358 [semacquire]:
sync.runtime_Semacquire(0xc42012f9b4)
        /usr/local/go/src/runtime/sema.go:47 +0x30
sync.(*Mutex).Lock(0xc42012f9b0)
        /usr/local/go/src/sync/mutex.go:85 +0xd0
github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk.func2(0xc42012f9b0, 0xc420220870, 0x3f7200, 0xc4202a03f0, 0x6cf6b0, 0x0, 0x0, 0x6cf6b0, 0x0, 0x0, ...)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:218 +0x494
created by github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:229 +0x58b

goroutine 365 [runnable]:
github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk.func3(0xc42012f9a0, 0xc420220840, 0xc42012f9b0, 0xc420220870, 0xc42012f9c0, 0x3f7200, 0xc4202c7c20, 0xc420306300, 0xc420306c60)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:232
created by github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:247 +0x618

goroutine 364 [runnable]:
github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk.func2(0xc42012f9b0, 0xc420220870, 0x3f7200, 0xc4202c7c20, 0x6cf6b0, 0x0, 0x0, 0x6cf6b0, 0x0, 0x0, ...)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:200
created by github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:229 +0x58b

goroutine 363 [runnable]:
github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk.func3(0xc42012f9a0, 0xc420220840, 0xc42012f9b0, 0xc420220870, 0xc42012f9c0, 0x3f7200, 0xc42022c6f0, 0xc4203062a0, 0xc420306c00)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:232
created by github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:247 +0x618

goroutine 362 [runnable]:
github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk.func2(0xc42012f9b0, 0xc420220870, 0x3f7200, 0xc42022c6f0, 0x6cf6b0, 0x0, 0x0, 0x6cf6b0, 0x0, 0x0, ...)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:200
created by github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:229 +0x58b

goroutine 359 [chan receive]:
github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk.func3(0xc42012f9a0, 0xc420220840, 0xc42012f9b0, 0xc420220870, 0xc42012f9c0, 0x3f7200, 0xc4202a03f0, 0xc4203061e0, 0xc420306b40)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:237 +0xae
created by github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:247 +0x618

goroutine 349 [chan receive]:
github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk.func3(0xc42012f9a0, 0xc420220840, 0xc42012f9b0, 0xc420220870, 0xc42012f9c0, 0x3f7200, 0xc42012f580, 0xc420306000, 0xc420306960)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:237 +0xae
created by github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:247 +0x618

goroutine 354 [runnable]:
github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk.func2(0xc42012f9b0, 0xc420220870, 0x3f7200, 0xc420187480, 0x6cf6b0, 0x0, 0x0, 0x6cf6b0, 0x0, 0x0, ...)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:200
created by github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:229 +0x58b

goroutine 345 [chan receive]:
github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk.func3(0xc42012f9a0, 0xc420220840, 0xc42012f9b0, 0xc420220870, 0xc42012f9c0, 0x3f7200, 0xc42012f840, 0xc420075f20, 0xc4203068a0)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:237 +0xae
created by github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:247 +0x618

goroutine 352 [semacquire]:
sync.runtime_Semacquire(0xc42012f9b4)
        /usr/local/go/src/runtime/sema.go:47 +0x30
sync.(*Mutex).Lock(0xc42012f9b0)
        /usr/local/go/src/sync/mutex.go:85 +0xd0
github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk.func2(0xc42012f9b0, 0xc420220870, 0x3f7200, 0xc4201f3b10, 0x6cf6b0, 0x0, 0x0, 0x6cf6b0, 0x0, 0x0, ...)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:218 +0x494
created by github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:229 +0x58b

goroutine 350 [semacquire]:
sync.runtime_Semacquire(0xc42012f9b4)
        /usr/local/go/src/runtime/sema.go:47 +0x30
sync.(*Mutex).Lock(0xc42012f9b0)
        /usr/local/go/src/sync/mutex.go:85 +0xd0
github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk.func2(0xc42012f9b0, 0xc420220870, 0x3f7200, 0xc4201f3ac0, 0x6cf6b0, 0x0, 0x0, 0x6cf6b0, 0x0, 0x0, ...)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:218 +0x494
created by github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:229 +0x58b

goroutine 357 [runnable]:
github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk.func3(0xc42012f9a0, 0xc420220840, 0xc42012f9b0, 0xc420220870, 0xc42012f9c0, 0x3f7200, 0xc4202c7c90, 0xc420306180, 0xc420306ae0)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:232
created by github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:247 +0x618

goroutine 353 [runnable]:
github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk.func3(0xc42012f9a0, 0xc420220840, 0xc42012f9b0, 0xc420220870, 0xc42012f9c0, 0x3f7200, 0xc4201f3b10, 0xc4203060c0, 0xc420306a20)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:232
created by github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:247 +0x618

goroutine 356 [runnable]:
github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk.func2(0xc42012f9b0, 0xc420220870, 0x3f7200, 0xc4202c7c90, 0x6cf6b0, 0x0, 0x0, 0x6cf6b0, 0x0, 0x0, ...)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:200
created by github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:229 +0x58b

goroutine 355 [runnable]:
github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk.func3(0xc42012f9a0, 0xc420220840, 0xc42012f9b0, 0xc420220870, 0xc42012f9c0, 0x3f7200, 0xc420187480, 0xc420306120, 0xc420306a80)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:232
created by github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:247 +0x618

goroutine 347 [runnable]:
github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk.func3(0xc42012f9a0, 0xc420220840, 0xc42012f9b0, 0xc420220870, 0xc42012f9c0, 0x3f7200, 0xc4202a0410, 0xc420075f80, 0xc420306900)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:237 +0xae
created by github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:247 +0x618

goroutine 351 [chan receive]:
github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk.func3(0xc42012f9a0, 0xc420220840, 0xc42012f9b0, 0xc420220870, 0xc42012f9c0, 0x3f7200, 0xc4201f3ac0, 0xc420306060, 0xc4203069c0)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:237 +0xae
created by github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:247 +0x618

goroutine 348 [semacquire]:
sync.runtime_Semacquire(0xc42012f9b4)
        /usr/local/go/src/runtime/sema.go:47 +0x30
sync.(*Mutex).Lock(0xc42012f9b0)
        /usr/local/go/src/sync/mutex.go:85 +0xd0
github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk.func2(0xc42012f9b0, 0xc420220870, 0x3f7200, 0xc42012f580, 0x6cf6b0, 0x0, 0x0, 0x6cf6b0, 0x0, 0x0, ...)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:218 +0x494
created by github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:229 +0x58b

goroutine 346 [semacquire]:
sync.runtime_Semacquire(0xc42012f9b4)
        /usr/local/go/src/runtime/sema.go:47 +0x30
sync.(*Mutex).Lock(0xc42012f9b0)
        /usr/local/go/src/sync/mutex.go:85 +0xd0
github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk.func2(0xc42012f9b0, 0xc420220870, 0x3f7200, 0xc4202a0410, 0x6cf6b0, 0x0, 0x0, 0x6cf6b0, 0x0, 0x0, ...)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:218 +0x494
created by github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:229 +0x58b

goroutine 81 [runnable]:
github.com/asteris-llc/converge/parse.(*Node).GetStrings(0xc4202b4980, 0xc42029ee40, 0xc420043cf8, 0xc420043cf8, 0x40000000, 0xc400000000)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/parse/node.go:166 +0x142
github.com/asteris-llc/converge/load.getParams(0xc4202b4980, 0xc4202b4e60, 0x1b, 0xc42029ede0, 0x1b, 0x1b)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/load/dependencyresolver.go:93 +0x74
github.com/asteris-llc/converge/load.ResolveDependencies.func1(0xc4202b4e60, 0x1b, 0xc4202c0ed0, 0xc4202b4980, 0xc4201f3b01)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/load/dependencyresolver.go:55 +0xdd
github.com/asteris-llc/converge/graph.transform.func1(0xc4202b4e60, 0x1b, 0x46f3a0, 0xc4202b4980, 0xc4202b4980, 0xc4202321e0)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/graph/graph.go:341 +0x45
github.com/asteris-llc/converge/graph.walk.func1(0x3f7200, 0xc4201f3b40, 0xc4202def37, 0x0)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/graph/graph.go:172 +0x22f
github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk.func3(0xc42012f9a0, 0xc420220840, 0xc42012f9b0, 0xc420220870, 0xc42012f9c0, 0x3f7200, 0xc4201f3b40, 0xc420075da0, 0xc420306660)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:238 +0x251
created by github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:247 +0x618

goroutine 80 [runnable]:
github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk.func2(0xc42012f9b0, 0xc420220870, 0x3f7200, 0xc4201f3b40, 0x6cf6b0, 0x0, 0x0, 0x6cf6b0, 0x0, 0x0, ...)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:228 +0x5fc
created by github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:229 +0x58b

goroutine 344 [select]:
github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk.func2(0xc42012f9b0, 0xc420220870, 0x3f7200, 0xc42012f840, 0xc420306840, 0x6, 0x6, 0xc4202208a0, 0x6, 0x6, ...)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:205 +0x2eb
created by github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:229 +0x58b

goroutine 343 [chan receive]:
github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk.func3(0xc42012f9a0, 0xc420220840, 0xc42012f9b0, 0xc420220870, 0xc42012f9c0, 0x3f7200, 0xc4202c7ce0, 0xc420075ec0, 0xc420306780)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:237 +0xae
created by github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:247 +0x618

goroutine 339 [chan receive]:
github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk.func3(0xc42012f9a0, 0xc420220840, 0xc42012f9b0, 0xc420220870, 0xc42012f9c0, 0x3f7200, 0xc4201874f0, 0xc420075e00, 0xc4203066c0)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:237 +0xae
created by github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:247 +0x618

goroutine 341 [chan receive]:
github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk.func3(0xc42012f9a0, 0xc420220840, 0xc42012f9b0, 0xc420220870, 0xc42012f9c0, 0x3f7200, 0xc4202c7c60, 0xc420075e60, 0xc420306720)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:237 +0xae
created by github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:247 +0x618

goroutine 342 [semacquire]:
sync.runtime_Semacquire(0xc42012f9b4)
        /usr/local/go/src/runtime/sema.go:47 +0x30
sync.(*Mutex).Lock(0xc42012f9b0)
        /usr/local/go/src/sync/mutex.go:85 +0xd0
github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk.func2(0xc42012f9b0, 0xc420220870, 0x3f7200, 0xc4202c7ce0, 0x6cf6b0, 0x0, 0x0, 0x6cf6b0, 0x0, 0x0, ...)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:218 +0x494
created by github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:229 +0x58b

goroutine 338 [semacquire]:
sync.runtime_Semacquire(0xc42012f9b4)
        /usr/local/go/src/runtime/sema.go:47 +0x30
sync.(*Mutex).Lock(0xc42012f9b0)
        /usr/local/go/src/sync/mutex.go:85 +0xd0
github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk.func2(0xc42012f9b0, 0xc420220870, 0x3f7200, 0xc4201874f0, 0x6cf6b0, 0x0, 0x0, 0x6cf6b0, 0x0, 0x0, ...)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:218 +0x494
created by github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:229 +0x58b

goroutine 340 [semacquire]:
sync.runtime_Semacquire(0xc42012f9b4)
        /usr/local/go/src/runtime/sema.go:47 +0x30
sync.(*Mutex).Lock(0xc42012f9b0)
        /usr/local/go/src/sync/mutex.go:85 +0xd0
github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk.func2(0xc42012f9b0, 0xc420220870, 0x3f7200, 0xc4202c7c60, 0x6cf6b0, 0x0, 0x0, 0x6cf6b0, 0x0, 0x0, ...)
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:218 +0x494
created by github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag.(*AcyclicGraph).Walk
        /Users/rebecca/go/src/github.com/asteris-llc/converge/vendor/github.com/hashicorp/terraform/dag/dag.go:229 +0x58b
make: *** [test] Error 2
@rebeccaskinner
Copy link
Contributor Author

Additional information:
This appears to be sharing a large number of similarities with another issue identified on the feature/parenting branch when running blackbox/test_graph_generation.sh against the attached file (main.hcl). Specifically the failure seems to occur during the dependency resolution phase of load.

main.hcl follows

# create certificates for a Kubernetes cluster
param "master_ip" {}

task "directory" {
  check = "test -d ssl"
  apply = "mkdir ssl"
}

task "ca.key" {
  check = "test -f ssl/ca.key"
  apply = "cd ssl; openssl genrsa -out ca.key 2048"

  depends = ["task.directory"]
}

task "ca.crt" {
  check = "test -f ssl/ca.crt"
  apply = "cd ssl; openssl req -x509 -new -nodes -key ca.key -subj \"/CN={{param `master_ip`}}\" -days 10000 -out ca.crt"

  depends = ["task.ca.key"]
}

module "cert.hcl" "server" {
  params {
    cn   = "{{param `master_ip`}}"
    name = "server"
  }

  depends = ["task.ca.key", "task.ca.crt"]
}

module "cert.hcl" "kubelet" {
  params {
    cn   = "{{param `master_ip`}}"
    name = "kubelet"
  }

  depends = ["task.ca.key", "task.ca.crt"]
}

@sehqlr sehqlr self-assigned this Aug 18, 2016
@sehqlr sehqlr added in progress and removed ready labels Aug 18, 2016
sehqlr referenced this issue Aug 19, 2016
…is-llc/converge into fix/graph-copy-race-condition-#158
BrianHicks added a commit that referenced this issue Aug 22, 2016
…n-#158

[GRAPH] Fix #158, add triggering files, add tests
BrianHicks pushed a commit that referenced this issue Dec 22, 2016
Based on my research, the panic came from the call to graph.Walk
within graph.Copy.  With help from @BrianHicks, I was able to:

1. fix the bug with new, simpler logic for graph.Copy
2. those hcl files that triggered the race condition
3. add a blackbox test, which works with the hcl files
4. add a benchmark test case for testing parallel copies
BrianHicks referenced this issue Dec 22, 2016
…is-llc/converge into fix/graph-copy-race-condition-#158
BrianHicks added a commit that referenced this issue Dec 22, 2016
…n-#158

[GRAPH] Fix #158, add triggering files, add tests
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants