diff options
author | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2019-12-11 17:40:27 +0300 |
---|---|---|
committer | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2019-12-11 17:40:27 +0300 |
commit | a0c218ff6a0cd18b5fba6481c3de7629f6527182 (patch) | |
tree | 2a71805908eee8e8ffd950f3ae9db964d895239f /internal/source/gitlab | |
parent | 22a73c6be625c1cdbe676ac3e1bef9985fb47fd9 (diff) |
Remove retrieval context that might mask problems
Diffstat (limited to 'internal/source/gitlab')
-rw-r--r-- | internal/source/gitlab/cache/cache_test.go | 10 | ||||
-rw-r--r-- | internal/source/gitlab/cache/entry.go | 5 |
2 files changed, 6 insertions, 9 deletions
diff --git a/internal/source/gitlab/cache/cache_test.go b/internal/source/gitlab/cache/cache_test.go index 7abcb09d..ac7c6726 100644 --- a/internal/source/gitlab/cache/cache_test.go +++ b/internal/source/gitlab/cache/cache_test.go @@ -207,9 +207,9 @@ func TestResolve(t *testing.T) { }) }) - t.Run("when retrieval failed because of an external context timeout", func(t *testing.T) { - ctx, cancel := context.WithDeadline(context.Background(), time.Now().Add(-time.Hour)) - defer cancel() + t.Run("when retrieval failed because of an external context being canceled", func(t *testing.T) { + ctx, cancel := context.WithCancel(context.Background()) + cancel() withTestCache(resolverConfig{}, func(cache *Cache, resolver *client) { lookup := cache.Resolve(ctx, "my.gitlab.com") @@ -219,7 +219,7 @@ func TestResolve(t *testing.T) { }) }) - t.Run("when retrieval failed because of an internal context timeout", func(t *testing.T) { + t.Run("when retrieval failed because of an internal retriever context timeout", func(t *testing.T) { retrievalTimeout = 0 defer func() { retrievalTimeout = 5 * time.Second }() @@ -227,7 +227,7 @@ func TestResolve(t *testing.T) { lookup := cache.Resolve(context.Background(), "my.gitlab.com") require.Equal(t, uint64(0), resolver.lookups) - require.EqualError(t, lookup.Error, "context done") + require.EqualError(t, lookup.Error, "retrieval context done") }) }) diff --git a/internal/source/gitlab/cache/entry.go b/internal/source/gitlab/cache/entry.go index 1a40e203..d91bb331 100644 --- a/internal/source/gitlab/cache/entry.go +++ b/internal/source/gitlab/cache/entry.go @@ -61,13 +61,10 @@ func (e *Entry) Lookup() *api.Lookup { // Retrieve perform a blocking retrieval of the cache entry response. func (e *Entry) Retrieve(ctx context.Context, client api.Client) (lookup *api.Lookup) { - newctx, cancelctx := context.WithTimeout(ctx, retrievalTimeout) - defer cancelctx() - e.retrieve.Do(func() { go e.retrieveWithClient(client) }) select { - case <-newctx.Done(): + case <-ctx.Done(): lookup = &api.Lookup{Name: e.domain, Error: errors.New("context done")} case <-e.retrieved: lookup = e.Lookup() |