diff --git a/consul/state/state_store.go b/consul/state/state_store.go index c99c4324c..e05fc2ad4 100644 --- a/consul/state/state_store.go +++ b/consul/state/state_store.go @@ -88,7 +88,7 @@ func NewStateStore(logOutput io.Writer) (*StateStore, error) { // Build up the all-table watches. tableWatches := make(map[string]*FullTableWatch) for table, _ := range schema.Tables { - if table == "kvs" { + if table == "kvs" || table == "tombstones" { continue } diff --git a/consul/state/state_store_test.go b/consul/state/state_store_test.go index 84d93370c..05c69ed51 100644 --- a/consul/state/state_store_test.go +++ b/consul/state/state_store_test.go @@ -240,12 +240,24 @@ func TestStateStore_GetTableWatch(t *testing.T) { // This test does two things - it makes sure there's no full table // watch for KVS, and it makes sure that asking for a watch that // doesn't exist causes a panic. - defer func() { - if r := recover(); r == nil { - t.Fatalf("didn't get expected panic") - } + func() { + defer func() { + if r := recover(); r == nil { + t.Fatalf("didn't get expected panic") + } + }() + s.GetTableWatch("kvs") + }() + + // Similar for tombstones; those don't support watches at all. + func() { + defer func() { + if r := recover(); r == nil { + t.Fatalf("didn't get expected panic") + } + }() + s.GetTableWatch("tombstones") }() - s.GetTableWatch("kvs") } func TestStateStore_EnsureRegistration(t *testing.T) {