apache / apache/texera

Dead PythonExpressionEvaluateRequest handler blocks the WS dispatch thread

Open
#5,850 1 comment 0 reactions 1 assignee Claimed by @Ma77Ball View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.