Repository navigation
Conversation
|
Thanks for this, and for asking on the issue first. Two things I checked that I think are right, and one question. The guard in Moving the The question. On One overlap to be aware of rather than to act on. #4406 makes the client survive without a multi handle from the other direction, where Small thing: "a private constructor to to simulate" in the header has a doubled "to". |
d2805e3 to
2c5efd2
Compare
|
Thank you so much for the thorough review and insights :)
|
|
All three are done, and I checked each rather than taking the summary for it. The guard comment says the thing that matters, that the early return happens before Worth flagging separately, because you cannot see it from your side and it is not something you did wrong: no CI has run on
So the pull request is not being ignored, it is unevaluated. @marcalff or @lalitb, could one of you approve the workflow run on this one? The change is small, EasyCLA has passed, and it closes #4434. |
|
The workflows ran, and the 31 red checks are one compile error rather than 31 problems. It is a one line fix and you could not have hit it locally, which I will explain. CI reports this: That is the second error, not the first. Reproducing it locally gives both: The macro is not declared, so the compiler reads Why it is not declared: the include sits inside the #ifdef ENABLE_OTLP_COMPRESSION_PREVIEW
...
#else
# include "opentelemetry/sdk/common/global_log_handler.h"
#endifThe one log call that existed before yours is at line 217, inside the same Moving the include out of the #ifdef ENABLE_OTLP_COMPRESSION_PREVIEW
...
#endif
#include "opentelemetry/sdk/common/global_log_handler.h"Measured on your branch, building
And why your local build was green: compression preview is off by default, which is the half that already had the header. A single local configuration cannot see this one. The three IWYU jobs and the two clang-tidy jobs are red for the same reason, since neither tool can run on a translation unit that does not compile, though I would not promise they all clear until CI says so. Sorry this cost you a round trip. The guard is genuinely easy to miss and it has caught me in this same file before. |
2c5efd2 to
b6dd266
Compare
|
Thank you so much for the detailed explanation and diagnosis, @thc1006 ! That makes complete sense. |
|
Checked
I also put the include back inside the The same two errors come back, and they go away again when it comes back out. Your change is the one doing the work. One thing that has nothing to do with your code, and is worth knowing so the quiet week does not read as something you missed. All eight workflow runs on this head are sitting unstarted:
Thanks for sticking with this one. The guard that caused it is genuinely easy to walk into, and the fix reads well now. |
Ensure HttpCurlGlobalInitializer checks the return value of
curl_global_init. If initialization fails, log an error, avoid calling curl_global_cleanup, and cause HttpClient and HttpClientSync to report
SessionState::CreateFailed.
Fixes open-telemetry#4434
Signed-off-by: Varun <v08pandey@gmail.com>
b6dd266 to
0c7004f
Compare
|
Thanks a lot for the detailed verification and explanation, @thc1006! All unit tests pass locally. Ready for the workflows to be approved and run whenever maintainers have a moment! |
|
Checked if (!http_client_.IsValid())
{
...
return;
}
if (send_started_.exchange(true, std::memory_order_acq_rel))The validity check sits above the exchange, so a failed curl init reports Built and ran it:
The workflows are still waiting. All eight runs on this head are at |
thc1006
left a comment
There was a problem hiding this comment.
Head is still 0c7004f8, the commit I checked on 25 September, so nothing has moved under either of us. What has moved is main: this branch is 12 commits behind it now, and the eight workflows here are all sitting in action_required, so nothing has built it since.
Merged origin/main into it locally. The merge is clean, no conflicts.
Worth saying why I checked that rather than reading the diff: git diff origin/main against a stale branch makes it look like the branch removes whatever main gained. On this one it appears to drop #4637's need_wait_more = true, revert #4452's CalculateNextRetryTime and next_retry_time_point_, and turn PerformCurlMessage back from bool to void. None of that is real. git merge-tree keeps all four, because your branch never touched those lines. I made the same misreading on one of my own pull requests earlier today, which is why I checked here before saying anything.
On the merged tree:
| result | |
|---|---|
| build | clean |
curl_http_test |
38 of 38 pass |
So the only thing in the way is the rebase and a workflow approval, neither of which is about your code.
Approving. Everything I left here before was an issue comment rather than a review, which does not count toward the two this repository needs, and that was an oversight on my part rather than a reservation about the change. The ordering in SendRequest is the one worth having: the early return lands before MaybeSpawnBackgroundThread(), so the background loop never starts against a null multi handle, and send_started_.exchange still happens exactly once per session after it.
|
Correcting myself on the CI state, which is the part of this that matters, and re-stating the rest at today's I wrote that the API reports 0 workflow runs for I also wrote that earlier heads here did build, which reads as better news than the record supports. One head ever executed, The rest, re-measured today. The head is still @marcalff, could you release the workflow runs on this head when you have a moment? My approval stands and I re-verified the merge today, but it is not a required review, and CI has never built a head of this branch that carries the include fix. |
Fixes #4434.
initialization failure.