-
Notifications
You must be signed in to change notification settings - Fork 83
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
Building with clang's libc++ fails #569
Comments
Thanks for the great analysis. The reason for making this change is preparing for something like master...oschaaf:schedule-date. That would allow |
After discussing on Slack with @dubious90, and mulling this over, I think the problem can be best described as that we're overloading two things.
In terms of the listed options to resolve above, I'd say this is best represented by 3) plus a change to decouple scheduling execution and offsetting worker-starts. I propose to address this as part of the forthcoming change that will add the actual scheduling feature. |
Yes, I can see how this could fulfill the requirement for synchronized start across machines. |
Does this mean we are going to see scheduling of load-tests in nighthawk soon @oschaaf? |
Signed-off-by: Otto van der Schaaf <oschaaf@we-amp.com>
Adds a new schedule option to the proto api., which allows specifying a date/time at which execution should start. Should also fix #569 by reducing reliance on `Envoy::SystemTime` to a minimum: Based on the value schedule option, a monotonic time will be computed and propagated. This makes us use `Envoy::MonotonicTime` again in places where sub ms resolution is a must have. (The fix will need confirmation, as I couldn't get `--config=libc++` to work for other reasons.) Signed-off-by: Otto van der Schaaf <oschaaf@we-amp.com>
List of changes: - Update Envoy to 8188e232a9e0b15111d30f4724cbc7bf77d3964a (Dec 8th) - Sync .bazelrc - Modify extensions_build_config.bzl, add required DISABLED_BY_DEFAULT_EXTENSIONS - Rework our h1 connection pool derivation to keep our own prefetching feature working. Note: We enable the allow_prefetch runtime feature for this. - Changes to reflect changed Envoy constructors and method signatures: OnPoolReady(), ProdClusterManagerFactory(), allocateConnPool() - Modified log filtering in the integration test: `SIGTERM` -> `ENVOY_SIGTERM`. - Dropped include of `ares.h` as small cleanup, we no longer need that. - In `options_impl.cc` there's a small change to how we define `elapsed_since_epoch` to unbreak building with `libc++`: a regression of #569. Filed #594 to avoid regression. Signed-off-by: Otto van der Schaaf <oschaaf@we-amp.com>
PR #549 modified Nighthawk's use of
MonotonicTime
toSystemTime
, which causes a failure to build with clang's/llvm's libc++ (--config=libc++), and gives the following error:After executing:
The cause seems to be the different resolution of system_clock by llvm and gcc:
and the nighthawk code requires a nanoseconds resolution.
Possible ways to solve:
MonotonicTime
.MonotonicTime
in this part of the code.using SystemTime = std::chrono::time_point<std::chrono::system_clock, std::chrono::nanoseconds>;
, and update the necessary places in Envoy's code to correctly cast when system_clock is used (std::chrono::time_point_cast<std::chrono::system_clock::duration>(time)
).@oschaaf Am I missing anything? What's your opinion about this?
The text was updated successfully, but these errors were encountered: