PopulateCID caches Exceptions forever

Description

In an attempt to avoid racing multiple GetCid calls, CouchbaseCollection.PopulateCidAsync uses Lazy<Task<uint?>> to lazily-execute and cache the result.

However, if that GetCidAsync call throws an exception (such as a TimeoutException), then the next time that Lazy<Task> is awaited, it throws the same exception again.

Environment

None

Gerrit Reviews

None

Release Notes Description

None

Activity

Show:
Fixed
Pinned fields
Click on the next to a field label to start pinning.

Details

Assignee

Reporter

Story Points

Sprint

Fix versions

Affects versions

Priority

Instabug

Open Instabug

PagerDuty

Sentry

Zendesk Support

Created November 14, 2022 at 9:29 PM
Updated January 23, 2023 at 4:32 PM
Resolved January 23, 2023 at 4:32 PM
Instabug