Aias00 opened a new issue, #6612:
URL: https://github.com/apache/shenyu/issues/6612

   - severity: Critical
   - files: 
`shenyu-plugin/shenyu-plugin-proxy/shenyu-plugin-rpc/shenyu-plugin-grpc/src/main/java/org/apache/shenyu/plugin/grpc/GrpcPlugin.java:107`;
 `.../grpc/client/ShenyuGrpcClient.java:95`
   - description: `doExecute` calls `client.call(...)` which internally does 
`this.invoke(callParams).get()` — a blocking `ListenableFuture.get()`. 
`Mono.fromFuture(result.thenApply(...))` at line 110 wraps an already-completed 
future (line 108 returns `CompletableFuture.completedFuture(...)`), providing 
no async scheduling. The entire gRPC RPC blocks the reactor netty event-loop 
thread for up to `extInfo.timeout` (default 5000ms).
   - impact: Starves all other requests sharing that event-loop thread; under 
load causes cascading timeouts and thread starvation.
   - suggested_fix: `Mono.fromCallable(() -> 
client.call(...)).subscribeOn(Schedulers.boundedElastic())` or make 
`ShenyuGrpcClient.call` return the uncompleted future without `.get()`.
   - confidence: High
   - related_existing: none — PERF-45 (ClickHouse `.get()`) is a different 
module; this is the gRPC plugin's own blocking call on the event loop.
   
   ---
   
   ## High
   
   ---
   _Identified during the 2026-08-02 deep re-scan; full list in 
[`docs/scan2-2026-08-02/00-consolidated-critical-high.md`](docs/scan2-2026-08-02/00-consolidated-critical-high.md)._


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to