Dead PythonExpressionEvaluateRequest handler blocks the WS dispatch thread
- Dominant language
- Scala
- Stars
- 314
- Forks
- 187
- Avg merge
- 1d 21h
- Merged PRs (30d)
- 214
Description
### Task Summary
`ExecutionConsoleService`'s handler for `PythonExpressionEvaluateRequest` blocks the WebSocket dispatch thread on `Await.result(..., 10.seconds)` (`ExecutionConsoleService.scala:288`). All WS requests are dispatched synchronously through a single RxJava `PublishSubject` (`WebsocketInput.scala`), so this parks the shared dispatch thread for up to 10s.
However, the frontend never constructs or sends `PythonExpressionEvaluateRequest`; it exists only as a type/registry entry in `workflow-websocket.interface.ts`, so the handler is currently unreachable from the UI. Note the backend and Python side of the feature are fully implemented and unit-tested (`EvaluatePythonExpressionHandler.scala`, `evaluate_expression_handler.py`, `test_evaluate_expression_handler.py`), so this is an incomplete/disabled feature rather than true dead code.
Open question for discussion: either (a) wire up the frontend trigger and make the handler non-blocking (chain the `Future` instead of `Await.result`), or (b) deliberately retire the whole eval-expression pathway (frontend types + WS models + RPC + Python handler). Filing for a maintainer decision before any code change.
### Task Type
- [x] Performance
Contributor guide
Assessment
This issue has not been assessed yet.