GithubHelp home page GithubHelp logo

psm-interop's People

Contributors

arjan-bal avatar arvindbr8 avatar dapengzhang0 avatar dfawley avatar easwars avatar ejona86 avatar ericgribkoff avatar eugeneo avatar github-actions[bot] avatar gnossen avatar hs0210 avatar larry-safran avatar lidizheng avatar menghanl avatar murgatroid99 avatar purnesh42h avatar sanjaypujare avatar sergiitk avatar sethvargo avatar stanley-cheung avatar temawi avatar xuanwang-amos avatar yashykt avatar yifeizhuang avatar zasweq avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

psm-interop's Issues

Set reasonable `GetTopChannelsRequest.max_results`

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.

cc @murgatroid99

PodLogCollector: UnicodeDecodeError: 'utf-8' codec can't decode byte 0x90 in position 2077

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

Cleanup retry leads to server/client log link message printed multiple times

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.