[jira] [Commented] (OOZIE-3715) Fix fork out more than one transitions submit , one transition submit fail can't execute KillXCommand
[ https://issues.apache.org/jira/browse/OOZIE-3715?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17706718#comment-17706718 ] Hadoop QA commented on OOZIE-3715: -- Testing JIRA OOZIE-3715 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 2 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: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 CoordJobGetActionsSubsetJPAExecutor.java:[line 76]: At CoordJobGetActionsSubsetJPAExecutor.java:[line 111] .{color:green}+1{color} There are no new bugs found in [client]. .{color:green}+1{color} There are no new bugs found in [docs]. .{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 [server]. .{color:green}+1{color} There are no new bugs found in [examples]. .{color:green}+1{color} There are no new bugs found in [tools]. .{color:green}+1{color} There are no new bugs found in [webapp]. .{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/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/hcatalog]. .{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/hive2]. .{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/hive]. .{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/git]. {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: 3260 {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/205/ > Fix fork out more than one transitions submit , one transition submit fail > can't execute KillXCommand > - > > Key: OOZIE-3715 > URL: https://issues.apache.org/jira/browse/OOZIE-3715 > Project: Oozie > Issue Type: Bug > Components: core >Affects Versions: 5.2.1 >Reporter: chenhaodan >Assignee: chenhaodan >Priority: Major > Labels: patch > Fix For: trunk > > Attachments: OOZIE-3715-001.patch, OOZIE-3715-002.patch, > OOZIE-3715-003.patch, OOZIE-3715-004.patch, forkSubmitFail_issue.txt > > > When
[jira] Subscription: Oozie Patch Available
Issue Subscription Filter: Oozie Patch Available (103 issues) Subscriber: ooziedaily Key Summary OOZIE-3715 Fix fork out more than one transitions submit , one transition submit fail can't execute KillXCommand https://issues.apache.org/jira/browse/OOZIE-3715 OOZIE-3687 Fix Oozie client always using the current system username instead the one specified by the user (e.g.: via kerberos or via explicit basic authentication) https://issues.apache.org/jira/browse/OOZIE-3687 OOZIE-3680 Add default value to custom configuration of all the supported file systems in Oozie https://issues.apache.org/jira/browse/OOZIE-3680 OOZIE-3663 Upgrade Apache Xerces Java to 2.12.2 https://issues.apache.org/jira/browse/OOZIE-3663 OOZIE-3654 update to httpclient 4.5.13 https://issues.apache.org/jira/browse/OOZIE-3654 OOZIE-3635 Reduce nest of code in RecoveryService https://issues.apache.org/jira/browse/OOZIE-3635 OOZIE-3623 Fix Typos in Distro Assembly https://issues.apache.org/jira/browse/OOZIE-3623 OOZIE-3621 Make TestECPolicyDisabler work with Hadoop 3 https://issues.apache.org/jira/browse/OOZIE-3621 OOZIE-3620 hadoopId is not sent to eventHandlerService (listener) for workflow action events https://issues.apache.org/jira/browse/OOZIE-3620 OOZIE-3609 Zookeeper SSL/TLS support https://issues.apache.org/jira/browse/OOZIE-3609 OOZIE-3596 When the SSH action is killed, it must be changed to the kill command that can terminate the related subprocess. https://issues.apache.org/jira/browse/OOZIE-3596 OOZIE-3568 Have large amount of log information “WARN messages [main] openjpa.MetaData” in jetty.log need to clean https://issues.apache.org/jira/browse/OOZIE-3568 OOZIE-3567 Oozie ShellAction should support absolute bash file path https://issues.apache.org/jira/browse/OOZIE-3567 OOZIE-3560 IDEA shows have some error in index.jsp https://issues.apache.org/jira/browse/OOZIE-3560 OOZIE-3554 Add asf.yaml to git repo https://issues.apache.org/jira/browse/OOZIE-3554 OOZIE-3545 Upgrade jQuery https://issues.apache.org/jira/browse/OOZIE-3545 OOZIE-3482 Fix bug in CoordSubmitXCommand#validateCoordinatorJob https://issues.apache.org/jira/browse/OOZIE-3482 OOZIE-3480 Add windowactionstatus metrics in DBLiteWorkflowStoreService https://issues.apache.org/jira/browse/OOZIE-3480 OOZIE-3461 CoordMaterializeTriggerService code cleanup https://issues.apache.org/jira/browse/OOZIE-3461 OOZIE-3449 Make spark-2 as the default profile https://issues.apache.org/jira/browse/OOZIE-3449 OOZIE-3447 Run test case in local : It shows oozie-hsqldb-orm.xml exception https://issues.apache.org/jira/browse/OOZIE-3447 OOZIE-3434 Filtering for invalid jobtype should give error message https://issues.apache.org/jira/browse/OOZIE-3434 OOZIE-3418 Upgrade to Guava 27 https://issues.apache.org/jira/browse/OOZIE-3418 OOZIE-3404 The env variable of SPARK_HOME needs to be set when running pySpark https://issues.apache.org/jira/browse/OOZIE-3404 OOZIE-3375 Can't use empty in coordinator https://issues.apache.org/jira/browse/OOZIE-3375 OOZIE-3367 Using && in EL expressions in oozie bundle.xml files generates parse errors https://issues.apache.org/jira/browse/OOZIE-3367 OOZIE-3366 Update workflow status and subworkflow status on suspend command https://issues.apache.org/jira/browse/OOZIE-3366 OOZIE-3364 Rerunning Oozie bundle jobs starts the coordinators in indeterminate order https://issues.apache.org/jira/browse/OOZIE-3364 OOZIE-3362 When killed, SSH action should kill the spawned processes on target host https://issues.apache.org/jira/browse/OOZIE-3362 OOZIE-3335 Cleanup parseFilter methods https://issues.apache.org/jira/browse/OOZIE-3335 OOZIE-3328 Create Hive compatibility action executor to run hive actions using beeline https://issues.apache.org/jira/browse/OOZIE-3328 OOZIE-3319 Log SSH action callback error output https://issues.apache.org/jira/browse/OOZIE-3319 OOZIE-3301 Update NOTICE file https://issues.apache.org/jira/browse/OOZIE-3301 OOZIE-3274 Remove slf4j https://issues.apache.org/jira/browse/OOZIE-3274 OOZIE-3266 Coord action rerun support RERUN_SKIP_NODES option https://issues.apache.org/jira/browse/OOZIE-3266 OOZIE-3256 refactor OozieCLI class https://issues.apache.org/jira/browse/OOZIE-3256 OOZIE-3196 Authorization: restrict world readability by user https://issues.apache.org/jira/browse/OOZIE-3196 OOZIE-3170 Oozie Diagnostic Bundle tool fails with NPE due to missing service class https://issues.apache.org/jira/browse/OOZIE-3170 OOZIE-3141 Expose external
[jira] [Commented] (OOZIE-3715) Fix fork out more than one transitions submit , one transition submit fail can't execute KillXCommand
[ https://issues.apache.org/jira/browse/OOZIE-3715?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17706688#comment-17706688 ] Hadoop QA commented on OOZIE-3715: -- PreCommit-OOZIE-Build started > Fix fork out more than one transitions submit , one transition submit fail > can't execute KillXCommand > - > > Key: OOZIE-3715 > URL: https://issues.apache.org/jira/browse/OOZIE-3715 > Project: Oozie > Issue Type: Bug > Components: core >Affects Versions: 5.2.1 >Reporter: chenhaodan >Assignee: chenhaodan >Priority: Major > Labels: patch > Fix For: trunk > > Attachments: OOZIE-3715-001.patch, OOZIE-3715-002.patch, > OOZIE-3715-003.patch, OOZIE-3715-004.patch, forkSubmitFail_issue.txt > > > When I fork 2 transitions( A and B) to submit , when A transition failed , B > transition still Running , because can't execute KillXCommand. > SignalXCommand.startForkedActions, when one transition submit fail will > create a new ActionStartXCommand and invoke failJob, failJob will add > WorkflowNotificationXCommand and KillXCommand to > {color:#ff}*commandQueue*{color} , and callback at XCommand.call method , > but we add WorkflowNotificationXCommand and KillXCommand to > ActionStartXCommand‘s {color:#ff}*commandQueue*{color} , but not > SignalXCommand , so can't execute KillXCommand. > The code is as follows : > > {code:java} > public void startForkedActions(List > workflowActionBeanListForForked) throws CommandException { > .. > for (Future result : futures) { > .. > if (context.getJobStatus() != null && > context.getJobStatus().equals(Job.Status.FAILED)) { > new ActionStartXCommand(context.getAction().getId(), > null).failJob(context); > .. > } >.. > } > {code} > > {code:java} > public void failJob(ActionExecutor.Context context, WorkflowActionBean > action) throws CommandException { > WorkflowJobBean workflow = (WorkflowJobBean) context.getWorkflow(); > if (!handleUserRetry(context, action)) { > incrActionErrorCounter(action.getType(), "failed", 1); > LOG.warn("Failing Job due to failed action [{0}]", > action.getName()); > try { > workflow.getWorkflowInstance().fail(action.getName()); > WorkflowInstance wfInstance = workflow.getWorkflowInstance(); > ((LiteWorkflowInstance) > wfInstance).setStatus(WorkflowInstance.Status.FAILED); > workflow.setWorkflowInstance(wfInstance); > workflow.setStatus(WorkflowJob.Status.FAILED); > action.setStatus(WorkflowAction.Status.FAILED); > action.resetPending(); > queue(new WorkflowNotificationXCommand(workflow, action)); > queue(new KillXCommand(workflow.getId())); > InstrumentUtils.incrJobCounter(INSTR_FAILED_JOBS_COUNTER_NAME, 1, > getInstrumentation()); > } > catch (WorkflowException ex) { > throw new CommandException(ex); > } > } > } > {code} > > {code:java} > public final T call() throws CommandException { > if (commandQueue != null) { > for (Map.Entry>> entry : > commandQueue.entrySet()) { > LOG.debug("Queuing [{0}] commands with delay [{1}]ms", > entry.getValue().size(), entry.getKey()); > if (!callableQueueService.queueSerial(entry.getValue(), > entry.getKey())) { > LOG.warn("Could not queue [{0}] commands with delay [{1}]ms, > queue full", entry.getValue() > .size(), entry.getKey()); > } > } > } > } > {code} > > > -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (OOZIE-3715) Fix fork out more than one transitions submit , one transition submit fail can't execute KillXCommand
[ https://issues.apache.org/jira/browse/OOZIE-3715?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17706546#comment-17706546 ] Hadoop QA commented on OOZIE-3715: -- Testing JIRA OOZIE-3715 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 2 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 [6] 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:red}-1{color} There are [1] new bugs found below threshold in [sharelib/oozie] that must be fixed. .You can find the SpotBugs diff here (look for the red and orange ones): sharelib/oozie/findbugs-new.html .The most important SpotBugs errors are: .At ShellMain.java:[line 93]: This usage of java/lang/ProcessBuilder.(Ljava/util/List;)V can be vulnerable to Command Injection .At ShellMain.java:[line 91]: At ShellMain.java:[line 90] .At ShellMain.java:[line 92] .{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:green}+1{color} There are no new bugs found in [server]. .{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 CoordJobGetActionsSubsetJPAExecutor.java:[line 76]: At CoordJobGetActionsSubsetJPAExecutor.java:[line 111] .{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: 3260 .{color:orange}Tests failed at first run:{color} TestCoordActionsKillXCommand#testActionKillCommandActionNumbers .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/204/ > Fix fork out more than one transitions submit , one transition submit fail > can't execute KillXCommand > --
[jira] [Commented] (OOZIE-3715) Fix fork out more than one transitions submit , one transition submit fail can't execute KillXCommand
[ https://issues.apache.org/jira/browse/OOZIE-3715?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17706505#comment-17706505 ] Hadoop QA commented on OOZIE-3715: -- PreCommit-OOZIE-Build started > Fix fork out more than one transitions submit , one transition submit fail > can't execute KillXCommand > - > > Key: OOZIE-3715 > URL: https://issues.apache.org/jira/browse/OOZIE-3715 > Project: Oozie > Issue Type: Bug > Components: core >Affects Versions: 5.2.1 >Reporter: chenhaodan >Assignee: chenhaodan >Priority: Major > Labels: patch > Fix For: trunk > > Attachments: OOZIE-3715-001.patch, OOZIE-3715-002.patch, > OOZIE-3715-003.patch, forkSubmitFail_issue.txt > > > When I fork 2 transitions( A and B) to submit , when A transition failed , B > transition still Running , because can't execute KillXCommand. > SignalXCommand.startForkedActions, when one transition submit fail will > create a new ActionStartXCommand and invoke failJob, failJob will add > WorkflowNotificationXCommand and KillXCommand to > {color:#ff}*commandQueue*{color} , and callback at XCommand.call method , > but we add WorkflowNotificationXCommand and KillXCommand to > ActionStartXCommand‘s {color:#ff}*commandQueue*{color} , but not > SignalXCommand , so can't execute KillXCommand. > The code is as follows : > > {code:java} > public void startForkedActions(List > workflowActionBeanListForForked) throws CommandException { > .. > for (Future result : futures) { > .. > if (context.getJobStatus() != null && > context.getJobStatus().equals(Job.Status.FAILED)) { > new ActionStartXCommand(context.getAction().getId(), > null).failJob(context); > .. > } >.. > } > {code} > > {code:java} > public void failJob(ActionExecutor.Context context, WorkflowActionBean > action) throws CommandException { > WorkflowJobBean workflow = (WorkflowJobBean) context.getWorkflow(); > if (!handleUserRetry(context, action)) { > incrActionErrorCounter(action.getType(), "failed", 1); > LOG.warn("Failing Job due to failed action [{0}]", > action.getName()); > try { > workflow.getWorkflowInstance().fail(action.getName()); > WorkflowInstance wfInstance = workflow.getWorkflowInstance(); > ((LiteWorkflowInstance) > wfInstance).setStatus(WorkflowInstance.Status.FAILED); > workflow.setWorkflowInstance(wfInstance); > workflow.setStatus(WorkflowJob.Status.FAILED); > action.setStatus(WorkflowAction.Status.FAILED); > action.resetPending(); > queue(new WorkflowNotificationXCommand(workflow, action)); > queue(new KillXCommand(workflow.getId())); > InstrumentUtils.incrJobCounter(INSTR_FAILED_JOBS_COUNTER_NAME, 1, > getInstrumentation()); > } > catch (WorkflowException ex) { > throw new CommandException(ex); > } > } > } > {code} > > {code:java} > public final T call() throws CommandException { > if (commandQueue != null) { > for (Map.Entry>> entry : > commandQueue.entrySet()) { > LOG.debug("Queuing [{0}] commands with delay [{1}]ms", > entry.getValue().size(), entry.getKey()); > if (!callableQueueService.queueSerial(entry.getValue(), > entry.getKey())) { > LOG.warn("Could not queue [{0}] commands with delay [{1}]ms, > queue full", entry.getValue() > .size(), entry.getKey()); > } > } > } > } > {code} > > > -- This message was sent by Atlassian Jira (v8.20.10#820010)
A Message from the Board to PMC members
Dear Apache Project Management Committee (PMC) members, The Board wants to take just a moment of your time to communicate a few things that seem to have been forgotten by a number of PMC members, across the Foundation, over the past few years. Please note that this is being sent to all projects - yours has not been singled out. The Project Management Committee (PMC) as a whole[1] is tasked with the oversight, health, and sustainability of the project. The PMC members are responsible collectively, and individually, for ensuring that the project operates in a way that is in line with ASF philosophy, and in a way that serves the developers and users of the project. The PMC Chair is not the project leader, in any sense. It is the person who files board reports and makes sure they are delivered on time. It is the secretary for the project, and the project’s ambassador to the Board of Directors. The VP title is given as an artifact of US corporate law, and not because the PMC Chair has any special powers. If you are treating your PMC Chair as the project lead, or granting them any other special powers or privileges, you need to be aware that that’s not the intent of the Chair role. The Chair is a PMC member peer with a few extra duties. Every PMC member has an equal voice in deliberations. Each has one vote. Each has veto power. Every vote weighs the same. It is not only your right, but it is your obligation, to use that vote for the good of the project and its users, not to appease the Chair, your employer, or any other voice in the project. Every PMC member can, and should, nominate new committers, and new PMC members. This is not the sole domain of the PMC Chair. This might be your most important responsibility to the project, as succession planning is the path to sustainability. Every PMC member can, and should, respond when the Board sends email to your private list. You should not wait for the PMC Chair to respond. The Board views the entire PMC as responsible for the project, not just one member. Every PMC member should be subscribed to the private@ mailing list. If you are not, then you are neglecting your duty of oversight. If you no longer wish to be responsible for oversight of the project, you should resign your PMC seat, not merely drop off of the private@ list and ignore it. You can determine which PMC members are not subscribed to your private list by looking at your PMC roster at https://whimsy.apache.org/roster/committee/ Names with an asterisk (*) next to them are not subscribed to the list. We encourage you to take a moment to contact them with this information. Thank you for your attention to these matters, and thank you for keeping our projects healthy. Rich, for The Board of Directors [1] https://apache.org/foundation/how-it-works.html#pmc-members
[jira] [Comment Edited] (OOZIE-3715) Fix fork out more than one transitions submit , one transition submit fail can't execute KillXCommand
[ https://issues.apache.org/jira/browse/OOZIE-3715?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17706284#comment-17706284 ] János Makai edited comment on OOZIE-3715 at 3/29/23 9:08 AM: - Hello [~chenhd], Thank you for your patience in waiting for my feedback. Based on your initial statement and the test code, it is my understanding that the test case ({*}org.apache.oozie.command.wf.TestSignalXCommand#testForkSubmitFail{*}) should fail without any changes made to {*}SignalXCommand{*}. However, despite having commented out the new line in *SignalXCommand* on my local computer, the test case still managed to succeed. Please inform me if my comprehension is accurate. Considering the perspective of clean code, my observations are: * Please do not use star import ({*}{color:#0747a6}import org.apache.oozie.service.*;{color}{*}) * Fix the 1 line that is longer than 132 characters ({*}org.apache.oozie.command.wf.TestSignalXCommand#504{*}) * Kindly furnish a comprehensive Javadoc description for the new test case. * The new test case contains unnecessary code duplications. Specifically, in {*}org.apache.oozie.command.wf.TestSignalXCommand#_testForkSubmitFail{*}, the two implemented scenarios differ only in the value assigned to {*}org.apache.oozie.command.wf.SignalXCommand#FORK_PARALLEL_JOBSUBMISSION{*}. To prevent duplication, this test case could be parameterized based on this difference. * {+}Question{+}: Why the extra *{color:#0747a6}Thread.sleep(500);{color}* is needed in {*}org.apache.oozie.command.wf.TestSignalXCommand#493{*}, after the while loop? * Please ensure consistent spacing throughout the code. For instance, in the following line: {code:java} while (!WorkflowJob.Status.FAILED.equals( engine.getJob(jobId).getStatus())){ {code} there is an extraneous space before "engine," and no space before the closing bracket. Please apply this same consideration to every instance in the code. was (Author: jmakai): Hello [~chenhd], Thank you for your patience in waiting for my feedback. Based on your initial statement and the test code, it is my understanding that the test case ({*}org.apache.oozie.command.wf.TestSignalXCommand#testForkSubmitFail{*}) should fail without any changes made to {*}SignalXCommand{*}. However, despite having commented out the new line in *SignalXCommand* on my local computer, the test case still managed to succeed. Please inform me if my comprehension is accurate. Considering the perspective of clean code, my observations are: * Please do not use star import ({*}{color:#0747a6}import org.apache.oozie.service.*;{color}{*}) * Fix the 1 line that is longer than 132 characters ({*}org.apache.oozie.command.wf.TestSignalXCommand#504{*}) * Kindly furnish a comprehensive Javadoc description for the new test case. * The new test case contains unnecessary code duplications. Specifically, in {*}org.apache.oozie.command.wf.TestSignalXCommand#_testForkSubmitFail{*}, the two implemented scenarios differ only in the value assigned to {*}org.apache.oozie.command.wf.SignalXCommand#FORK_PARALLEL_JOBSUBMISSION{*}. To prevent duplication, this test case could be parameterized based on this difference. * {+}Question{+}: Why the extra *{color:#0747a6}Thread.sleep(500);{color}* is needed in {*}org.apache.oozie.command.wf.TestSignalXCommand#493{*}, after the while loop? * Please ensure consistent spacing throughout the code. For instance, in the following line: {code:java} while (!WorkflowJob.Status.FAILED.equals( engine.getJob(jobId).getStatus())){ {code} there is an extraneous space before "engine," and no space before the closing bracket. Please apply this same consideration to every instance in the code. * {+}Question{+}: Why the *{color:#0747a6}assertNotNull(failAction);{color}* and *{color:#0747a6}assertNotNull(failAction);{color}* needed at the end of the test? > Fix fork out more than one transitions submit , one transition submit fail > can't execute KillXCommand > - > > Key: OOZIE-3715 > URL: https://issues.apache.org/jira/browse/OOZIE-3715 > Project: Oozie > Issue Type: Bug > Components: core >Affects Versions: 5.2.1 >Reporter: chenhaodan >Assignee: chenhaodan >Priority: Major > Labels: patch > Fix For: trunk > > Attachments: OOZIE-3715-001.patch, OOZIE-3715-002.patch > > > When I fork 2 transitions( A and B) to submit , when A transition failed , B > transition still Running , because can't execute KillXCommand. > SignalXCommand.startForkedActions, when one transition submit fail will > create a new ActionStartXCommand and invoke failJob, failJob will add > WorkflowNotificationXComma
[jira] [Commented] (OOZIE-3715) Fix fork out more than one transitions submit , one transition submit fail can't execute KillXCommand
[ https://issues.apache.org/jira/browse/OOZIE-3715?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17706284#comment-17706284 ] János Makai commented on OOZIE-3715: Hello [~chenhd], Thank you for your patience in waiting for my feedback. Based on your initial statement and the test code, it is my understanding that the test case ({*}org.apache.oozie.command.wf.TestSignalXCommand#testForkSubmitFail{*}) should fail without any changes made to {*}SignalXCommand{*}. However, despite having commented out the new line in *SignalXCommand* on my local computer, the test case still managed to succeed. Please inform me if my comprehension is accurate. Considering the perspective of clean code, my observations are: * Please do not use star import ({*}{color:#0747a6}import org.apache.oozie.service.*;{color}{*}) * Fix the 1 line that is longer than 132 characters ({*}org.apache.oozie.command.wf.TestSignalXCommand#504{*}) * Kindly furnish a comprehensive Javadoc description for the new test case. * The new test case contains unnecessary code duplications. Specifically, in {*}org.apache.oozie.command.wf.TestSignalXCommand#_testForkSubmitFail{*}, the two implemented scenarios differ only in the value assigned to {*}org.apache.oozie.command.wf.SignalXCommand#FORK_PARALLEL_JOBSUBMISSION{*}. To prevent duplication, this test case could be parameterized based on this difference. * {+}Question{+}: Why the extra *{color:#0747a6}Thread.sleep(500);{color}* is needed in {*}org.apache.oozie.command.wf.TestSignalXCommand#493{*}, after the while loop? * Please ensure consistent spacing throughout the code. For instance, in the following line: {code:java} while (!WorkflowJob.Status.FAILED.equals( engine.getJob(jobId).getStatus())){ {code} there is an extraneous space before "engine," and no space before the closing bracket. Please apply this same consideration to every instance in the code. * {+}Question{+}: Why the *{color:#0747a6}assertNotNull(failAction);{color}* and *{color:#0747a6}assertNotNull(failAction);{color}* needed at the end of the test? > Fix fork out more than one transitions submit , one transition submit fail > can't execute KillXCommand > - > > Key: OOZIE-3715 > URL: https://issues.apache.org/jira/browse/OOZIE-3715 > Project: Oozie > Issue Type: Bug > Components: core >Affects Versions: 5.2.1 >Reporter: chenhaodan >Assignee: chenhaodan >Priority: Major > Labels: patch > Fix For: trunk > > Attachments: OOZIE-3715-001.patch, OOZIE-3715-002.patch > > > When I fork 2 transitions( A and B) to submit , when A transition failed , B > transition still Running , because can't execute KillXCommand. > SignalXCommand.startForkedActions, when one transition submit fail will > create a new ActionStartXCommand and invoke failJob, failJob will add > WorkflowNotificationXCommand and KillXCommand to > {color:#ff}*commandQueue*{color} , and callback at XCommand.call method , > but we add WorkflowNotificationXCommand and KillXCommand to > ActionStartXCommand‘s {color:#ff}*commandQueue*{color} , but not > SignalXCommand , so can't execute KillXCommand. > The code is as follows : > > {code:java} > public void startForkedActions(List > workflowActionBeanListForForked) throws CommandException { > .. > for (Future result : futures) { > .. > if (context.getJobStatus() != null && > context.getJobStatus().equals(Job.Status.FAILED)) { > new ActionStartXCommand(context.getAction().getId(), > null).failJob(context); > .. > } >.. > } > {code} > > {code:java} > public void failJob(ActionExecutor.Context context, WorkflowActionBean > action) throws CommandException { > WorkflowJobBean workflow = (WorkflowJobBean) context.getWorkflow(); > if (!handleUserRetry(context, action)) { > incrActionErrorCounter(action.getType(), "failed", 1); > LOG.warn("Failing Job due to failed action [{0}]", > action.getName()); > try { > workflow.getWorkflowInstance().fail(action.getName()); > WorkflowInstance wfInstance = workflow.getWorkflowInstance(); > ((LiteWorkflowInstance) > wfInstance).setStatus(WorkflowInstance.Status.FAILED); > workflow.setWorkflowInstance(wfInstance); > workflow.setStatus(WorkflowJob.Status.FAILED); > action.setStatus(WorkflowAction.Status.FAILED); > action.resetPending(); > queue(new WorkflowNotificationXCommand(workflow, action)); > queue(new KillX