apache / apache/texera

Python expression results are dropped by worker transport

Open Beginner friendly
#8,235 2 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.