Skip to content

[testing]: Add "orca_per_rpc" test case#32524

Merged
eugeneo merged 20 commits intogrpc:masterfrom
eugeneo:tasks/tests/orca_per_rpc
Mar 14, 2023
Merged

[testing]: Add "orca_per_rpc" test case#32524
eugeneo merged 20 commits intogrpc:masterfrom
eugeneo:tasks/tests/orca_per_rpc

Conversation

@eugeneo
Copy link
Copy Markdown
Contributor

@eugeneo eugeneo commented Mar 2, 2023

No description provided.

@eugeneo eugeneo added the release notes: no Indicates if PR should not be in release notes label Mar 2, 2023
@eugeneo eugeneo force-pushed the tasks/tests/orca_per_rpc branch from 11f41fc to 9778645 Compare March 3, 2023 20:38
@eugeneo eugeneo marked this pull request as ready for review March 3, 2023 23:16
@eugeneo eugeneo requested a review from markdroth March 3, 2023 23:16
Copy link
Copy Markdown
Member

@markdroth markdroth left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for doing this. This looks really good overall!

My main comment is the one about exposing the type of the map to store the backend metrics in. I think we can just do that internally inside of InteropClient, so that it doesn't need to be exposed to callers.

Please let me know if you have any questions. Thanks!

Copy link
Copy Markdown
Contributor Author

@eugeneo eugeneo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the review. Please take another look.

@eugeneo eugeneo marked this pull request as draft March 7, 2023 21:02
@eugeneo eugeneo force-pushed the tasks/tests/orca_per_rpc branch from 858a67f to 30b29b5 Compare March 8, 2023 23:00
@eugeneo
Copy link
Copy Markdown
Contributor Author

eugeneo commented Mar 8, 2023

This was an extensive change. I did a full reset to revert the files that no longer need to be changed. Please take another look.

I don't think failed checks should block the review at this point.

@eugeneo eugeneo marked this pull request as ready for review March 8, 2023 23:02
Copy link
Copy Markdown
Member

@markdroth markdroth left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The new LB policy looks great!

Just one substantive comment here, which is the one about simplifying the way that channel args are passed through the interop code. The current approach seems more complicated than it needs to be, and it took me a while to understand.

Please let me know if you have any questions. Thanks!

Copy link
Copy Markdown
Contributor Author

@eugeneo eugeneo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done, please take another look.

Copy link
Copy Markdown
Contributor Author

@eugeneo eugeneo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the review. I addressed the comments. PTAL.

Copy link
Copy Markdown
Member

@markdroth markdroth left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks really good!

Only minor comments remaining; feel free to merge after addressing.

Please let me know if you have any questions. Thanks!

}
return CreateChannelForTestCase(test_case, std::move(factories),
std::move(arguments));
arguments);
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should still use std::move().

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

clang-tidy does not allow it...

test/cpp/interop/client.cc:231:41: error: passing result of std::move() as a const reference argument; no move will actually happen [performance-move-const-arg,-warnings-as-errors]
                                        std::move(arguments));
                                        ^~~~~~~~~~         ~
Suppressed 9286 warnings (9210 in non-user code, 76 NOLINT).

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, I didn't realize that CreateChannelForTestCase() takes the argument as a const reference. It might make sense to change it to do so, but the way you have it now is fine too.

}
return CreateChannelForTestCase(test_case, std::move(factories),
std::move(arguments));
arguments);
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, I didn't realize that CreateChannelForTestCase() takes the argument as a const reference. It might make sense to change it to do so, but the way you have it now is fine too.

@eugeneo eugeneo merged commit c62ecd5 into grpc:master Mar 14, 2023
@eugeneo eugeneo deleted the tasks/tests/orca_per_rpc branch March 14, 2023 18:06
@copybara-service copybara-service bot added the imported Specifies if the PR has been imported to the internal repository label Mar 14, 2023
sergiitk added a commit that referenced this pull request Mar 15, 2023
@stanley-cheung
Copy link
Copy Markdown
Contributor

stanley-cheung commented Mar 15, 2023

@eugeneo Hi, this PR might have broken the observability interop test. Those tests aren't ready to be run as PR tests yet so there wasn't a signal there. I noticed that the observability tests (master tests running every 8 hours) start failing after this PR is merged. Here's the logs that shows the core dumped:

https://fusion2.corp.google.com/ci/kokoro/prod:grpc-gcp%2Ftools%2Fobservability%2Fmaster%2Fcontinuous_cpp/activity/f1566fe2-1017-4514-b828-c1c28be2ebf2/invocations/f1566fe2-1017-4514-b828-c1c28be2ebf2/targets/integration%2Fcpp:cpp:test_monitoring_basic/log

The observability tests also use the interop server/client. I also see you make some changes to observability_client.cc as well.

Do you mind taking a look? Hopefully it's something obvious. If it's not, I can help set up some way for you to reproduce this. It's basically just to docker pull an image from gcr.io, set some environment variables and run a docker run command.

If you do have a fix, I can help validate it against the observability interop test quickly.

Thanks!

sergiitk added a commit that referenced this pull request Mar 15, 2023
Now `messages.proto` requires `xds/v3/orca_load_report.proto`.
The dependency introduced in #32524.

ref b/273575071
@eugeneo
Copy link
Copy Markdown
Contributor Author

eugeneo commented Mar 15, 2023 via email

@stanley-cheung
Copy link
Copy Markdown
Contributor

It is fairly obvious. I will try to fix it.

Thanks! Let me know if you have a PR, I can run it through.

@eugeneo
Copy link
Copy Markdown
Contributor Author

eugeneo commented Mar 15, 2023

@stanley-cheung #32630 is in review now.

@stanley-cheung
Copy link
Copy Markdown
Contributor

Thanks, I just kicked off an observability interop test run. Will report back. Thanks!

@eugeneo
Copy link
Copy Markdown
Contributor Author

eugeneo commented Mar 15, 2023

That PR did not build, sorry. Please wait for checks to pass. Thanks!

@stanley-cheung
Copy link
Copy Markdown
Contributor

Ah, cool, will wait

@eugeneo
Copy link
Copy Markdown
Contributor Author

eugeneo commented Mar 16, 2023

@stanley-cheung that PR was checked in.

@stanley-cheung
Copy link
Copy Markdown
Contributor

@eugeneo That fixed the issue! Thanks a lot!

eugeneo pushed a commit to eugeneo/grpc that referenced this pull request Mar 20, 2023
XuanWang-Amos pushed a commit to XuanWang-Amos/grpc that referenced this pull request May 1, 2023
XuanWang-Amos pushed a commit to XuanWang-Amos/grpc that referenced this pull request May 1, 2023
…#32619)

Now `messages.proto` requires `xds/v3/orca_load_report.proto`.
The dependency introduced in grpc#32524.

ref b/273575071
wanlin31 pushed a commit that referenced this pull request May 18, 2023
wanlin31 pushed a commit that referenced this pull request May 18, 2023
Now `messages.proto` requires `xds/v3/orca_load_report.proto`.
The dependency introduced in #32524.

ref b/273575071
sergiitk added a commit to grpc/psm-interop that referenced this pull request Nov 8, 2023
Now `messages.proto` requires `xds/v3/orca_load_report.proto`.
The dependency introduced in grpc/grpc#32524.

ref b/273575071
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bloat/none disposition/Needs Internal Changes imported Specifies if the PR has been imported to the internal repository lang/c++ lang/core per-call-memory/neutral per-channel-memory/neutral release notes: no Indicates if PR should not be in release notes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants