diff --git a/holder.go b/holder.go index 87875d982..53ba12b63 100644 --- a/holder.go +++ b/holder.go @@ -121,7 +121,8 @@ type Holder struct { // Queue of fields (having a foreign index) which have // opened before their foreign index has opened. - foreignIndexFields []*Field + foreignIndexFields []*Field + foreignIndexFieldsMu sync.Mutex // Queue of messages to broadcast in bulk when the cluster comes up. // This is wrong, but. . . yeah. @@ -764,6 +765,8 @@ func (h *Holder) Activate() { func (h *Holder) checkForeignIndex(f *Field) error { if h.opening { if fi := h.Index(f.options.ForeignIndex); fi == nil { + h.foreignIndexFieldsMu.Lock() + defer h.foreignIndexFieldsMu.Unlock() h.foreignIndexFields = append(h.foreignIndexFields, f) return nil }