Skip to content

fix: Log the cached-data evaluation warning only once per client - #520

Draft
kinyoklion wants to merge 1 commit into
mainfrom
rlamb/log-cached-data-warning-once
Draft

fix: Log the cached-data evaluation warning only once per client#520
kinyoklion wants to merge 1 commit into
mainfrom
rlamb/log-cached-data-warning-once

Conversation

@kinyoklion

Copy link
Copy Markdown
Member

Summary

When data availability is CACHED, every evaluation and every all_flags_state() call logs a warning that the client is using last known values from the feature store. While the client stays in that state, this floods the log with one line per evaluation.

Each of these messages now logs once per client instance. LDClient and AsyncLDClient each hold two flags, one for the evaluation message and one for the all_flags_state() message. The messages say that they are logged once.

In LDClient, a threading.Lock guards the set of each flag. The lock is reached only inside the CACHED branch and only until the flag is set, so the normal evaluation path never touches it. Python has no lock-free atomic flag in the standard library. In AsyncLDClient, a plain boolean is enough because one event loop runs the client and no await separates the check and the set.

The sibling messages for the DEFAULTS case and the availability check itself are unchanged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant