<@UB2EH889X> btw we ran into more concurrency erro...
# atmos
z
@Erik Osterman (Cloud Posse) btw we ran into more concurrency errors using a dual core runner ๐Ÿงต
We were using
--max-concurrency 3
Copy code
fatal error: concurrent map writes

goroutine 6506 [running]:
internal/runtime/maps.fatal({0x9a16b4b?, 0x48c345?})
    runtime/panic.go:1181 +0x18
<http://github.com/spf13/viper.(*Viper).Set(0x10f859f6d680|github.com/spf13/viper.(*Viper).Set(0x10f859f6d680>, {0x99ed237?, 0x10f85bca2608?}, {0x8256140, 0x10f85f043330})
    <http://github.com/spf13/viper@v1.21.0/viper.go:1511|github.com/spf13/viper@v1.21.0/viper.go:1511> +0x28a
<http://github.com/cloudposse/atmos/pkg/config.LoadConfig(_)|github.com/cloudposse/atmos/pkg/config.LoadConfig(_)>
    <http://github.com/cloudposse/atmos/pkg/config/load.go:648|github.com/cloudposse/atmos/pkg/config/load.go:648> +0xfab
<http://github.com/cloudposse/atmos/pkg/config.processAtmosConfigs(_)|github.com/cloudposse/atmos/pkg/config.processAtmosConfigs(_)>
    <http://github.com/cloudposse/atmos/pkg/config/config.go:194|github.com/cloudposse/atmos/pkg/config/config.go:194> +0x5a
<http://github.com/cloudposse/atmos/pkg/config.InitCliConfig({{0x0|github.com/cloudposse/atmos/pkg/config.InitCliConfig({{0x0>, 0x0}, {0x10f86673a8a0, 0xa}, {0x0, 0x0}, {0x0, 0x0}, {0x0, 0x0}, ...}, ...)
    <http://github.com/cloudposse/atmos/pkg/config/config.go:39|github.com/cloudposse/atmos/pkg/config/config.go:39> +0x5b
<http://github.com/cloudposse/atmos/internal/exec.ExecuteDescribeComponentWithContext(|github.com/cloudposse/atmos/internal/exec.ExecuteDescribeComponentWithContext(>{0x0, {0x10f85afa13e0, 0x12}, {0x10f86673a8a0, 0xa}, {0x9983297, 0x9}, 0x0, 0x0, 0x0, ...})
    <http://github.com/cloudposse/atmos/internal/exec/describe_component.go:560|github.com/cloudposse/atmos/internal/exec/describe_component.go:560> +0x19c
<http://github.com/cloudposse/atmos/internal/exec.ExecuteDescribeComponent(0x10f85b916d98)|github.com/cloudposse/atmos/internal/exec.ExecuteDescribeComponent(0x10f85b916d98)>
    <http://github.com/cloudposse/atmos/internal/exec/describe_component.go:281|github.com/cloudposse/atmos/internal/exec/describe_component.go:281> +0x20f
<http://github.com/cloudposse/atmos/pkg/hooks.GetHooks|github.com/cloudposse/atmos/pkg/hooks.GetHooks>(0x10f85ac94008, 0x10f86b459008)
    <http://github.com/cloudposse/atmos/pkg/hooks/hooks.go:90|github.com/cloudposse/atmos/pkg/hooks/hooks.go:90> +0x149
<http://github.com/cloudposse/atmos/pkg/hooks.RunPerComponentHooks(0x10f85c5b3000)|github.com/cloudposse/atmos/pkg/hooks.RunPerComponentHooks(0x10f85c5b3000)>
    <http://github.com/cloudposse/atmos/pkg/hooks/hooks.go:995|github.com/cloudposse/atmos/pkg/hooks/hooks.go:995> +0x87
<http://github.com/cloudposse/atmos/cmd/terraform.(*terraformNodeHooks).runUserHooksForNodeWithWriters|github.com/cloudposse/atmos/cmd/terraform.(*terraformNodeHooks).runUserHooksForNodeWithWriters>(0x0?, 0x0?, 0x0?, {0x9a26d1a?, 0x9?}, {{0x9973b08, 0x7}, {0x0, 0x0}, 0x0}, ...)
    <http://github.com/cloudposse/atmos/cmd/terraform/utils.go:596|github.com/cloudposse/atmos/cmd/terraform/utils.go:596> +0x107
<http://github.com/cloudposse/atmos/cmd/terraform.(*terraformNodeHooks).BeforeWithWriters(0x10f859fdad20|github.com/cloudposse/atmos/cmd/terraform.(*terraformNodeHooks).BeforeWithWriters(0x10f859fdad20>, {0xaa27528?, 0x10f8659ce320?}, 0x10f86b459008, {{0xa983780?, 0x10f85f2afc98?}, {0xa983780?, 0x10f85f2afcb0?}})
    <http://github.com/cloudposse/atmos/cmd/terraform/utils.go:535|github.com/cloudposse/atmos/cmd/terraform/utils.go:535> +0x33d
<http://github.com/cloudposse/atmos/pkg/scheduler/adapters.(*TerraformDispatcher).runBeforeNodeHooks(0x10f875650ea0|github.com/cloudposse/atmos/pkg/scheduler/adapters.(*TerraformDispatcher).runBeforeNodeHooks(0x10f875650ea0>?, {0xaa27528?, 0x10f8659ce320}, 0x10f86b459008?, {{0xa983780?, 0x10f85f2afc98?}, {0xa983780?, 0x10f85f2afcb0?}})
    <http://github.com/cloudposse/atmos/pkg/scheduler/adapters/terraform.go:729|github.com/cloudposse/atmos/pkg/scheduler/adapters/terraform.go:729> +0x15b
<http://github.com/cloudposse/atmos/pkg/scheduler/adapters.(*TerraformDispatcher).Dispatch(0x10f875650ea0|github.com/cloudposse/atmos/pkg/scheduler/adapters.(*TerraformDispatcher).Dispatch(0x10f875650ea0>, {0xaa27528, 0x10f8659ce320}, 0x10f85af8c700)
    <http://github.com/cloudposse/atmos/pkg/scheduler/adapters/terraform.go:686|github.com/cloudposse/atmos/pkg/scheduler/adapters/terraform.go:686> +0xb6d
<http://github.com/cloudposse/atmos/pkg/scheduler.(*Scheduler).worker(0x10f86bd59740|github.com/cloudposse/atmos/pkg/scheduler.(*Scheduler).worker(0x10f86bd59740>, {0xaa27528, 0x10f8659ce320}, 0x10f85e3df810, 0x10f85e3df880, 0x4?)
    <http://github.com/cloudposse/atmos/pkg/scheduler/scheduler.go:265|github.com/cloudposse/atmos/pkg/scheduler/scheduler.go:265> +0x16e
created by <http://github.com/cloudposse/atmos/pkg/scheduler.(*Scheduler).Run|github.com/cloudposse/atmos/pkg/scheduler.(*Scheduler).Run> in goroutine 1
    <http://github.com/cloudposse/atmos/pkg/scheduler/scheduler.go:172|github.com/cloudposse/atmos/pkg/scheduler/scheduler.go:172> +0x5a5
We didn't get the error when we bumped the runner up to have more cores
Does that make sense? Have more cores than concurrent applies?
e
Probably something that is not concurrency safe which we didn't discover in the current tests.
Are you open to burning some tokens on it? Is it easy for you to reproduce?
z
Maybe I can reproduce it ๐Ÿค”
Ran into the same bug limiting concurrency to 2
kinda crunch time rn for some project so time is limited-ish, maybe next week
e
I think we were able to track this down to viper
๐Ÿ™Œ 1