-
Notifications
You must be signed in to change notification settings - Fork 186
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
"fatal error" when calling Batch Eval with Tags at Volume #398
Comments
Yes, thanks for reporting!
|
I was looking for solutions, and it makes sense to just use
I can also work on the refactoring it after your fix. |
Cool, your first post is actually what we had already started on testing. 😄 The second comment definitely sounds interesting. I think the priority for us is getting the current issue resolved so we can safely start using Tags, so I think we'll submit the short term fix. |
@fenriskiba I was refactoring the code #402 and thought it might be just handy to test out the solutions I mentioned above, hopefully this also fix the |
@zhouzhuojie We did some quick performance testing on our end with that branch, and it definitely seemed to fix that error. Do you have an ETA on when we could see this in a release? |
1.1.12 is ready. https://hub.docker.com/layers/checkr/flagr/1.1.12/images/sha256-407d7099d6ce7e3632b6d00682a43028d75d3b088600797a833607bd629d1ed5?context=explore |
I love how quick you work. Thank you! |
We found an issue using the Tag Functionality for Batch Evaluations that only shows up when at high volumes. Related to #369
Expected Behavior
Calling postEvaluationBatch with valid flagTags should result in evaluations for every Flag with the provided Tags.
Current Behavior
At volume (we verified with 1 call every 10 milliseconds), we receive a
fatal error: concurrent map writes
error, resulting in Flagr crashing. We believe this is an issue of a race condition in the eval cache logic.Possible Solution
We've identified an additional memory lock we can add to the
GetByTags
function in eval_cache.go that should resolve the problem. We are currently preparing some internal stress testing to validate that it resolves the issue.While working on this, we also discovered a similar issue with the
rateLimitPerFlagConsoleLogging
function in eval.go that we are updating as well.The text was updated successfully, but these errors were encountered: