hansva commented on PR #8865: URL: https://github.com/apache/hop/pull/8865#issuecomment-6144313367
Requesting changes. The idea is right, and the DB summary listing is a clear win. Unit tests pass locally (57), but none register the parent and the child through separate location instances, which is the real-world setup. **Must fix** 1. **File and Neo4j locations can no longer find a child from its action or transform.** `parentId` now means the owning workflow/pipeline, but only the caching locations also match `launchedById`. `FileExecutionInfoLocation.findExecutions` still matches `parentId` only. Neo4j never stores `launchedById`, and its relationship now runs workflow→pipeline. On these locations the following return nothing: execution info for an action/transform from the workflow/pipeline graph (`HopGuiWorkflowGraph:6032`, `HopGuiPipelineGraph:7806`), viewer drill-down, ExecInfo *FindExecutions*, and the REST/servlet child lookups. Either update both locations, or keep `parentId` as it was and add a new field for the owner. 2. **Children started by transforms usually don't get the stored link.** Each executor has its own location instance, and `rememberLaunchedChild` looks for the launcher in the parent document on disk. Local pipelines are single-writer, so their transforms only reach disk on the 5 s timer. A Pipeline/Workflow Executor or mapping that starts a child early finds no launcher, and the link is skipped without a log line. Drill-down then falls back to the full `findExecutions` scan. Workflow actions are fine, since the parent document is written right before the action runs. Suggestion: when the launcher is missing, write a minimal launcher entry with the child id; the parent's next save already merges child ids from disk. Please add a test with two location instances. **DB location regressions (summary rows)** 3. *Copy filename* / *Copy relative filename* are always disabled: the row has no filename (`ExecutionPerspective:1376`). Load the full execution on click. 4. Listed rows get `updateTime = null`, and `isStale()` treats null as fresh, so a run whose process died shows as running forever. One option: load the state only for unfinished rows. **Compatibility** 5. ExecInfo inserts `launchedById` in the middle of its output row, shifting every later field; please append it at the end. `findParentId` / *FindParentId* now returns the workflow instead of the action, which needs a release note. **Minor** - Saving merges child ids by reading the document first, but two instances writing at the same moment can still lose an id. - The child's instance now caches the parent document, so the state-update fallback `findCacheEntryWithParent` can match the parent. It's only reachable when the child's own entry can't be found. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
