mirror of
https://github.com/ansible/awx.git
synced 2026-01-11 18:09:57 -03:30
Merge pull request #12156 from mabashian/large-workflow-crash
Don't repeatedly traverse workflow nodes when finding ancestors
This commit is contained in:
commit
e87c121f8f
@ -548,17 +548,21 @@ function selectSourceForLinking(state, sourceNode) {
|
||||
invalidLinkTargetIds.push(link.target.id);
|
||||
}
|
||||
if (!parentMap[link.target.id]) {
|
||||
parentMap[link.target.id] = [];
|
||||
parentMap[link.target.id] = {
|
||||
parents: [],
|
||||
traversed: false,
|
||||
};
|
||||
}
|
||||
parentMap[link.target.id].push(link.source.id);
|
||||
parentMap[link.target.id].parents.push(link.source.id);
|
||||
});
|
||||
|
||||
const getAncestors = (id) => {
|
||||
if (parentMap[id]) {
|
||||
parentMap[id].forEach((parentId) => {
|
||||
if (parentMap[id] && !parentMap[id].traversed) {
|
||||
parentMap[id].parents.forEach((parentId) => {
|
||||
invalidLinkTargetIds.push(parentId);
|
||||
getAncestors(parentId);
|
||||
});
|
||||
parentMap[id].traversed = true;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user