Skip to content

Commit

Permalink
Merge pull request #5772 from hashicorp/phinze/var-concurrent-map-race
Browse files Browse the repository at this point in the history
terraform: share graph walker's variables lock w/ interpolater
  • Loading branch information
phinze committed Mar 21, 2016
2 parents 79eb4e1 + 024dcc9 commit 7efc8b2
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 10 deletions.
11 changes: 6 additions & 5 deletions terraform/graph_walk_context.go
Original file line number Diff line number Diff line change
Expand Up @@ -81,11 +81,12 @@ func (w *ContextGraphWalker) EnterPath(path []string) EvalContext {
StateValue: w.Context.state,
StateLock: &w.Context.stateLock,
Interpolater: &Interpolater{
Operation: w.Operation,
Module: w.Context.module,
State: w.Context.state,
StateLock: &w.Context.stateLock,
Variables: variables,
Operation: w.Operation,
Module: w.Context.module,
State: w.Context.state,
StateLock: &w.Context.stateLock,
Variables: variables,
VariablesLock: &w.interpolaterVarLock,
},
InterpolaterVars: w.interpolaterVars,
InterpolaterVarLock: &w.interpolaterVarLock,
Expand Down
13 changes: 8 additions & 5 deletions terraform/interpolate.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,12 @@ const (
// Interpolater is the structure responsible for determining the values
// for interpolations such as `aws_instance.foo.bar`.
type Interpolater struct {
Operation walkOperation
Module *module.Tree
State *State
StateLock *sync.RWMutex
Variables map[string]string
Operation walkOperation
Module *module.Tree
State *State
StateLock *sync.RWMutex
Variables map[string]string
VariablesLock *sync.Mutex
}

// InterpolationScope is the current scope of execution. This is required
Expand Down Expand Up @@ -273,6 +274,8 @@ func (i *Interpolater) valueUserVar(
n string,
v *config.UserVariable,
result map[string]ast.Variable) error {
i.VariablesLock.Lock()
defer i.VariablesLock.Unlock()
val, ok := i.Variables[v.Name]
if ok {
result[n] = ast.Variable{
Expand Down

0 comments on commit 7efc8b2

Please sign in to comment.