From 582ef45f1d1b1274744ae455cab2f6580664822a Mon Sep 17 00:00:00 2001 From: Thomas Stromberg Date: Mon, 13 Jul 2020 11:59:19 -0700 Subject: [PATCH] Wrap persist into an item for compatibility with older records --- pkg/persist/mysql.go | 6 ++++-- pkg/persist/postgres.go | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/pkg/persist/mysql.go b/pkg/persist/mysql.go index 96cea8e..ff08326 100644 --- a/pkg/persist/mysql.go +++ b/pkg/persist/mysql.go @@ -102,7 +102,7 @@ func (m *MySQL) loadItems() error { var item cache.Item gd := gob.NewDecoder(bytes.NewBuffer(mi.Value)) if err := gd.Decode(&item); err != nil { - klog.Errorf("decode failed for %s (saved %s): %w", mi.Key, mi.Saved, err) + klog.Errorf("decode failed for %s (saved %s, bytes: %d): %v", mi.Key, mi.Saved, len(mi.Value), err) continue } decoded[mi.Key] = item @@ -142,7 +142,9 @@ func (m *MySQL) GetNewerThan(key string, t time.Time) *Thing { func (m *MySQL) persist(key string, th *Thing) error { b := new(bytes.Buffer) ge := gob.NewEncoder(b) - if err := ge.Encode(th); err != nil { + + item := cache.Item{Object: th} + if err := ge.Encode(item); err != nil { return fmt.Errorf("encode: %w", err) } diff --git a/pkg/persist/postgres.go b/pkg/persist/postgres.go index bba2dd4..1c61939 100644 --- a/pkg/persist/postgres.go +++ b/pkg/persist/postgres.go @@ -97,7 +97,7 @@ func (m *Postgres) loadItems() error { var item cache.Item gd := gob.NewDecoder(bytes.NewBuffer(mi.Value)) if err := gd.Decode(&item); err != nil { - klog.Errorf("decode failed for %s (saved %s): %w", mi.Key, mi.Saved, err) + klog.Errorf("decode failed for %s (saved %s, bytes: %d): %v", mi.Key, mi.Saved, len(mi.Value), err) continue } decoded[mi.Key] = item @@ -137,7 +137,9 @@ func (m *Postgres) GetNewerThan(key string, t time.Time) *Thing { func (m *Postgres) persist(key string, th *Thing) error { b := new(bytes.Buffer) ge := gob.NewEncoder(b) - if err := ge.Encode(th); err != nil { + + item := cache.Item{Object: th} + if err := ge.Encode(item); err != nil { return fmt.Errorf("encode: %w", err) }