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]
