grpc / psm-interop Goto Github PK
View Code? Open in Web Editor NEWProxyless Security Mesh End-to-End Tests
License: Apache License 2.0
Proxyless Security Mesh End-to-End Tests
License: Apache License 2.0
From channelz.proto
// If non-zero, the server will return a page of results containing
// at most this many items. If zero, the server will choose a
// reasonable page size. Must never be negative.
int64 max_results = 2;
Looks like nodejs (unlike other langs) returns just a single channel by default:
❯ grpcurl -import-path ~dev/grpc/src/proto -proto grpc/channelz/channelz.proto -d '{"max_results": 100}' --plaintext 127.0.0.1:8079 grpc.channelz.v1.Channelz.GetTopChannels | jq '.channel | length'
2
❯ grpcurl -import-path ~dev/grpc/src/proto -proto grpc/channelz/channelz.proto -d '{"max_results": 0}' --plaintext 127.0.0.1:8079 grpc.channelz.v1.Channelz.GetTopChannels | jq '.channel | length'
1
Confirmed this behavior in grpc-nodejs v1.7.x and v1.9.x
We've never noticed it, because the framework automatically lists all pages. However, we can remove extra an RPC by setting default max_results
to something like 10.
In some cases, restart_stream leads to UnicodeDecodeError
:
Exception in thread pod-log-psm-grpc-server-65dbd75668-qw72g:
Traceback (most recent call last):
File "/usr/lib/python3.9/threading.py", line 954, in _bootstrap_inner
self.run()
File "/tmp/work/psm-interop/framework/infrastructure/k8s_internal/k8s_log_collector.py", line 82, in run
self._stream_log()
File "/tmp/work/psm-interop/framework/infrastructure/k8s_internal/k8s_log_collector.py", line 110, in _stream_log
self._restart_stream()
File "/tmp/work/psm-interop/framework/infrastructure/k8s_internal/k8s_log_collector.py", line 136, in _restart_stream
for msg in self._watcher.stream(
File "/tmp/work/psm-interop/venv/lib/python3.9/site-packages/kubernetes/watch/watch.py", line 165, in stream
for line in iter_resp_lines(resp):
File "/tmp/work/psm-interop/venv/lib/python3.9/site-packages/kubernetes/watch/watch.py", line 58, in iter_resp_lines
seg = seg.decode('utf8')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x90 in position 2077: invalid start byte
Context: grpc/grpc#35280 (comment)
Not sure why we didn't notice calls_succeeded
in the first place.
I tried the oldest builds of xds test clients of each language, and all of them correctly set this field.
See #13 (comment).
cc @yashykt
Every retry adds one more link.
Example:
I0223 03:05:24.502794 140704337074112 k8s_base_runner.py:724] Deleting deployment psm-grpc-server
I0223 03:05:24.502925 140704337074112 k8s_port_forwarder.py:126] Shutting down PortForwarder(pid='97944', namespace='sergiitk-server-dev', destination='pod/psm-grpc-server-776f4c6fc8-lr5qd', '127.0.0.1:49197 -> 8080')
I0223 03:10:25.993897 140704337074112 retryers.py:206] Retrying framework.xds_k8s_testcase.IsolatedXdsKubernetesTestCase.cleanup in 10.0 seconds as it raised RetryError: Retry error calling framework.infrastructure.k8s.KubernetesNamespace.get_deployment: timeout 0:05:00 (h:mm:ss) exceeded. Check result callback returned False..
I0223 03:10:35.994243 140704337074112 k8s_base_runner.py:724] Deleting deployment psm-grpc-server
I0223 03:10:46.122605 140704337074112 k8s_base_runner.py:739] Deployment psm-grpc-server deleted
I0223 03:10:46.122936 140704337074112 xds_k8s_testcase.py:730] ----- Test client/server logs -----
I0223 03:10:46.123039 140704337074112 k8s_base_runner.py:919] No completed deployments of psm-grpc-client
I0223 03:10:46.123332 140704337074112 k8s_base_runner.py:976] GCP Logs Explorer link to psm-grpc-server-vqxrufda:
https://console.cloud.google.com/logs/query;query=resource.type%3D%22k8s_container%22%0Aresource.labels.project_id%3D%22sergiitk-grpc-gke%22%0Aresource.labels.container_name%3D%22psm-grpc-server%22%0Aresource.labels.namespace_name%3D%22sergiitk-server-dev%22%0Alabels.%22k8s-pod%2Fdeployment_id%22%3D%22psm-grpc-server-vqxrufda%22;timeRange=2024-02-23T11:05:12.142681Z%2F2024-02-23T11:10:25.993601Z;cursorTimestamp=2024-02-23T11:05:20.354273Z?project=sergiitk-grpc-gke
I0223 03:10:46.123543 140704337074112 k8s_base_runner.py:976] GCP Logs Explorer link to psm-grpc-server-vqxrufda:
https://console.cloud.google.com/logs/query;query=resource.type%3D%22k8s_container%22%0Aresource.labels.project_id%3D%22sergiitk-grpc-gke%22%0Aresource.labels.container_name%3D%22psm-grpc-server%22%0Aresource.labels.namespace_name%3D%22sergiitk-server-dev%22%0Alabels.%22k8s-pod%2Fdeployment_id%22%3D%22psm-grpc-server-vqxrufda%22;timeRange=2024-02-23T11:05:12.142681Z%2F2024-02-23T11:10:46.122861Z;cursorTimestamp=2024-02-23T11:05:20.354273Z?project=sergiitk-grpc-gke
[ OK ] AffinitySessionDrainTest.test_session_drain
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.