mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-04 18:00:08 +00:00
Merge pull request #19213 from wojtek-t/fix_18794
Fix cacher_test flakes
This commit is contained in:
commit
40153138b8
@ -414,11 +414,6 @@ func (c *Cacher) LastSyncResourceVersion() (uint64, error) {
|
|||||||
return strconv.ParseUint(resourceVersion, 10, 64)
|
return strconv.ParseUint(resourceVersion, 10, 64)
|
||||||
}
|
}
|
||||||
|
|
||||||
// For debugging #18794 only.
|
|
||||||
func (c *Cacher) GetAllCachedEvents() ([]watchCacheEvent, error) {
|
|
||||||
return c.watchCache.getAllCachedEvents()
|
|
||||||
}
|
|
||||||
|
|
||||||
// cacherListerWatcher opaques storage.Interface to expose cache.ListerWatcher.
|
// cacherListerWatcher opaques storage.Interface to expose cache.ListerWatcher.
|
||||||
type cacherListerWatcher struct {
|
type cacherListerWatcher struct {
|
||||||
storage Interface
|
storage Interface
|
||||||
|
@ -37,7 +37,6 @@ import (
|
|||||||
"k8s.io/kubernetes/pkg/util/sets"
|
"k8s.io/kubernetes/pkg/util/sets"
|
||||||
"k8s.io/kubernetes/pkg/watch"
|
"k8s.io/kubernetes/pkg/watch"
|
||||||
|
|
||||||
"github.com/golang/glog"
|
|
||||||
"golang.org/x/net/context"
|
"golang.org/x/net/context"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -271,6 +270,14 @@ func TestFiltering(t *testing.T) {
|
|||||||
cacher := newTestCacher(etcdStorage)
|
cacher := newTestCacher(etcdStorage)
|
||||||
defer cacher.Stop()
|
defer cacher.Stop()
|
||||||
|
|
||||||
|
// Ensure that the cacher is initialized, before creating any pods,
|
||||||
|
// so that we are sure that all events will be present in cacher.
|
||||||
|
syncWatcher, err := cacher.Watch(context.TODO(), "pods/ns/foo", "0", storage.Everything)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Unexpected error: %v", err)
|
||||||
|
}
|
||||||
|
syncWatcher.Stop()
|
||||||
|
|
||||||
podFoo := makeTestPod("foo")
|
podFoo := makeTestPod("foo")
|
||||||
podFoo.Labels = map[string]string{"filter": "foo"}
|
podFoo.Labels = map[string]string{"filter": "foo"}
|
||||||
podFooFiltered := makeTestPod("foo")
|
podFooFiltered := makeTestPod("foo")
|
||||||
@ -300,15 +307,6 @@ func TestFiltering(t *testing.T) {
|
|||||||
}
|
}
|
||||||
watcher, err := cacher.Watch(context.TODO(), "pods/ns/foo", fooCreated.ResourceVersion, filter)
|
watcher, err := cacher.Watch(context.TODO(), "pods/ns/foo", fooCreated.ResourceVersion, filter)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// For debugging #18794 only.
|
|
||||||
events, err := cacher.GetAllCachedEvents()
|
|
||||||
if err != nil {
|
|
||||||
glog.Error("Unexpected error: %v", err)
|
|
||||||
} else {
|
|
||||||
for _, event := range events {
|
|
||||||
glog.Errorf("cached event: %s %#v", event.Type, event.Object)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
t.Fatalf("Unexpected error: %v", err)
|
t.Fatalf("Unexpected error: %v", err)
|
||||||
}
|
}
|
||||||
defer watcher.Stop()
|
defer watcher.Stop()
|
||||||
|
@ -298,13 +298,3 @@ func (w *watchCache) GetAllEventsSince(resourceVersion uint64) ([]watchCacheEven
|
|||||||
defer w.RUnlock()
|
defer w.RUnlock()
|
||||||
return w.GetAllEventsSinceThreadUnsafe(resourceVersion)
|
return w.GetAllEventsSinceThreadUnsafe(resourceVersion)
|
||||||
}
|
}
|
||||||
|
|
||||||
// For debugging #18794 only.
|
|
||||||
func (w *watchCache) getAllCachedEvents() ([]watchCacheEvent, error) {
|
|
||||||
w.RLock()
|
|
||||||
defer w.RUnlock()
|
|
||||||
if w.startIndex == w.endIndex {
|
|
||||||
return make([]watchCacheEvent, 0), nil
|
|
||||||
}
|
|
||||||
return w.GetAllEventsSinceThreadUnsafe(w.cache[w.startIndex%w.capacity].resourceVersion)
|
|
||||||
}
|
|
||||||
|
Loading…
Reference in New Issue
Block a user