Cherry-pick #19821 to 7.x: libbeat/publisher/pipeline: fix data races#19865
Merged
axw merged 1 commit intoelastic:7.xfrom Jul 15, 2020
Merged
Cherry-pick #19821 to 7.x: libbeat/publisher/pipeline: fix data races#19865axw merged 1 commit intoelastic:7.xfrom
axw merged 1 commit intoelastic:7.xfrom
Conversation
Fix how we pass the initial queue consumer into eventConsumer.loop; we were referencing c.consumer in a background goroutine, which can race with updates to the consumer. Update tests to properly load atomic variables. Changed serially updated numEvents vars to basic, non-atomic types. (cherry picked from commit ebacd3b)
Contributor
|
Pinging @elastic/integrations-services (Team:Services) |
andrewkroh
approved these changes
Jul 15, 2020
Member
|
run tests |
Member
Author
|
Failures are unrelated - merging. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Cherry-pick of PR #19821 to 7.x branch. Original message:
What does this PR do?
Fix how we pass the initial queue consumer into
eventConsumer.loop;we were referencing c.consumer in a background goroutine, which can
race with updates to the consumer.
Update tests to properly load atomic variables. Changed serially updated
numEventsvars to basic, non-atomic types.Why is it important?
I'm not sure if this particular data race would cause any issues in production,
but we (apm-server) rely on the race detector to pick up real issues. This is
causing our tests to fail.
Checklist
- [ ] I have commented my code, particularly in hard-to-understand areas- [ ] I have made corresponding changes to the documentation- [ ] I have made corresponding change to the default configuration files- [ ] I have added tests that prove my fix is effective or that my feature worksCHANGELOG.next.asciidocorCHANGELOG-developer.next.asciidoc.(Does this change need a changelog entry? This is a fix to a recently merged change.)
How to test this PR locally
go test -race ./libbeat/publisher/pipeline