apache / apache/gravitino

[Subtask] Support output log retrieval for job handler

Open
#12,716 3 comments 0 reactions 0 assignees View on GitHub
subtask
Dominant language
Java
Stars
3.2k
Forks
935
Avg merge
1d 16h
Merged PRs (30d)
298

Description

### Describe the subtask

`JobExecutor` (`core/src/main/java/org/apache/gravitino/connector/job/JobExecutor.java`) exposes only `submitJob`/`getJobStatus`/`cancelJob` — there is no way to retrieve a job's stdout/stderr. Callers (and the REST API) have no way to see job output for debugging failed or running jobs.

**Proposed change:**
- Add output-log retrieval to `JobExecutor` (default method throwing `UnsupportedOperationException`, so existing implementers aren't broken), following the same backward-compatible default-method pattern used for `queuedAt`/`startedAt`/`finishedAt`.
- Implement it for the built-in executors that can support it (e.g. the local runner) by surfacing captured stdout/stderr.
- Expose it through `JobHandle` (Java + Python), the REST `Job` payload (`docs/open-api/jobs.yaml`), and the Java/Python client APIs.
- Follows the same cross-cutting pattern as commit `62c5a2f2b` ("Expose job queuedAt and startedAt across the public surface"), which touched the identical set of layers for a different new field.

### Parent issue

#12667

Contributor guide

Open the contributing guide

Research direction

Start with core/src/main/java/org/apache/gravitino/connector/job/JobExecutor.java and compare the queuedAt/startedAt/finishedAt default-method pattern, then use commit 62c5a2f2b as the cross-layer guide. Trace JobHandle, the local runner, the Java and Python client APIs, and docs/open-api/jobs.yaml. Done means supported executors surface captured stdout/stderr and the Java, Python, REST, and client interfaces expose the retrieval consistently.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, openapi, python
Domain
api, backend-api-design
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.