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]

Reply via email to