Python expression results are dropped by worker transport
- Dominant language
- Scala
- Stars
- 314
- Forks
- 187
- Avg merge
- 1d 21h
- Merged PRs (30d)
- 214
Description
### What happened?
The worker service returns `EvaluatedValue` for `EvaluatePythonExpression`, but `ControlReturn` has no oneof member for that message type. The generic RPC wrapper therefore creates an empty return and silently drops the evaluated expression result.
Before: expression evaluates to a value -> worker wraps the reply -> empty ControlReturn reaches the coordinator
After: expression evaluates to a value -> EvaluatedValue is packed -> the result reaches the coordinator
Expected behavior:
`ControlReturn` should include the worker's `EvaluatedValue` response so expression results survive transport.
### How to reproduce?
Create an `EvaluatedValue` containing `42` and pass it through the same `set_one_of(ControlReturn, response)` transport path used by the Python RPC server.
Observed on `70c21145887920528d7d5540e3fb790b43e8b759`:
```text
packed_member=None
envelope=ControlReturn()
response_value=42
```
### Version/Branch
1.3.0-incubating-SNAPSHOT (main)
### Commit Hash (Optional)
`70c21145887920528d7d5540e3fb790b43e8b759`
Contributor guide
Research direction
Start at the Python RPC server's set_one_of(ControlReturn, response) transport path and inspect the ControlReturn oneof alongside EvaluatedValue. Add the missing response member, then reproduce the issue with an EvaluatedValue containing 42 and confirm the transported ControlReturn preserves it.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python, scala
- Domain
- api, backend, distributed-systems
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 72/100