From a004096b3c92cb5c7b94758fae5b35cb15c8d268 Mon Sep 17 00:00:00 2001 From: Eric Anderson Date: Mon, 25 Sep 2023 13:15:52 -0700 Subject: [PATCH] Revert "stub: enable throwing rejected execution exception on ThreadlessExecutor shutdown (#10555)" This reverts commit 5f480de2ee7bf56e3cb15635c0bd0d71f6f7006a. We're seeing it thrown in (b/301552213): ``` java.util.concurrent.RejectedExecutionException at io.grpc.stub.ClientCalls$ThreadlessExecutor.execute(ClientCalls.java:761) at io.grpc.internal.RetriableStream$Sublistener.closed(RetriableStream.java:954) at io.grpc.internal.ForwardingClientStreamListener.closed(ForwardingClientStreamListener.java:34) at io.grpc.internal.InternalSubchannel$CallTracingTransport$1$1.closed(InternalSubchannel.java:691) at io.grpc.internal.DelayedStream$DelayedStreamListener$4.run(DelayedStream.java:510) at io.grpc.internal.DelayedStream$DelayedStreamListener.delayOrExecute(DelayedStream.java:462) at io.grpc.internal.DelayedStream$DelayedStreamListener.closed(DelayedStream.java:507) at io.grpc.internal.AbstractClientStream$TransportState.closeListener(AbstractClientStream.java:458) at io.grpc.internal.AbstractClientStream$TransportState.-$$Nest$mcloseListener(AbstractClientStream.java) at io.grpc.internal.AbstractClientStream$TransportState$1.run(AbstractClientStream.java:441) at io.grpc.internal.AbstractClientStream$TransportState.deframerClosed(AbstractClientStream.java:278) at io.grpc.okhttp.OkHttpClientStream$TransportState.deframerClosed(OkHttpClientStream.java:297) at io.grpc.internal.MessageDeframer.close(MessageDeframer.java:234) at io.grpc.internal.MessageDeframer.closeWhenComplete(MessageDeframer.java:192) at io.grpc.internal.AbstractStream$TransportState.closeDeframer(AbstractStream.java:201) at io.grpc.internal.AbstractClientStream$TransportState.transportReportStatus(AbstractClientStream.java:444) at io.grpc.okhttp.OkHttpClientTransport.startGoAway(OkHttpClientTransport.java:899) at io.grpc.okhttp.OkHttpClientTransport.-$$Nest$mstartGoAway(OkHttpClientTransport.java) at io.grpc.okhttp.OkHttpClientTransport$ClientFrameHandler.run(OkHttpClientTransport.java:1123) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644) at java.lang.Thread.run(Thread.java:1012) ``` --- stub/src/main/java/io/grpc/stub/ClientCalls.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stub/src/main/java/io/grpc/stub/ClientCalls.java b/stub/src/main/java/io/grpc/stub/ClientCalls.java index e4d675487d..13fb00d3b3 100644 --- a/stub/src/main/java/io/grpc/stub/ClientCalls.java +++ b/stub/src/main/java/io/grpc/stub/ClientCalls.java @@ -58,8 +58,8 @@ public final class ClientCalls { @VisibleForTesting static boolean rejectRunnableOnExecutor = - Strings.isNullOrEmpty(System.getenv("GRPC_CLIENT_CALL_REJECT_RUNNABLE")) - || Boolean.parseBoolean(System.getenv("GRPC_CLIENT_CALL_REJECT_RUNNABLE")); + !Strings.isNullOrEmpty(System.getenv("GRPC_CLIENT_CALL_REJECT_RUNNABLE")) + && Boolean.parseBoolean(System.getenv("GRPC_CLIENT_CALL_REJECT_RUNNABLE")); // Prevent instantiation private ClientCalls() {}