[
https://issues.apache.org/jira/browse/OOZIE-684?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13217566#comment-13217566
]
[email protected] commented on OOZIE-684:
-----------------------------------------------------
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/4035/#review5359
-----------------------------------------------------------
http://svn.apache.org/repos/asf/incubator/oozie/trunk/core/src/main/java/org/apache/oozie/command/XCommand.java
<https://reviews.apache.org/r/4035/#comment11663>
we should not allow getEntityKey == null to get the lock. Please add
condition check here too.
http://svn.apache.org/repos/asf/incubator/oozie/trunk/core/src/main/java/org/apache/oozie/command/XCommand.java
<https://reviews.apache.org/r/4035/#comment11664>
if lock != null, isLockRequired() must be true.
So you can remove isLockRequired().
http://svn.apache.org/repos/asf/incubator/oozie/trunk/core/src/main/java/org/apache/oozie/command/XCommand.java
<https://reviews.apache.org/r/4035/#comment11666>
change to
if (!isLockRequired() || getInterruptMode() || lock != null) {
}
http://svn.apache.org/repos/asf/incubator/oozie/trunk/core/src/main/java/org/apache/oozie/command/XCommand.java
<https://reviews.apache.org/r/4035/#comment11662>
there is no need for this condition check when you already check lock !=
null.
lock != null already means:
inInterrupt == false
getEntityKey != null
- Angelo K.
On 2012-02-24 19:44:14, 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-02-24 19:44:14)
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/command/XCommand.java
1293381
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