{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":27729926,"defaultBranch":"master","name":"grpc-java","ownerLogin":"grpc","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2014-12-08T19:00:00.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/7802525?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1714608888.0","currentOid":""},"activityList":{"items":[{"before":"6585d053b16a420d7b1fad37ac469a0320752efa","after":"13a929025bab7d1ac72107cfad8e03361f2a7d66","ref":"refs/heads/master","pushedAt":"2024-05-03T17:45:46.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ejona86","name":"Eric Anderson","path":"/ejona86","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2811396?s=80&v=4"},"commit":{"message":"Add MetricSink implementation for gRPC OpenTelemetry\n\nThis adds the following components that are required for gRPC A79\r\nnon-per-call metrics architecture.\r\n\r\n- MetricSink implementation for gRPC OpenTelemetry\r\n- Configurator for plumbing per call metrics ClientInterceptor and\r\n ServerStreamTracer.Factory via unified OpenTelemetryModule.","shortMessageHtmlLink":"Add MetricSink implementation for gRPC OpenTelemetry"}},{"before":"64ae9f057af34bfec8b532f84c2b622218af63b7","after":"6585d053b16a420d7b1fad37ac469a0320752efa","ref":"refs/heads/master","pushedAt":"2024-05-03T16:58:03.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sergiitk","name":"Sergii Tkachenko","path":"/sergiitk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/672669?s=80&v=4"},"commit":{"message":"buildscripts: simplify PSM interop Kokoro buildscripts (#11121)\n\nIntegrates the new features of the the Kokoro PSM Interop install library introduced in grpc/psm-interop#73.\r\n\r\nNearly all common functionality was moved from per-language/per-branch PSM Interop build scripts to [psm_interop_kokoro_lib.sh](https://github.com/grpc/psm-interop/blob/main/.kokoro/psm_interop_kokoro_lib.sh):\r\n1. The list of tests in the each test suite \r\n2. Per-test-suite flag customization\r\n3. `run_test` methods\r\n4. `build_docker_images_if_needed` methods\r\n5. Generic `build_test_app_docker_images` methods (simple docker build + docker push + docker tag). grpc-java is one exception, as it doesn't run docker directly, but a cloudbuild flow.\r\n\r\nNow all PSM Interop jobs share the same buildscripts by all test suites:\r\n1. buildscript that invokes the test: `psm-interop-test-{language}.sh` (configured as `build_file` in the build cfg)\r\n2. buildscript that builds the xDS test client/server and publishes them as a Docker image: `psm-interop-build-{language}.sh` (conventional name called from `psm_interop_kokoro_lib.sh`)\r\n\r\n`psm-interop-test-{language}.sh`:\r\n1. Sets `GRPC_LANGUAGE`, `BUILD_SCRIPT_DIR` environment variables.\r\n2. Downloads the shared `psm_interop_kokoro_lib.sh` from the main branch of the psm-interop repo.\r\n3. Sources `psm-interop-build-{language}.sh`\r\n4. Calls `psm::run \"${PSM_TEST_SUITE}\"` (`PSM_TEST_SUITE` configured in the cfg file).\r\n\r\n`psm-interop-build-{language}.sh`:\r\n1. Defines `psm::lang::build_docker_images` which is called from `psm_interop_kokoro_lib.sh`.\r\n2. Invokes any repo-specific logic.\r\n3. May use `psm::build::docker_images_generic` for generic Docker build, tag, push, or provide implement its own build/publish method.\r\n\r\nReferences:\r\n- b/288578634\r\n- See the full list of the new features at grpc/psm-interop#73.\r\n- Additional fixes to the shared lib: grpc/psm-interop#78, grpc/psm-interop#79","shortMessageHtmlLink":"buildscripts: simplify PSM interop Kokoro buildscripts (#11121)"}},{"before":null,"after":"a1d19327febde9c26fff8f59f7825ffe15dda4c7","ref":"refs/heads/v1.64.x","pushedAt":"2024-05-02T00:14:48.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"temawi","name":"Terry Wilson","path":"/temawi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12451183?s=80&v=4"},"commit":{"message":"rls: Add the target label to RLS counter metrics (#11142)","shortMessageHtmlLink":"rls: Add the target label to RLS counter metrics (#11142)"}},{"before":"a1d19327febde9c26fff8f59f7825ffe15dda4c7","after":"64ae9f057af34bfec8b532f84c2b622218af63b7","ref":"refs/heads/master","pushedAt":"2024-05-01T23:58:08.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"temawi","name":"Terry Wilson","path":"/temawi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12451183?s=80&v=4"},"commit":{"message":"Start 1.65.0 development cycle (#11143)","shortMessageHtmlLink":"Start 1.65.0 development cycle (#11143)"}},{"before":"35a171bc1d544241dd983deee9f407ebddddbc4a","after":"a1d19327febde9c26fff8f59f7825ffe15dda4c7","ref":"refs/heads/master","pushedAt":"2024-05-01T23:19:57.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"temawi","name":"Terry Wilson","path":"/temawi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12451183?s=80&v=4"},"commit":{"message":"rls: Add the target label to RLS counter metrics (#11142)","shortMessageHtmlLink":"rls: Add the target label to RLS counter metrics (#11142)"}},{"before":"a9fb272b784180305c6ec3de77e21359752ac5b6","after":"35a171bc1d544241dd983deee9f407ebddddbc4a","ref":"refs/heads/master","pushedAt":"2024-05-01T22:20:38.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"temawi","name":"Terry Wilson","path":"/temawi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12451183?s=80&v=4"},"commit":{"message":"xds: include the target label to WRR metrics (#11141)","shortMessageHtmlLink":"xds: include the target label to WRR metrics (#11141)"}},{"before":"4561bb5b804ca242e0dd4047d8d2744c3eb9920f","after":"a9fb272b784180305c6ec3de77e21359752ac5b6","ref":"refs/heads/master","pushedAt":"2024-05-01T18:24:38.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"temawi","name":"Terry Wilson","path":"/temawi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12451183?s=80&v=4"},"commit":{"message":"rls: add counter metrics (#11138)\n\nAdds the following metrics to the RlsLoadBalancer:\r\n- grpc.lb.rls.default_target_picks\r\n- grpc.lb.rls.target_picks\r\n- grpc.lb.rls.failed_picks","shortMessageHtmlLink":"rls: add counter metrics (#11138)"}},{"before":"27d57585cd36df644b4981104c196d6bfc845d0b","after":"4561bb5b804ca242e0dd4047d8d2744c3eb9920f","ref":"refs/heads/master","pushedAt":"2024-05-01T16:19:45.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ejona86","name":"Eric Anderson","path":"/ejona86","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2811396?s=80&v=4"},"commit":{"message":"Plumb target to load balancer\n\ngRFC A78 has WRR and pick-first include a `grpc.target` label, defined\nin A66:\n\n> `grpc.target` : Canonicalized target URI used when creating gRPC\n> Channel, e.g. \"dns:///pubsub.googleapis.com:443\",\n> \"xds:///helloworld-gke:8000\". Canonicalized target URI is the form\n> with the scheme included if the user didn't mention the scheme\n> (`scheme://[authority]/path`). For channels such as inprocess channels\n> where a target URI is not available, implementations can synthesize a\n> target URI.","shortMessageHtmlLink":"Plumb target to load balancer"}},{"before":"4c78a9746c863731b02a77d37e49631065ee6b8c","after":"27d57585cd36df644b4981104c196d6bfc845d0b","ref":"refs/heads/master","pushedAt":"2024-04-30T14:18:56.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ejona86","name":"Eric Anderson","path":"/ejona86","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2811396?s=80&v=4"},"commit":{"message":"api: Return a noop MetricRecorder from Helper by default\n\nSince 06df25b65d, WRR has been calling this method, and it will get an\nexception. We don't want WRR to be broken until we have MetricRecorder\nfully plumbed.","shortMessageHtmlLink":"api: Return a noop MetricRecorder from Helper by default"}},{"before":"06df25b65dd9351a6aa8c330b8753d8c814b30ff","after":"4c78a9746c863731b02a77d37e49631065ee6b8c","ref":"refs/heads/master","pushedAt":"2024-04-29T23:30:51.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ejona86","name":"Eric Anderson","path":"/ejona86","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2811396?s=80&v=4"},"commit":{"message":"Plumb optional labels from LB to ClientStreamTracer\n\nAs part of gRFC A78:\r\n\r\n> To support the locality label in the per-call metrics, we will provide\r\n> a mechanism for LB picker to add optional labels to the call attempt\r\n> tracer.","shortMessageHtmlLink":"Plumb optional labels from LB to ClientStreamTracer"}},{"before":"795ee0f6e30e486b2c33699728464893f02f08bb","after":"06df25b65dd9351a6aa8c330b8753d8c814b30ff","ref":"refs/heads/master","pushedAt":"2024-04-26T22:59:49.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"temawi","name":"Terry Wilson","path":"/temawi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12451183?s=80&v=4"},"commit":{"message":"core,xds: Metrics recording in WRR LB (#11129)\n\nAdds the recording of the four metrics documented in:\r\n\r\nhttps://github.com/grpc/proposal/blob/master/A78-grpc-metrics-wrr-pf-xds.md#weighted-round-robin-lb-policy","shortMessageHtmlLink":"core,xds: Metrics recording in WRR LB (#11129)"}},{"before":"da619e2bde611efd623ec1ec397a3b8c25931966","after":"795ee0f6e30e486b2c33699728464893f02f08bb","ref":"refs/heads/master","pushedAt":"2024-04-26T20:47:55.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"DNVindhya","name":"Vindhya Ningegowda","path":"/DNVindhya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10396166?s=80&v=4"},"commit":{"message":"Add MetricRecorder implementation (#11128)\n\n* added MetricRecorderImpl and unit tests for MetricInstrumentRegistry\r\n\r\n* updated MetricInstrumentRegistry to use array instead of ArrayList\r\n\r\n* renamed record<>Counter APIs to add<>Counter. Added check for mismatched label values\r\n\r\n* added lock for instruments array","shortMessageHtmlLink":"Add MetricRecorder implementation (#11128)"}},{"before":"c7cf329ef1ba98060e746e724b8b8cc7be30ab48","after":"bdb9ca5fb036473a6d81c6a6361d7e2fc1d91784","ref":"refs/heads/v1.63.x","pushedAt":"2024-04-25T22:39:10.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ejona86","name":"Eric Anderson","path":"/ejona86","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2811396?s=80&v=4"},"commit":{"message":"netty: Release SendGrpcFrameCommand when stream is missing (#11116)\n\n`sendGrpcFrame` owns the buffer in `SendGrpcFrameCommand`. If the frame is not handed off to netty, it needs to be released in the method.\r\n\r\nhttps://github.com/grpc/grpc-java/issues/11115","shortMessageHtmlLink":"netty: Release SendGrpcFrameCommand when stream is missing (#11116)"}},{"before":"056195401f0e558cd194c42200b69fb9ffa4a2d7","after":"da619e2bde611efd623ec1ec397a3b8c25931966","ref":"refs/heads/master","pushedAt":"2024-04-25T22:38:39.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ejona86","name":"Eric Anderson","path":"/ejona86","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2811396?s=80&v=4"},"commit":{"message":"rls: Fix time handling in CachingRlsLbClient\n\n`getMinEvictionTime()` was fixed to make sure only deltas were used for\ncomparisons (`a < b` is broken; `a - b < 0` is okay). It had also\nreturned `0` by default, which was meaningless as there is no epoch for\n`System.nanoTime()`. LinkedHashLruCache now passes the current time into\na few more functions since the implementations need it and it was\nsometimes already available. This made it easier to make some classes\nstatic.","shortMessageHtmlLink":"rls: Fix time handling in CachingRlsLbClient"}},{"before":"2840fd6b47296162c5627992ca416f2033a27228","after":"056195401f0e558cd194c42200b69fb9ffa4a2d7","ref":"refs/heads/master","pushedAt":"2024-04-25T22:35:50.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ejona86","name":"Eric Anderson","path":"/ejona86","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2811396?s=80&v=4"},"commit":{"message":"rls: Document RefCountedChildPolicyWrapperFactory as non-threadsafe\n\nInstead of having docs in RefCountedChildPolicyWrapperFactory saying\nthat every method was guarded by a lock, I added `@GuardedBy(\"lock\")`\nwithin CachingRlsLbClient, so now it is clearly not thread-safe and the\nlock protects access. The AtomicLong was replaced with a long since\n1) there was no multi-threading and 2) the logic was not atomic-safe\nwhich was misleading.","shortMessageHtmlLink":"rls: Document RefCountedChildPolicyWrapperFactory as non-threadsafe"}},{"before":"5c9b492318d6a996f7703ee83d91e0568cfe0c2a","after":"2840fd6b47296162c5627992ca416f2033a27228","ref":"refs/heads/master","pushedAt":"2024-04-25T21:59:33.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ejona86","name":"Eric Anderson","path":"/ejona86","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2811396?s=80&v=4"},"commit":{"message":"opentelemetry: Remove delayed attempt recording\n\nIn OpenCensus recording an attempt was delayed in order to wait for\ninboundUncompressedSize(). But we don't need that in OpenTelemetry, and\ncould have removed this code when copying from OpenCensus.","shortMessageHtmlLink":"opentelemetry: Remove delayed attempt recording"}},{"before":"e036b1b198bfa2eb5fbdd27fc02a5df95ecd939b","after":"5c9b492318d6a996f7703ee83d91e0568cfe0c2a","ref":"refs/heads/master","pushedAt":"2024-04-25T01:05:54.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"larry-safran","name":"Larry Safran","path":"/larry-safran","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107004254?s=80&v=4"},"commit":{"message":"Add `StatusProto.toStatusException` overload to accept `Throwable` (#11083)\n\n* Add `StatusProto.toStatusException` overload to accept `Throwable`\r\n---------\r\n\r\nCo-authored-by: Eric Anderson ","shortMessageHtmlLink":"Add StatusProto.toStatusException overload to accept Throwable (#…"}},{"before":"11612b484a24575b3eb64c0641f313cf3054dc1f","after":"e036b1b198bfa2eb5fbdd27fc02a5df95ecd939b","ref":"refs/heads/master","pushedAt":"2024-04-24T21:37:37.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ejona86","name":"Eric Anderson","path":"/ejona86","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2811396?s=80&v=4"},"commit":{"message":"netty: Allow deframer errors to close stream with a status code\n\nToday, deframer errors cancel the stream without communicating a status code\nto the peer. This change causes deframer errors to trigger a best-effort\nattempt to send trailers with a status code so that the peer understands\nwhy the stream is being closed.\n\nFixes #3996","shortMessageHtmlLink":"netty: Allow deframer errors to close stream with a status code"}},{"before":"9bf04db0d304f756e4303c0015e1ce9967e09b36","after":"11612b484a24575b3eb64c0641f313cf3054dc1f","ref":"refs/heads/master","pushedAt":"2024-04-24T00:24:47.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ejona86","name":"Eric Anderson","path":"/ejona86","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2811396?s=80&v=4"},"commit":{"message":"Upgrade OpenTelemetry to 1.36.0","shortMessageHtmlLink":"Upgrade OpenTelemetry to 1.36.0"}},{"before":"fb9a10809f5106333f447fe0cda1c761d5846f72","after":"9bf04db0d304f756e4303c0015e1ce9967e09b36","ref":"refs/heads/master","pushedAt":"2024-04-22T23:14:48.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"larry-safran","name":"Larry Safran","path":"/larry-safran","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107004254?s=80&v=4"},"commit":{"message":"reorder bazel rule parameters to satisfy CheckBzlFormat (#11118)","shortMessageHtmlLink":"reorder bazel rule parameters to satisfy CheckBzlFormat (#11118)"}},{"before":"77e59b29dd5328fdb8166e22b6968e3ea834ed8c","after":"fb9a10809f5106333f447fe0cda1c761d5846f72","ref":"refs/heads/master","pushedAt":"2024-04-22T17:27:39.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"larry-safran","name":"Larry Safran","path":"/larry-safran","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/107004254?s=80&v=4"},"commit":{"message":"netty: Release SendGrpcFrameCommand when stream is missing (#11116)\n\n`sendGrpcFrame` owns the buffer in `SendGrpcFrameCommand`. If the frame is not handed off to netty, it needs to be released in the method.\r\n\r\nhttps://github.com/grpc/grpc-java/issues/11115","shortMessageHtmlLink":"netty: Release SendGrpcFrameCommand when stream is missing (#11116)"}},{"before":"9de8e44384c27b95a0b04118a2bcaf108a5e4409","after":"77e59b29dd5328fdb8166e22b6968e3ea834ed8c","ref":"refs/heads/master","pushedAt":"2024-04-22T16:54:49.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"temawi","name":"Terry Wilson","path":"/temawi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12451183?s=80&v=4"},"commit":{"message":"cronet: Update to StandardCharsets and assertNotNull API's","shortMessageHtmlLink":"cronet: Update to StandardCharsets and assertNotNull API's"}},{"before":"8a21afcc9e07ec1c50408c17c2c1415976ccbc71","after":"9de8e44384c27b95a0b04118a2bcaf108a5e4409","ref":"refs/heads/master","pushedAt":"2024-04-22T14:48:50.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"ejona86","name":"Eric Anderson","path":"/ejona86","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2811396?s=80&v=4"},"commit":{"message":"util: Remove deactivation and GracefulSwitchLb from MultiChildLb\n\nIt is easy to manage these things outside of MultiChildLb and it makes\nthe shared code easier and use less memory. In particular, we don't want\nto use many instances of GracefulSwitchLb in virtually every policy\nsimply because it was needed in one or two cases.","shortMessageHtmlLink":"util: Remove deactivation and GracefulSwitchLb from MultiChildLb"}},{"before":"52e65ec0d89700b754f6393deeb3810fe5dffbb3","after":"8a21afcc9e07ec1c50408c17c2c1415976ccbc71","ref":"refs/heads/master","pushedAt":"2024-04-19T01:34:04.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sergiitk","name":"Sergii Tkachenko","path":"/sergiitk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/672669?s=80&v=4"},"commit":{"message":"compiler: add option `@generated=omit` (#11086)\n\nrelated to #11081","shortMessageHtmlLink":"compiler: add option @generated=omit (#11086)"}},{"before":"add8c37a4148f6dd857dd31c7425e2ae526e0528","after":"52e65ec0d89700b754f6393deeb3810fe5dffbb3","ref":"refs/heads/master","pushedAt":"2024-04-18T22:26:01.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ejona86","name":"Eric Anderson","path":"/ejona86","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/2811396?s=80&v=4"},"commit":{"message":"minor: remove the unnecessary final,static (#11098)","shortMessageHtmlLink":"minor: remove the unnecessary final,static (#11098)"}},{"before":"c404c9f66c2a07516d2dbfedc36d1db36958b75a","after":"add8c37a4148f6dd857dd31c7425e2ae526e0528","ref":"refs/heads/master","pushedAt":"2024-04-17T23:43:21.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sergiitk","name":"Sergii Tkachenko","path":"/sergiitk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/672669?s=80&v=4"},"commit":{"message":"Add `load()` statements for the Bazel builtin top-level java symbols (#11105)\n\nLoads are being added in preparation for moving the symbols out of Bazel and into `rules_java`.","shortMessageHtmlLink":"Add load() statements for the Bazel builtin top-level java symbols (#…"}},{"before":"e490273edd37dba1cf3c3b93de26bfc40ac99eaa","after":"c404c9f66c2a07516d2dbfedc36d1db36958b75a","ref":"refs/heads/master","pushedAt":"2024-04-17T22:10:57.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"DNVindhya","name":"Vindhya Ningegowda","path":"/DNVindhya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10396166?s=80&v=4"},"commit":{"message":"Add MetricRecorder and MetricSink interface (#11109)\n\nAdds interfaces required for recording metrics from gRPC components. And added API to get `MetricRecorder` in `LoadBalancer.Helper` and add `MetricSink` to `ManagedChannelBuilder`.","shortMessageHtmlLink":"Add MetricRecorder and MetricSink interface (#11109)"}},{"before":"497e1552172632107574d67d7c092a3f5a39a980","after":"e490273edd37dba1cf3c3b93de26bfc40ac99eaa","ref":"refs/heads/master","pushedAt":"2024-04-16T23:27:51.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sergiitk","name":"Sergii Tkachenko","path":"/sergiitk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/672669?s=80&v=4"},"commit":{"message":"netty: Handle write queue promise failures (#11016)\n\nHandles Netty write frame failures caused by issues in the Netty\r\nitself.\r\n\r\nNormally we don't need to do anything on frame write failures because\r\nthe cause of a failed future would be an IO error that resulted in\r\nthe stream closure. Prior to this PR we treated these issues as a\r\nnoop, except the initial headers write on the client side.\r\n\r\nHowever, a case like netty/netty#13805 (a bug in generating next\r\nstream id) resulted in an unclosed stream on our side. This PR adds\r\nwrite frame future failure handlers that ensures the stream is\r\ncancelled, and the cause is propagated via Status.\r\n\r\nFixes #10849","shortMessageHtmlLink":"netty: Handle write queue promise failures (#11016)"}},{"before":"34e241a60e7dd54195daaec3a16decae0dd702cc","after":"497e1552172632107574d67d7c092a3f5a39a980","ref":"refs/heads/master","pushedAt":"2024-04-12T20:42:40.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"DNVindhya","name":"Vindhya Ningegowda","path":"/DNVindhya","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/10396166?s=80&v=4"},"commit":{"message":"Add Metric Instrument Registry (#11103)\n\n* added metric instrument registry","shortMessageHtmlLink":"Add Metric Instrument Registry (#11103)"}},{"before":"c760bd5b002e20ac5934fe64d2286ca7b0a29334","after":"e6d3411397a7d6e3e8fa04ec1f40e3b282fb4547","ref":"refs/heads/v1.55.x","pushedAt":"2024-04-08T19:52:57.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"sergiitk","name":"Sergii Tkachenko","path":"/sergiitk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/672669?s=80&v=4"},"commit":{"message":"buildscripts: Migrate PSM Interop to Artifact Registry (#11079) (#11095)\n\nFrom Container Registry (gcr.io) to Artifact Registry (pkg.dev).","shortMessageHtmlLink":"buildscripts: Migrate PSM Interop to Artifact Registry (#11079) (#11095)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEQP1HtAA","startCursor":null,"endCursor":null}},"title":"Activity · grpc/grpc-java"}