[
https://issues.apache.org/jira/browse/OOZIE-684?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13223926#comment-13223926
]
[email protected] commented on OOZIE-684:
-----------------------------------------------------
bq. On 2012-02-27 21:12:35, Angelo K. Huang wrote:
bq. >
http://svn.apache.org/repos/asf/incubator/oozie/trunk/core/src/main/java/org/apache/oozie/command/XCommand.java,
line 331
bq. > <https://reviews.apache.org/r/4035/diff/2/?file=85862#file85862line331>
bq. >
bq. > there is no need for this condition check when you already check
lock != null.
bq. >
bq. > lock != null already means:
bq. > inInterrupt == false
bq. > getEntityKey != null
bq.
bq. Mohamed Battisha wrote:
bq. if the entity key is checked while acquiring lock as you requested, we
can remove it here
bq. But, we have to check for inInterrupt, otherwise we can be in an
endless loop while executing interrupts within interrupts
bq.
bq. Angelo K. Huang wrote:
bq. Before you enter this executeInterrupts(), you already checked lock !=
null. So these two conditions check are redundant.
bq.
bq. Mohamed Battisha wrote:
bq. nope, you have to check if you are executing regular or interrupt
commands. We should avoid executing interrupts within interrupts.
First you get the lock only when it is not in the Interrupt mode. Then,
executeInterrupts will only called when lock is not NULL. So in the function
executeInterrupts(), this inInterruptMode() will always be false.
==> if (isLockRequired() && !this.inInterruptMode()) {
Instrumentation.Cron acquireLockCron = new
Instrumentation.Cron();
acquireLockCron.start();
acquireLock();
acquireLockCron.stop();
instrumentation.addCron(INSTRUMENTATION_GROUP, getName() +
".acquireLock", acquireLockCron);
}
==> if (lock != null) {
this.executeInterrupts();
}
- Angelo K.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/4035/#review5359
-----------------------------------------------------------
On 2012-03-02 23:03:35, Mohamed Battisha wrote:
bq.
bq. -----------------------------------------------------------
bq. This is an automatically generated e-mail. To reply, visit:
bq. https://reviews.apache.org/r/4035/
bq. -----------------------------------------------------------
bq.
bq. (Updated 2012-03-02 23:03:35)
bq.
bq.
bq. Review request for oozie.
bq.
bq.
bq. Summary
bq. -------
bq.
bq. While executing an interrupt driven commands it may be executed from the
map on one thread and executed from the queue at a different thread
bq. This will cause the following exception to be thrown:
bq. java.lang.IllegalStateException: CoordChangeXCommand already used.
bq.
bq. - Avoiding throwing exception in case of interrupts and synchronizing the
changes in [used]
bq. - Avoiding executing interrupt in case of commands that doesn't need locks
bq. - Changing the debug message for execute interrupt to explicitly
mentioning it is an interrupt command
bq.
bq.
bq. This addresses bug OOZIE-684.
bq. https://issues.apache.org/jira/browse/OOZIE-684
bq.
bq.
bq. Diffs
bq. -----
bq.
bq.
http://svn.apache.org/repos/asf/incubator/oozie/trunk/core/src/main/java/org/apache/oozie/util/XCallable.java
1296506
bq.
http://svn.apache.org/repos/asf/incubator/oozie/trunk/core/src/test/java/org/apache/oozie/command/TestCommand.java
1296506
bq.
http://svn.apache.org/repos/asf/incubator/oozie/trunk/core/src/test/java/org/apache/oozie/service/TestCallableQueueService.java
1296506
bq.
http://svn.apache.org/repos/asf/incubator/oozie/trunk/core/src/main/java/org/apache/oozie/service/CallableQueueService.java
1296506
bq.
http://svn.apache.org/repos/asf/incubator/oozie/trunk/core/src/main/java/org/apache/oozie/command/Command.java
1296506
bq.
http://svn.apache.org/repos/asf/incubator/oozie/trunk/core/src/main/java/org/apache/oozie/command/XCommand.java
1296506
bq.
bq. Diff: https://reviews.apache.org/r/4035/diff
bq.
bq.
bq. Testing
bq. -------
bq.
bq.
bq. Thanks,
bq.
bq. Mohamed
bq.
bq.
> A race condition may happen under stress while executing an interrupt command
> -----------------------------------------------------------------------------
>
> Key: OOZIE-684
> URL: https://issues.apache.org/jira/browse/OOZIE-684
> Project: Oozie
> Issue Type: Bug
> Reporter: Mohamed Battisha
> Labels: performance
> Original Estimate: 168h
> Remaining Estimate: 168h
>
> While executing an interrupt driven commands it may be executed from the map
> on one thread and executed from the queue at a different thread
> This will cause the following exception to be thrown:
> java.lang.IllegalStateException: CoordChangeXCommand already used.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira