[jira] [Commented] (OOZIE-3669) Fix purge process for bundles to prevent orphan coordinators

2022-11-13 Thread Janos Makai (Jira)


[ 
https://issues.apache.org/jira/browse/OOZIE-3669?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17633252#comment-17633252
 ] 

Janos Makai commented on OOZIE-3669:


Thank you [~dionusos] :)

> Fix purge process for bundles to prevent orphan coordinators
> 
>
> Key: OOZIE-3669
> URL: https://issues.apache.org/jira/browse/OOZIE-3669
> Project: Oozie
>  Issue Type: Bug
>  Components: core
>Affects Versions: 5.2.1
>Reporter: Janos Makai
>Assignee: Janos Makai
>Priority: Major
> Fix For: 5.3.0
>
> Attachments: OOZIE-3669-001.patch, OOZIE-3669-002.patch, 
> OOZIE-3669-003.patch
>
>
> The Oozie purge process for bundles is creating orphan coordinators. When 
> purging bundle jobs and bundle actions, it does not always purge coordinator 
> jobs, etc. This causes orphaned coordinators, meaning neither they nor their 
> children will ever be purged due to the purge logic.
>  
> 
>  
> When purging bundles, it first compiles a list of any coordinators which are 
> not ready to purge [0]. It checks the coord list for status and 
> coordOlderThan. If the no child coordinator meets these criteria, it adds it 
> to the coordsToPurge list.
> Being added to the list does not guarantee that the coordinator will be 
> purged however. The processCoordinators method also has logic to check if the 
> children workflows are older than wfOlderThan [1]. If a purge command is 
> started where wfOlderThan is much higher than coordOlderThan (for example the 
> default values are 30 days for workflows and 7 days for coordinators), then 
> the bundle will be purged, but the coordinator will not.
> Since the bundle is now purged, the child coordinator will never be purged 
> because only parentless coordinators will be checked, since coordinators with 
> parents will only be purged when the bundle is purged
> [0]
> {code:java}
> PurgeXCommand
>  380 long numChildrenNotReady = jpaService.execute(
>  381 new CoordJobsCountNotForPurgeFromParentIdJPAExecutor(coordOlderThan, 
> bundleId));
> CoordinatorJobBean
>  192 @NamedQuery(name = "GET_COORD_COUNT_WITH_PARENT_ID_NOT_READY_FOR_PURGE", 
> query = "select count(w) from CoordinatorJobBean"
>  193 + " w where w.bundleId = :parentId and (w.statusStr NOT IN ('SUCCEEDED', 
> 'FAILED', 'KILLED', 'DONEWITHERROR') "
>  194 + "OR w.lastModifiedTimestamp >= :lastModTime)"),
> {code}
>  
> [1]
> {code:java}
> PurgeXCommand
>  343 List workflowChildren = fetchTerminatedWorkflow(wfjBeanList);
>  344
> private boolean isWorkflowPurgeable(WorkflowJobBean wfjBean, long 
> wfOlderThanMS) {
>  308 final Date wfEndTime = wfjBean.getEndTime();
>  309 final boolean isFinished = wfjBean.inTerminalState();
>  310 if (isFinished && wfEndTime != null && wfEndTime.getTime() < 
> wfOlderThanMS)
> { 311 return true; 312 }
> 313 else {
>  314 final Date lastModificationTime = wfjBean.getLastModifiedTime();
>  315 if (isFinished && lastModificationTime != null && 
> lastModificationTime.getTime() < wfOlderThanMS)
> { 316 return true; 317 }
> 318 }
>  319 return false;
> 345 // if all workflow are ready to purge add them and add the coordinator 
> and their actions
>  346 if(workflowChildren.size() == wfjBeanList.size()) {
>  347 LOG.debug("Purging coordinator " + coordId);
>  348 wfsToPurge.addAll(workflowChildren);
>  349 coordsToPurge.add(coordId);
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (OOZIE-3669) Fix purge process for bundles to prevent orphan coordinators

2022-11-12 Thread ASF subversion and git services (Jira)


[ 
https://issues.apache.org/jira/browse/OOZIE-3669?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17632635#comment-17632635
 ] 

ASF subversion and git services commented on OOZIE-3669:


Commit 5931b95f777b209c463dc74de88d245ab645263d in oozie's branch 
refs/heads/master from Denes Bodo
[ https://gitbox.apache.org/repos/asf?p=oozie.git;h=5931b95f7 ]

OOZIE-3669 Fix purge process for bundles to prevent orphan coordinators (jmakai 
via dionusos)


> Fix purge process for bundles to prevent orphan coordinators
> 
>
> Key: OOZIE-3669
> URL: https://issues.apache.org/jira/browse/OOZIE-3669
> Project: Oozie
>  Issue Type: Bug
>  Components: core
>Affects Versions: 5.2.1
>Reporter: Janos Makai
>Assignee: Janos Makai
>Priority: Major
> Attachments: OOZIE-3669-001.patch, OOZIE-3669-002.patch, 
> OOZIE-3669-003.patch
>
>
> The Oozie purge process for bundles is creating orphan coordinators. When 
> purging bundle jobs and bundle actions, it does not always purge coordinator 
> jobs, etc. This causes orphaned coordinators, meaning neither they nor their 
> children will ever be purged due to the purge logic.
>  
> 
>  
> When purging bundles, it first compiles a list of any coordinators which are 
> not ready to purge [0]. It checks the coord list for status and 
> coordOlderThan. If the no child coordinator meets these criteria, it adds it 
> to the coordsToPurge list.
> Being added to the list does not guarantee that the coordinator will be 
> purged however. The processCoordinators method also has logic to check if the 
> children workflows are older than wfOlderThan [1]. If a purge command is 
> started where wfOlderThan is much higher than coordOlderThan (for example the 
> default values are 30 days for workflows and 7 days for coordinators), then 
> the bundle will be purged, but the coordinator will not.
> Since the bundle is now purged, the child coordinator will never be purged 
> because only parentless coordinators will be checked, since coordinators with 
> parents will only be purged when the bundle is purged
> [0]
> {code:java}
> PurgeXCommand
>  380 long numChildrenNotReady = jpaService.execute(
>  381 new CoordJobsCountNotForPurgeFromParentIdJPAExecutor(coordOlderThan, 
> bundleId));
> CoordinatorJobBean
>  192 @NamedQuery(name = "GET_COORD_COUNT_WITH_PARENT_ID_NOT_READY_FOR_PURGE", 
> query = "select count(w) from CoordinatorJobBean"
>  193 + " w where w.bundleId = :parentId and (w.statusStr NOT IN ('SUCCEEDED', 
> 'FAILED', 'KILLED', 'DONEWITHERROR') "
>  194 + "OR w.lastModifiedTimestamp >= :lastModTime)"),
> {code}
>  
> [1]
> {code:java}
> PurgeXCommand
>  343 List workflowChildren = fetchTerminatedWorkflow(wfjBeanList);
>  344
> private boolean isWorkflowPurgeable(WorkflowJobBean wfjBean, long 
> wfOlderThanMS) {
>  308 final Date wfEndTime = wfjBean.getEndTime();
>  309 final boolean isFinished = wfjBean.inTerminalState();
>  310 if (isFinished && wfEndTime != null && wfEndTime.getTime() < 
> wfOlderThanMS)
> { 311 return true; 312 }
> 313 else {
>  314 final Date lastModificationTime = wfjBean.getLastModifiedTime();
>  315 if (isFinished && lastModificationTime != null && 
> lastModificationTime.getTime() < wfOlderThanMS)
> { 316 return true; 317 }
> 318 }
>  319 return false;
> 345 // if all workflow are ready to purge add them and add the coordinator 
> and their actions
>  346 if(workflowChildren.size() == wfjBeanList.size()) {
>  347 LOG.debug("Purging coordinator " + coordId);
>  348 wfsToPurge.addAll(workflowChildren);
>  349 coordsToPurge.add(coordId);
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (OOZIE-3669) Fix purge process for bundles to prevent orphan coordinators

2022-11-11 Thread Hadoop QA (Jira)


[ 
https://issues.apache.org/jira/browse/OOZIE-3669?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17632501#comment-17632501
 ] 

Hadoop QA commented on OOZIE-3669:
--


Testing JIRA OOZIE-3669

Cleaning local git workspace



{color:green}+1 PATCH_APPLIES{color}
{color:green}+1 CLEAN{color}
{color:green}+1 RAW_PATCH_ANALYSIS{color}
.{color:green}+1{color} the patch does not introduce any @author tags
.{color:green}+1{color} the patch does not introduce any tabs
.{color:green}+1{color} the patch does not introduce any trailing spaces
.{color:green}+1{color} the patch does not introduce any star imports
.{color:green}+1{color} the patch does not introduce any line longer than 
132
.{color:green}+1{color} the patch adds/modifies 1 testcase(s)
{color:green}+1 RAT{color}
.{color:green}+1{color} the patch does not seem to introduce new RAT 
warnings
{color:green}+1 JAVADOC{color}
.{color:green}+1{color} Javadoc generation succeeded with the patch
.{color:green}+1{color} the patch does not seem to introduce new Javadoc 
warning(s)
{color:green}+1 COMPILE{color}
.{color:green}+1{color} HEAD compiles
.{color:green}+1{color} patch compiles
.{color:green}+1{color} the patch does not seem to introduce new javac 
warnings
{color:red}-1{color} There are [5] new bugs found below threshold in total that 
must be fixed.
.{color:green}+1{color} There are no new bugs found in [tools].
.{color:red}-1{color} There are [5] new bugs found below threshold in 
[core] that must be fixed.
.You can find the SpotBugs diff here (look for the red and orange ones): 
core/findbugs-new.html
.The most important SpotBugs errors are:
.At BulkJPAExecutor.java:[line 206]: This use of 
javax/persistence/EntityManager.createQuery(Ljava/lang/String;)Ljavax/persistence/Query;
 can be vulnerable to SQL/JPQL injection
.At BulkJPAExecutor.java:[line 176]: At BulkJPAExecutor.java:[line 175]
.At BulkJPAExecutor.java:[line 205]: At BulkJPAExecutor.java:[line 199]
.This use of 
javax/persistence/EntityManager.createQuery(Ljava/lang/String;)Ljavax/persistence/Query;
 can be vulnerable to SQL/JPQL injection: At BulkJPAExecutor.java:[line 206]
.At BulkJPAExecutor.java:[line 111]: At BulkJPAExecutor.java:[line 127]
.{color:green}+1{color} There are no new bugs found in [examples].
.{color:green}+1{color} There are no new bugs found in [webapp].
.{color:green}+1{color} There are no new bugs found in [sharelib/hive2].
.{color:green}+1{color} There are no new bugs found in [sharelib/distcp].
.{color:green}+1{color} There are no new bugs found in [sharelib/streaming].
.{color:green}+1{color} There are no new bugs found in [sharelib/hcatalog].
.{color:green}+1{color} There are no new bugs found in [sharelib/spark].
.{color:green}+1{color} There are no new bugs found in [sharelib/hive].
.{color:green}+1{color} There are no new bugs found in [sharelib/git].
.{color:green}+1{color} There are no new bugs found in [sharelib/sqoop].
.{color:green}+1{color} There are no new bugs found in [sharelib/oozie].
.{color:green}+1{color} There are no new bugs found in [sharelib/pig].
.{color:green}+1{color} There are no new bugs found in 
[fluent-job/fluent-job-api].
.{color:green}+1{color} There are no new bugs found in [client].
.{color:orange}0{color} There are [4] new bugs found in [server] that would 
be nice to have fixed.
.You can find the SpotBugs diff here: server/findbugs-new.html
.{color:green}+1{color} There are no new bugs found in [docs].
{color:green}+1 BACKWARDS_COMPATIBILITY{color}
.{color:green}+1{color} the patch does not change any JPA 
Entity/Colum/Basic/Lob/Transient annotations
.{color:green}+1{color} the patch does not modify JPA files
{color:green}+1 TESTS{color}
.Tests run: 3226
.{color:orange}Tests failed at first run:{color}
TestCoordActionsKillXCommand#testActionKillCommandActionNumbers
TestCoordActionsKillXCommand#testActionKillCommandDate
TestBlockingInputStream#testFastWritingBlockingInputStream
TestPriorityDelayQueue#testPeek
.For the complete list of flaky tests, see TEST-SUMMARY-FULL files.
{color:green}+1 DISTRO{color}
.{color:green}+1{color} distro tarball builds with the patch 
{color:green}+1 MODERNIZER{color}


{color:red}*-1 Overall result, please check the reported -1(s)*{color}


The full output of the test-patch run is available at

. https://ci-hadoop.apache.org/job/PreCommit-OOZIE-Build/101/



> Fix purge process for bundles to prevent orphan coordinators
> 
>
> Key: OOZIE-3669
> URL: https://issues.apache.org/jira/browse/OOZIE-3669
> Project: Oozie
>  Issue Type: Bug
>  Components: core
>Affects Versions: 

[jira] [Commented] (OOZIE-3669) Fix purge process for bundles to prevent orphan coordinators

2022-11-11 Thread Hadoop QA (Jira)


[ 
https://issues.apache.org/jira/browse/OOZIE-3669?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17632456#comment-17632456
 ] 

Hadoop QA commented on OOZIE-3669:
--

PreCommit-OOZIE-Build started


> Fix purge process for bundles to prevent orphan coordinators
> 
>
> Key: OOZIE-3669
> URL: https://issues.apache.org/jira/browse/OOZIE-3669
> Project: Oozie
>  Issue Type: Bug
>  Components: core
>Affects Versions: 5.2.1
>Reporter: Janos Makai
>Assignee: Janos Makai
>Priority: Major
> Attachments: OOZIE-3669-001.patch, OOZIE-3669-002.patch, 
> OOZIE-3669-003.patch
>
>
> The Oozie purge process for bundles is creating orphan coordinators. When 
> purging bundle jobs and bundle actions, it does not always purge coordinator 
> jobs, etc. This causes orphaned coordinators, meaning neither they nor their 
> children will ever be purged due to the purge logic.
>  
> 
>  
> When purging bundles, it first compiles a list of any coordinators which are 
> not ready to purge [0]. It checks the coord list for status and 
> coordOlderThan. If the no child coordinator meets these criteria, it adds it 
> to the coordsToPurge list.
> Being added to the list does not guarantee that the coordinator will be 
> purged however. The processCoordinators method also has logic to check if the 
> children workflows are older than wfOlderThan [1]. If a purge command is 
> started where wfOlderThan is much higher than coordOlderThan (for example the 
> default values are 30 days for workflows and 7 days for coordinators), then 
> the bundle will be purged, but the coordinator will not.
> Since the bundle is now purged, the child coordinator will never be purged 
> because only parentless coordinators will be checked, since coordinators with 
> parents will only be purged when the bundle is purged
> [0]
> {code:java}
> PurgeXCommand
>  380 long numChildrenNotReady = jpaService.execute(
>  381 new CoordJobsCountNotForPurgeFromParentIdJPAExecutor(coordOlderThan, 
> bundleId));
> CoordinatorJobBean
>  192 @NamedQuery(name = "GET_COORD_COUNT_WITH_PARENT_ID_NOT_READY_FOR_PURGE", 
> query = "select count(w) from CoordinatorJobBean"
>  193 + " w where w.bundleId = :parentId and (w.statusStr NOT IN ('SUCCEEDED', 
> 'FAILED', 'KILLED', 'DONEWITHERROR') "
>  194 + "OR w.lastModifiedTimestamp >= :lastModTime)"),
> {code}
>  
> [1]
> {code:java}
> PurgeXCommand
>  343 List workflowChildren = fetchTerminatedWorkflow(wfjBeanList);
>  344
> private boolean isWorkflowPurgeable(WorkflowJobBean wfjBean, long 
> wfOlderThanMS) {
>  308 final Date wfEndTime = wfjBean.getEndTime();
>  309 final boolean isFinished = wfjBean.inTerminalState();
>  310 if (isFinished && wfEndTime != null && wfEndTime.getTime() < 
> wfOlderThanMS)
> { 311 return true; 312 }
> 313 else {
>  314 final Date lastModificationTime = wfjBean.getLastModifiedTime();
>  315 if (isFinished && lastModificationTime != null && 
> lastModificationTime.getTime() < wfOlderThanMS)
> { 316 return true; 317 }
> 318 }
>  319 return false;
> 345 // if all workflow are ready to purge add them and add the coordinator 
> and their actions
>  346 if(workflowChildren.size() == wfjBeanList.size()) {
>  347 LOG.debug("Purging coordinator " + coordId);
>  348 wfsToPurge.addAll(workflowChildren);
>  349 coordsToPurge.add(coordId);
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (OOZIE-3669) Fix purge process for bundles to prevent orphan coordinators

2022-11-11 Thread Hadoop QA (Jira)


[ 
https://issues.apache.org/jira/browse/OOZIE-3669?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17632216#comment-17632216
 ] 

Hadoop QA commented on OOZIE-3669:
--


Testing JIRA OOZIE-3669

Cleaning local git workspace



{color:green}+1 PATCH_APPLIES{color}
{color:green}+1 CLEAN{color}
{color:red}-1 RAW_PATCH_ANALYSIS{color}
.{color:green}+1{color} the patch does not introduce any @author tags
.{color:green}+1{color} the patch does not introduce any tabs
.{color:green}+1{color} the patch does not introduce any trailing spaces
.{color:green}+1{color} the patch does not introduce any star imports
.{color:green}+1{color} the patch does not introduce any line longer than 
132
.{color:red}-1{color} the patch does not add/modify any testcase
{color:green}+1 RAT{color}
.{color:green}+1{color} the patch does not seem to introduce new RAT 
warnings
{color:green}+1 JAVADOC{color}
.{color:green}+1{color} Javadoc generation succeeded with the patch
.{color:green}+1{color} the patch does not seem to introduce new Javadoc 
warning(s)
{color:green}+1 COMPILE{color}
.{color:green}+1{color} HEAD compiles
.{color:green}+1{color} patch compiles
.{color:green}+1{color} the patch does not seem to introduce new javac 
warnings
{color:red}-1{color} There are [5] new bugs found below threshold in total that 
must be fixed.
.{color:green}+1{color} There are no new bugs found in [examples].
.{color:green}+1{color} There are no new bugs found in 
[fluent-job/fluent-job-api].
.{color:green}+1{color} There are no new bugs found in [sharelib/hive].
.{color:green}+1{color} There are no new bugs found in [sharelib/hive2].
.{color:green}+1{color} There are no new bugs found in [sharelib/git].
.{color:green}+1{color} There are no new bugs found in [sharelib/distcp].
.{color:green}+1{color} There are no new bugs found in [sharelib/hcatalog].
.{color:green}+1{color} There are no new bugs found in [sharelib/sqoop].
.{color:green}+1{color} There are no new bugs found in [sharelib/spark].
.{color:green}+1{color} There are no new bugs found in [sharelib/oozie].
.{color:green}+1{color} There are no new bugs found in [sharelib/pig].
.{color:green}+1{color} There are no new bugs found in [sharelib/streaming].
.{color:orange}0{color} There are [4] new bugs found in [server] that would 
be nice to have fixed.
.You can find the SpotBugs diff here: server/findbugs-new.html
.{color:green}+1{color} There are no new bugs found in [docs].
.{color:green}+1{color} There are no new bugs found in [webapp].
.{color:red}-1{color} There are [5] new bugs found below threshold in 
[core] that must be fixed.
.You can find the SpotBugs diff here (look for the red and orange ones): 
core/findbugs-new.html
.The most important SpotBugs errors are:
.At BulkJPAExecutor.java:[line 206]: This use of 
javax/persistence/EntityManager.createQuery(Ljava/lang/String;)Ljavax/persistence/Query;
 can be vulnerable to SQL/JPQL injection
.At BulkJPAExecutor.java:[line 176]: At BulkJPAExecutor.java:[line 175]
.At BulkJPAExecutor.java:[line 205]: At BulkJPAExecutor.java:[line 199]
.This use of 
javax/persistence/EntityManager.createQuery(Ljava/lang/String;)Ljavax/persistence/Query;
 can be vulnerable to SQL/JPQL injection: At BulkJPAExecutor.java:[line 206]
.At BulkJPAExecutor.java:[line 111]: At BulkJPAExecutor.java:[line 127]
.{color:green}+1{color} There are no new bugs found in [tools].
.{color:green}+1{color} There are no new bugs found in [client].
{color:green}+1 BACKWARDS_COMPATIBILITY{color}
.{color:green}+1{color} the patch does not change any JPA 
Entity/Colum/Basic/Lob/Transient annotations
.{color:green}+1{color} the patch does not modify JPA files
{color:green}+1 TESTS{color}
.Tests run: 3224
{color:green}+1 DISTRO{color}
.{color:green}+1{color} distro tarball builds with the patch 
{color:green}+1 MODERNIZER{color}


{color:red}*-1 Overall result, please check the reported -1(s)*{color}


The full output of the test-patch run is available at

. https://ci-hadoop.apache.org/job/PreCommit-OOZIE-Build/98/



> Fix purge process for bundles to prevent orphan coordinators
> 
>
> Key: OOZIE-3669
> URL: https://issues.apache.org/jira/browse/OOZIE-3669
> Project: Oozie
>  Issue Type: Bug
>  Components: core
>Affects Versions: 5.2.1
>Reporter: Janos Makai
>Assignee: Janos Makai
>Priority: Major
> Attachments: OOZIE-3669-001.patch, OOZIE-3669-002.patch
>
>
> The Oozie purge process for bundles is creating orphan coordinators. When 
> purging bundle jobs and bundle actions, it does not always purge coordinator 
> j

[jira] [Commented] (OOZIE-3669) Fix purge process for bundles to prevent orphan coordinators

2022-11-10 Thread Hadoop QA (Jira)


[ 
https://issues.apache.org/jira/browse/OOZIE-3669?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17632141#comment-17632141
 ] 

Hadoop QA commented on OOZIE-3669:
--

PreCommit-OOZIE-Build started


> Fix purge process for bundles to prevent orphan coordinators
> 
>
> Key: OOZIE-3669
> URL: https://issues.apache.org/jira/browse/OOZIE-3669
> Project: Oozie
>  Issue Type: Bug
>  Components: core
>Affects Versions: 5.2.1
>Reporter: Janos Makai
>Assignee: Janos Makai
>Priority: Major
> Attachments: OOZIE-3669-001.patch, OOZIE-3669-002.patch
>
>
> The Oozie purge process for bundles is creating orphan coordinators. When 
> purging bundle jobs and bundle actions, it does not always purge coordinator 
> jobs, etc. This causes orphaned coordinators, meaning neither they nor their 
> children will ever be purged due to the purge logic.
>  
> 
>  
> When purging bundles, it first compiles a list of any coordinators which are 
> not ready to purge [0]. It checks the coord list for status and 
> coordOlderThan. If the no child coordinator meets these criteria, it adds it 
> to the coordsToPurge list.
> Being added to the list does not guarantee that the coordinator will be 
> purged however. The processCoordinators method also has logic to check if the 
> children workflows are older than wfOlderThan [1]. If a purge command is 
> started where wfOlderThan is much higher than coordOlderThan (for example the 
> default values are 30 days for workflows and 7 days for coordinators), then 
> the bundle will be purged, but the coordinator will not.
> Since the bundle is now purged, the child coordinator will never be purged 
> because only parentless coordinators will be checked, since coordinators with 
> parents will only be purged when the bundle is purged
> [0]
> {code:java}
> PurgeXCommand
>  380 long numChildrenNotReady = jpaService.execute(
>  381 new CoordJobsCountNotForPurgeFromParentIdJPAExecutor(coordOlderThan, 
> bundleId));
> CoordinatorJobBean
>  192 @NamedQuery(name = "GET_COORD_COUNT_WITH_PARENT_ID_NOT_READY_FOR_PURGE", 
> query = "select count(w) from CoordinatorJobBean"
>  193 + " w where w.bundleId = :parentId and (w.statusStr NOT IN ('SUCCEEDED', 
> 'FAILED', 'KILLED', 'DONEWITHERROR') "
>  194 + "OR w.lastModifiedTimestamp >= :lastModTime)"),
> {code}
>  
> [1]
> {code:java}
> PurgeXCommand
>  343 List workflowChildren = fetchTerminatedWorkflow(wfjBeanList);
>  344
> private boolean isWorkflowPurgeable(WorkflowJobBean wfjBean, long 
> wfOlderThanMS) {
>  308 final Date wfEndTime = wfjBean.getEndTime();
>  309 final boolean isFinished = wfjBean.inTerminalState();
>  310 if (isFinished && wfEndTime != null && wfEndTime.getTime() < 
> wfOlderThanMS)
> { 311 return true; 312 }
> 313 else {
>  314 final Date lastModificationTime = wfjBean.getLastModifiedTime();
>  315 if (isFinished && lastModificationTime != null && 
> lastModificationTime.getTime() < wfOlderThanMS)
> { 316 return true; 317 }
> 318 }
>  319 return false;
> 345 // if all workflow are ready to purge add them and add the coordinator 
> and their actions
>  346 if(workflowChildren.size() == wfjBeanList.size()) {
>  347 LOG.debug("Purging coordinator " + coordId);
>  348 wfsToPurge.addAll(workflowChildren);
>  349 coordsToPurge.add(coordId);
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (OOZIE-3669) Fix purge process for bundles to prevent orphan coordinators

2022-11-10 Thread Janos Makai (Jira)


[ 
https://issues.apache.org/jira/browse/OOZIE-3669?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17632138#comment-17632138
 ] 

Janos Makai commented on OOZIE-3669:


Sure [~dionusos], I've just uploaded the fixed patch.

> Fix purge process for bundles to prevent orphan coordinators
> 
>
> Key: OOZIE-3669
> URL: https://issues.apache.org/jira/browse/OOZIE-3669
> Project: Oozie
>  Issue Type: Bug
>  Components: core
>Affects Versions: 5.2.1
>Reporter: Janos Makai
>Assignee: Janos Makai
>Priority: Major
> Attachments: OOZIE-3669-001.patch, OOZIE-3669-002.patch
>
>
> The Oozie purge process for bundles is creating orphan coordinators. When 
> purging bundle jobs and bundle actions, it does not always purge coordinator 
> jobs, etc. This causes orphaned coordinators, meaning neither they nor their 
> children will ever be purged due to the purge logic.
>  
> 
>  
> When purging bundles, it first compiles a list of any coordinators which are 
> not ready to purge [0]. It checks the coord list for status and 
> coordOlderThan. If the no child coordinator meets these criteria, it adds it 
> to the coordsToPurge list.
> Being added to the list does not guarantee that the coordinator will be 
> purged however. The processCoordinators method also has logic to check if the 
> children workflows are older than wfOlderThan [1]. If a purge command is 
> started where wfOlderThan is much higher than coordOlderThan (for example the 
> default values are 30 days for workflows and 7 days for coordinators), then 
> the bundle will be purged, but the coordinator will not.
> Since the bundle is now purged, the child coordinator will never be purged 
> because only parentless coordinators will be checked, since coordinators with 
> parents will only be purged when the bundle is purged
> [0]
> {code:java}
> PurgeXCommand
>  380 long numChildrenNotReady = jpaService.execute(
>  381 new CoordJobsCountNotForPurgeFromParentIdJPAExecutor(coordOlderThan, 
> bundleId));
> CoordinatorJobBean
>  192 @NamedQuery(name = "GET_COORD_COUNT_WITH_PARENT_ID_NOT_READY_FOR_PURGE", 
> query = "select count(w) from CoordinatorJobBean"
>  193 + " w where w.bundleId = :parentId and (w.statusStr NOT IN ('SUCCEEDED', 
> 'FAILED', 'KILLED', 'DONEWITHERROR') "
>  194 + "OR w.lastModifiedTimestamp >= :lastModTime)"),
> {code}
>  
> [1]
> {code:java}
> PurgeXCommand
>  343 List workflowChildren = fetchTerminatedWorkflow(wfjBeanList);
>  344
> private boolean isWorkflowPurgeable(WorkflowJobBean wfjBean, long 
> wfOlderThanMS) {
>  308 final Date wfEndTime = wfjBean.getEndTime();
>  309 final boolean isFinished = wfjBean.inTerminalState();
>  310 if (isFinished && wfEndTime != null && wfEndTime.getTime() < 
> wfOlderThanMS)
> { 311 return true; 312 }
> 313 else {
>  314 final Date lastModificationTime = wfjBean.getLastModifiedTime();
>  315 if (isFinished && lastModificationTime != null && 
> lastModificationTime.getTime() < wfOlderThanMS)
> { 316 return true; 317 }
> 318 }
>  319 return false;
> 345 // if all workflow are ready to purge add them and add the coordinator 
> and their actions
>  346 if(workflowChildren.size() == wfjBeanList.size()) {
>  347 LOG.debug("Purging coordinator " + coordId);
>  348 wfsToPurge.addAll(workflowChildren);
>  349 coordsToPurge.add(coordId);
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (OOZIE-3669) Fix purge process for bundles to prevent orphan coordinators

2022-11-10 Thread Jira


[ 
https://issues.apache.org/jira/browse/OOZIE-3669?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17631875#comment-17631875
 ] 

Dénes Bodó commented on OOZIE-3669:
---

[~jmakai] Thanks for the patch. Can you please fix the too long line? Thank you.

> Fix purge process for bundles to prevent orphan coordinators
> 
>
> Key: OOZIE-3669
> URL: https://issues.apache.org/jira/browse/OOZIE-3669
> Project: Oozie
>  Issue Type: Bug
>  Components: core
>Affects Versions: 5.2.1
>Reporter: Janos Makai
>Assignee: Janos Makai
>Priority: Major
> Attachments: OOZIE-3669-001.patch
>
>
> The Oozie purge process for bundles is creating orphan coordinators. When 
> purging bundle jobs and bundle actions, it does not always purge coordinator 
> jobs, etc. This causes orphaned coordinators, meaning neither they nor their 
> children will ever be purged due to the purge logic.
>  
> 
>  
> When purging bundles, it first compiles a list of any coordinators which are 
> not ready to purge [0]. It checks the coord list for status and 
> coordOlderThan. If the no child coordinator meets these criteria, it adds it 
> to the coordsToPurge list.
> Being added to the list does not guarantee that the coordinator will be 
> purged however. The processCoordinators method also has logic to check if the 
> children workflows are older than wfOlderThan [1]. If a purge command is 
> started where wfOlderThan is much higher than coordOlderThan (for example the 
> default values are 30 days for workflows and 7 days for coordinators), then 
> the bundle will be purged, but the coordinator will not.
> Since the bundle is now purged, the child coordinator will never be purged 
> because only parentless coordinators will be checked, since coordinators with 
> parents will only be purged when the bundle is purged
> [0]
> {code:java}
> PurgeXCommand
>  380 long numChildrenNotReady = jpaService.execute(
>  381 new CoordJobsCountNotForPurgeFromParentIdJPAExecutor(coordOlderThan, 
> bundleId));
> CoordinatorJobBean
>  192 @NamedQuery(name = "GET_COORD_COUNT_WITH_PARENT_ID_NOT_READY_FOR_PURGE", 
> query = "select count(w) from CoordinatorJobBean"
>  193 + " w where w.bundleId = :parentId and (w.statusStr NOT IN ('SUCCEEDED', 
> 'FAILED', 'KILLED', 'DONEWITHERROR') "
>  194 + "OR w.lastModifiedTimestamp >= :lastModTime)"),
> {code}
>  
> [1]
> {code:java}
> PurgeXCommand
>  343 List workflowChildren = fetchTerminatedWorkflow(wfjBeanList);
>  344
> private boolean isWorkflowPurgeable(WorkflowJobBean wfjBean, long 
> wfOlderThanMS) {
>  308 final Date wfEndTime = wfjBean.getEndTime();
>  309 final boolean isFinished = wfjBean.inTerminalState();
>  310 if (isFinished && wfEndTime != null && wfEndTime.getTime() < 
> wfOlderThanMS)
> { 311 return true; 312 }
> 313 else {
>  314 final Date lastModificationTime = wfjBean.getLastModifiedTime();
>  315 if (isFinished && lastModificationTime != null && 
> lastModificationTime.getTime() < wfOlderThanMS)
> { 316 return true; 317 }
> 318 }
>  319 return false;
> 345 // if all workflow are ready to purge add them and add the coordinator 
> and their actions
>  346 if(workflowChildren.size() == wfjBeanList.size()) {
>  347 LOG.debug("Purging coordinator " + coordId);
>  348 wfsToPurge.addAll(workflowChildren);
>  349 coordsToPurge.add(coordId);
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (OOZIE-3669) Fix purge process for bundles to prevent orphan coordinators

2022-11-10 Thread Hadoop QA (Jira)


[ 
https://issues.apache.org/jira/browse/OOZIE-3669?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17631869#comment-17631869
 ] 

Hadoop QA commented on OOZIE-3669:
--


Testing JIRA OOZIE-3669

Cleaning local git workspace



{color:green}+1 PATCH_APPLIES{color}
{color:green}+1 CLEAN{color}
{color:red}-1 RAW_PATCH_ANALYSIS{color}
.{color:green}+1{color} the patch does not introduce any @author tags
.{color:green}+1{color} the patch does not introduce any tabs
.{color:green}+1{color} the patch does not introduce any trailing spaces
.{color:green}+1{color} the patch does not introduce any star imports
.{color:red}-1{color} the patch contains 7 line(s) longer than 132 
characters
.{color:green}+1{color} the patch adds/modifies 1 testcase(s)
{color:green}+1 RAT{color}
.{color:green}+1{color} the patch does not seem to introduce new RAT 
warnings
{color:green}+1 JAVADOC{color}
.{color:green}+1{color} Javadoc generation succeeded with the patch
.{color:green}+1{color} the patch does not seem to introduce new Javadoc 
warning(s)
{color:green}+1 COMPILE{color}
.{color:green}+1{color} HEAD compiles
.{color:green}+1{color} patch compiles
.{color:green}+1{color} the patch does not seem to introduce new javac 
warnings
{color:red}-1{color} There are [5] new bugs found below threshold in total that 
must be fixed.
.{color:green}+1{color} There are no new bugs found in [examples].
.{color:green}+1{color} There are no new bugs found in 
[fluent-job/fluent-job-api].
.{color:green}+1{color} There are no new bugs found in [sharelib/hive].
.{color:green}+1{color} There are no new bugs found in [sharelib/hive2].
.{color:green}+1{color} There are no new bugs found in [sharelib/git].
.{color:green}+1{color} There are no new bugs found in [sharelib/distcp].
.{color:green}+1{color} There are no new bugs found in [sharelib/hcatalog].
.{color:green}+1{color} There are no new bugs found in [sharelib/sqoop].
.{color:green}+1{color} There are no new bugs found in [sharelib/spark].
.{color:green}+1{color} There are no new bugs found in [sharelib/oozie].
.{color:green}+1{color} There are no new bugs found in [sharelib/pig].
.{color:green}+1{color} There are no new bugs found in [sharelib/streaming].
.{color:orange}0{color} There are [4] new bugs found in [server] that would 
be nice to have fixed.
.You can find the SpotBugs diff here: server/findbugs-new.html
.{color:green}+1{color} There are no new bugs found in [docs].
.{color:green}+1{color} There are no new bugs found in [webapp].
.{color:red}-1{color} There are [5] new bugs found below threshold in 
[core] that must be fixed.
.You can find the SpotBugs diff here (look for the red and orange ones): 
core/findbugs-new.html
.The most important SpotBugs errors are:
.At BulkJPAExecutor.java:[line 206]: This use of 
javax/persistence/EntityManager.createQuery(Ljava/lang/String;)Ljavax/persistence/Query;
 can be vulnerable to SQL/JPQL injection
.At BulkJPAExecutor.java:[line 176]: At BulkJPAExecutor.java:[line 175]
.At BulkJPAExecutor.java:[line 205]: At BulkJPAExecutor.java:[line 199]
.This use of 
javax/persistence/EntityManager.createQuery(Ljava/lang/String;)Ljavax/persistence/Query;
 can be vulnerable to SQL/JPQL injection: At BulkJPAExecutor.java:[line 206]
.At BulkJPAExecutor.java:[line 111]: At BulkJPAExecutor.java:[line 127]
.{color:green}+1{color} There are no new bugs found in [tools].
.{color:green}+1{color} There are no new bugs found in [client].
{color:green}+1 BACKWARDS_COMPATIBILITY{color}
.{color:green}+1{color} the patch does not change any JPA 
Entity/Colum/Basic/Lob/Transient annotations
.{color:green}+1{color} the patch does not modify JPA files
{color:green}+1 TESTS{color}
.Tests run: 3226
{color:green}+1 DISTRO{color}
.{color:green}+1{color} distro tarball builds with the patch 
{color:green}+1 MODERNIZER{color}


{color:red}*-1 Overall result, please check the reported -1(s)*{color}


The full output of the test-patch run is available at

. https://ci-hadoop.apache.org/job/PreCommit-OOZIE-Build/97/



> Fix purge process for bundles to prevent orphan coordinators
> 
>
> Key: OOZIE-3669
> URL: https://issues.apache.org/jira/browse/OOZIE-3669
> Project: Oozie
>  Issue Type: Bug
>  Components: core
>Affects Versions: 5.2.1
>Reporter: Janos Makai
>Assignee: Janos Makai
>Priority: Major
> Attachments: OOZIE-3669-001.patch
>
>
> The Oozie purge process for bundles is creating orphan coordinators. When 
> purging bundle jobs and bundle actions, it does not always purge coordinator 
> jobs, etc. This causes orp

[jira] [Commented] (OOZIE-3669) Fix purge process for bundles to prevent orphan coordinators

2022-11-10 Thread Hadoop QA (Jira)


[ 
https://issues.apache.org/jira/browse/OOZIE-3669?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17631796#comment-17631796
 ] 

Hadoop QA commented on OOZIE-3669:
--

PreCommit-OOZIE-Build started


> Fix purge process for bundles to prevent orphan coordinators
> 
>
> Key: OOZIE-3669
> URL: https://issues.apache.org/jira/browse/OOZIE-3669
> Project: Oozie
>  Issue Type: Bug
>  Components: core
>Affects Versions: 5.2.1
>Reporter: Janos Makai
>Assignee: Janos Makai
>Priority: Major
> Attachments: OOZIE-3669-001.patch
>
>
> The Oozie purge process for bundles is creating orphan coordinators. When 
> purging bundle jobs and bundle actions, it does not always purge coordinator 
> jobs, etc. This causes orphaned coordinators, meaning neither they nor their 
> children will ever be purged due to the purge logic.
>  
> 
>  
> When purging bundles, it first compiles a list of any coordinators which are 
> not ready to purge [0]. It checks the coord list for status and 
> coordOlderThan. If the no child coordinator meets these criteria, it adds it 
> to the coordsToPurge list.
> Being added to the list does not guarantee that the coordinator will be 
> purged however. The processCoordinators method also has logic to check if the 
> children workflows are older than wfOlderThan [1]. If a purge command is 
> started where wfOlderThan is much higher than coordOlderThan (for example the 
> default values are 30 days for workflows and 7 days for coordinators), then 
> the bundle will be purged, but the coordinator will not.
> Since the bundle is now purged, the child coordinator will never be purged 
> because only parentless coordinators will be checked, since coordinators with 
> parents will only be purged when the bundle is purged
> [0]
> {code:java}
> PurgeXCommand
>  380 long numChildrenNotReady = jpaService.execute(
>  381 new CoordJobsCountNotForPurgeFromParentIdJPAExecutor(coordOlderThan, 
> bundleId));
> CoordinatorJobBean
>  192 @NamedQuery(name = "GET_COORD_COUNT_WITH_PARENT_ID_NOT_READY_FOR_PURGE", 
> query = "select count(w) from CoordinatorJobBean"
>  193 + " w where w.bundleId = :parentId and (w.statusStr NOT IN ('SUCCEEDED', 
> 'FAILED', 'KILLED', 'DONEWITHERROR') "
>  194 + "OR w.lastModifiedTimestamp >= :lastModTime)"),
> {code}
>  
> [1]
> {code:java}
> PurgeXCommand
>  343 List workflowChildren = fetchTerminatedWorkflow(wfjBeanList);
>  344
> private boolean isWorkflowPurgeable(WorkflowJobBean wfjBean, long 
> wfOlderThanMS) {
>  308 final Date wfEndTime = wfjBean.getEndTime();
>  309 final boolean isFinished = wfjBean.inTerminalState();
>  310 if (isFinished && wfEndTime != null && wfEndTime.getTime() < 
> wfOlderThanMS)
> { 311 return true; 312 }
> 313 else {
>  314 final Date lastModificationTime = wfjBean.getLastModifiedTime();
>  315 if (isFinished && lastModificationTime != null && 
> lastModificationTime.getTime() < wfOlderThanMS)
> { 316 return true; 317 }
> 318 }
>  319 return false;
> 345 // if all workflow are ready to purge add them and add the coordinator 
> and their actions
>  346 if(workflowChildren.size() == wfjBeanList.size()) {
>  347 LOG.debug("Purging coordinator " + coordId);
>  348 wfsToPurge.addAll(workflowChildren);
>  349 coordsToPurge.add(coordId);
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)