[Heartbeat] Separate http req per task#29697
Conversation
This is an attempt to fix the race reported in elastic#29580 by instantiating a separate http request per HTTP task. The theory being that the HTTP library modifies the headers and that the req object is not safe to share. Needs further experimentation / validation / testing.
|
This pull request does not have a backport label. Could you fix it @andrewvc? 🙏
NOTE: |
💚 Build Succeeded
Expand to view the summary
Build stats
Test stats 🧪
💚 Flaky test reportTests succeeded. 🤖 GitHub commentsTo re-run your PR in the CI, just comment with:
|
|
Gist of a stacktrace I captured when I repro'd it https://gist.github.com/andrewvc/977e17c7d9a2863c1432aa120e9c4ca0 |
|
Seems like #27509 is what broke this after analysis |
|
Pinging @elastic/uptime (Team:Uptime) |
justinkambic
left a comment
There was a problem hiding this comment.
Tested this locally with repeatable results and it works well. Code seems fine.
LGTM.
This is an attempt to fix the race reported in #29580 by instantiating a separate http request per HTTP task. The theory being that the HTTP library modifies the headers and that the req object is not safe to share. This has passed manual testing using mode: all against endpoints with multiple A records. Tests are not included here due to the tricky nature of testing here, but we will do so in a follow-up (cherry picked from commit 27f2d00)
This is an attempt to fix the race reported in #29580 by instantiating a separate http request per HTTP task. The theory being that the HTTP library modifies the headers and that the req object is not safe to share. This has passed manual testing using mode: all against endpoints with multiple A records. Tests are not included here due to the tricky nature of testing here, but we will do so in a follow-up (cherry picked from commit 27f2d00)
|
@Mergifyio backport 7.16 |
This is an attempt to fix the race reported in #29580 by instantiating a separate http request per HTTP task. The theory being that the HTTP library modifies the headers and that the req object is not safe to share. This has passed manual testing using mode: all against endpoints with multiple A records. Tests are not included here due to the tricky nature of testing here, but we will do so in a follow-up (cherry picked from commit 27f2d00)
✅ Backports have been createdDetails
|
This is an attempt to fix the race reported in #29580 by instantiating a separate http request per HTTP task. The theory being that the HTTP library modifies the headers and that the req object is not safe to share. This has passed manual testing using mode: all against endpoints with multiple A records. Tests are not included here due to the tricky nature of testing here, but we will do so in a follow-up (cherry picked from commit 27f2d00) Co-authored-by: Andrew Cholakian <andrew@andrewvc.com>
This is an attempt to fix the race reported in #29580 by instantiating a separate http request per HTTP task. The theory being that the HTTP library modifies the headers and that the req object is not safe to share. This has passed manual testing using mode: all against endpoints with multiple A records. Tests are not included here due to the tricky nature of testing here, but we will do so in a follow-up (cherry picked from commit 27f2d00) Co-authored-by: Andrew Cholakian <andrew@andrewvc.com>
This is an attempt to fix the race reported in #29580 by instantiating a separate http request per HTTP task. The theory being that the HTTP library modifies the headers and that the req object is not safe to share. This has passed manual testing using mode: all against endpoints with multiple A records. Tests are not included here due to the tricky nature of testing here, but we will do so in a follow-up (cherry picked from commit 27f2d00) Co-authored-by: Andrew Cholakian <andrew@andrewvc.com>
This is an attempt to fix the race reported in #29580 by instantiating a separate http request per HTTP task. The theory being that the HTTP library modifies the headers and that the req object is not safe to share.
This has passed manual testing using
mode: allagainst endpoints with multiple A records.Tests are not included here due to the tricky nature of testing here, but we will do so in a follow-up
What does this PR do?
Why is it important?
Checklist
CHANGELOG.next.asciidocorCHANGELOG-developer.next.asciidoc.