Skip to content

Commit 5a3dbed

Browse files
committed
Merge pull request kubernetes#19203 from wojtek-t/logging_for18928
Extend logging for debugging kubernetes#18794 purposes
2 parents 558f69e + 6569698 commit 5a3dbed

File tree

3 files changed

+25
-0
lines changed

3 files changed

+25
-0
lines changed

pkg/storage/cacher.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -414,6 +414,11 @@ func (c *Cacher) LastSyncResourceVersion() (uint64, error) {
414414
return strconv.ParseUint(resourceVersion, 10, 64)
415415
}
416416

417+
// For debugging #18794 only.
418+
func (c *Cacher) GetAllCachedEvents() ([]watchCacheEvent, error) {
419+
return c.watchCache.getAllCachedEvents()
420+
}
421+
417422
// cacherListerWatcher opaques storage.Interface to expose cache.ListerWatcher.
418423
type cacherListerWatcher struct {
419424
storage Interface

pkg/storage/cacher_test.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ import (
3737
"k8s.io/kubernetes/pkg/util/sets"
3838
"k8s.io/kubernetes/pkg/watch"
3939

40+
"github.com/golang/glog"
4041
"golang.org/x/net/context"
4142
)
4243

@@ -299,6 +300,15 @@ func TestFiltering(t *testing.T) {
299300
}
300301
watcher, err := cacher.Watch(context.TODO(), "pods/ns/foo", fooCreated.ResourceVersion, filter)
301302
if err != nil {
303+
// For debugging #18794 only.
304+
events, err := cacher.GetAllCachedEvents()
305+
if err != nil {
306+
glog.Error("Unexpected error: %v", err)
307+
} else {
308+
for _, event := range events {
309+
glog.Errorf("cached event: %s %#v", event.Type, event.Object)
310+
}
311+
}
302312
t.Fatalf("Unexpected error: %v", err)
303313
}
304314
defer watcher.Stop()

pkg/storage/watch_cache.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -298,3 +298,13 @@ func (w *watchCache) GetAllEventsSince(resourceVersion uint64) ([]watchCacheEven
298298
defer w.RUnlock()
299299
return w.GetAllEventsSinceThreadUnsafe(resourceVersion)
300300
}
301+
302+
// For debugging #18794 only.
303+
func (w *watchCache) getAllCachedEvents() ([]watchCacheEvent, error) {
304+
w.RLock()
305+
defer w.RUnlock()
306+
if w.startIndex == w.endIndex {
307+
return make([]watchCacheEvent, 0), nil
308+
}
309+
return w.GetAllEventsSinceThreadUnsafe(w.cache[w.startIndex%w.capacity].resourceVersion)
310+
}

0 commit comments

Comments
 (0)