[jira] [Commented] (IGNITE-7904) ComputeTaskFuture.get() throws incorrect exception if ComputeTask.result() throws IgniteException
[ https://issues.apache.org/jira/browse/IGNITE-7904?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16430408#comment-16430408 ] ASF GitHub Bot commented on IGNITE-7904: Github user asfgit closed the pull request at: https://github.com/apache/ignite/pull/3683 > ComputeTaskFuture.get() throws incorrect exception if ComputeTask.result() > throws IgniteException > - > > Key: IGNITE-7904 > URL: https://issues.apache.org/jira/browse/IGNITE-7904 > Project: Ignite > Issue Type: Bug >Reporter: Stanislav Lukyanov >Assignee: Stanislav Lukyanov >Priority: Major > Fix For: 2.5 > > > ComputeTask.result() javadoc says: "Throws: IgniteException - If handling a > job result caused an error effectively rejecting a failover. This exception > will be thrown out of ComputeTaskFuture.get() method." > However, GridFutureAdapter calls IgniteUtils.cast(Throwable) on the exception > before throwing it from get(), and the latter method trims the stack trace to > the first occurence of an IgniteCheckedException. Because of that, get() > throws not the IgniteException thrown from the ComputeTask.result() but one > of its causes. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-7904) ComputeTaskFuture.get() throws incorrect exception if ComputeTask.result() throws IgniteException
[ https://issues.apache.org/jira/browse/IGNITE-7904?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16430396#comment-16430396 ] Dmitriy Pavlov commented on IGNITE-7904: Test run seems to be as red as usual. > ComputeTaskFuture.get() throws incorrect exception if ComputeTask.result() > throws IgniteException > - > > Key: IGNITE-7904 > URL: https://issues.apache.org/jira/browse/IGNITE-7904 > Project: Ignite > Issue Type: Bug >Reporter: Stanislav Lukyanov >Assignee: Stanislav Lukyanov >Priority: Major > Fix For: 2.5 > > > ComputeTask.result() javadoc says: "Throws: IgniteException - If handling a > job result caused an error effectively rejecting a failover. This exception > will be thrown out of ComputeTaskFuture.get() method." > However, GridFutureAdapter calls IgniteUtils.cast(Throwable) on the exception > before throwing it from get(), and the latter method trims the stack trace to > the first occurence of an IgniteCheckedException. Because of that, get() > throws not the IgniteException thrown from the ComputeTask.result() but one > of its causes. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-7904) ComputeTaskFuture.get() throws incorrect exception if ComputeTask.result() throws IgniteException
[ https://issues.apache.org/jira/browse/IGNITE-7904?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16427068#comment-16427068 ] Stanislav Lukyanov commented on IGNITE-7904: Confirmed tests pass: Compute (Grid): https://ci.ignite.apache.org/viewLog.html?buildId=1181097=buildResultsDiv=IgniteTests24Java8_ComputeGrid Java Client: https://ci.ignite.apache.org/viewLog.html?buildId=1181095=buildResultsDiv=IgniteTests24Java8_JavaClient Cache (Restarts) seems to fail with timeout error in different branches: https://ci.ignite.apache.org/viewLog.html?buildId=1181083=buildResultsDiv=IgniteTests24Java8_CacheRestarts1 https://ci.ignite.apache.org/viewLog.html?buildId=1178979=buildResultsDiv=IgniteTests24Java8_CacheRestarts1 > ComputeTaskFuture.get() throws incorrect exception if ComputeTask.result() > throws IgniteException > - > > Key: IGNITE-7904 > URL: https://issues.apache.org/jira/browse/IGNITE-7904 > Project: Ignite > Issue Type: Bug >Reporter: Stanislav Lukyanov >Assignee: Stanislav Lukyanov >Priority: Major > Fix For: 2.5 > > > ComputeTask.result() javadoc says: "Throws: IgniteException - If handling a > job result caused an error effectively rejecting a failover. This exception > will be thrown out of ComputeTaskFuture.get() method." > However, GridFutureAdapter calls IgniteUtils.cast(Throwable) on the exception > before throwing it from get(), and the latter method trims the stack trace to > the first occurence of an IgniteCheckedException. Because of that, get() > throws not the IgniteException thrown from the ComputeTask.result() but one > of its causes. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-7904) ComputeTaskFuture.get() throws incorrect exception if ComputeTask.result() throws IgniteException
[ https://issues.apache.org/jira/browse/IGNITE-7904?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16426904#comment-16426904 ] Stanislav Lukyanov commented on IGNITE-7904: I don't think this change can cause timeout errors in tests. I've checked the IgniteBinaryObjectsComputeGridTestSuite: GridMultinodeRedeployPrivateModeSelfTest.testPrivateMode - it passes. I'll rerun TC to confirm. > ComputeTaskFuture.get() throws incorrect exception if ComputeTask.result() > throws IgniteException > - > > Key: IGNITE-7904 > URL: https://issues.apache.org/jira/browse/IGNITE-7904 > Project: Ignite > Issue Type: Bug >Reporter: Stanislav Lukyanov >Assignee: Stanislav Lukyanov >Priority: Major > Fix For: 2.5 > > > ComputeTask.result() javadoc says: "Throws: IgniteException - If handling a > job result caused an error effectively rejecting a failover. This exception > will be thrown out of ComputeTaskFuture.get() method." > However, GridFutureAdapter calls IgniteUtils.cast(Throwable) on the exception > before throwing it from get(), and the latter method trims the stack trace to > the first occurence of an IgniteCheckedException. Because of that, get() > throws not the IgniteException thrown from the ComputeTask.result() but one > of its causes. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-7904) ComputeTaskFuture.get() throws incorrect exception if ComputeTask.result() throws IgniteException
[ https://issues.apache.org/jira/browse/IGNITE-7904?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16426838#comment-16426838 ] Dmitriy Pavlov commented on IGNITE-7904: Test failure probably introduced here,Test failures count is low < 3, probably new test introduced Compute (Grid) [ tests 1 ] IgniteBinaryObjectsComputeGridTestSuite: GridMultinodeRedeployPrivateModeSelfTest.testPrivateMode (master fail rate 0,0%) I'm not sure about failures Cache (Restarts) [1] [ tests 0 TIMEOUT , Exit Code ] GridCacheReplicatedNodeRestartSelfTest.testRestartWithPutEightNodesTwoBackups (last started) & Java Client [ tests 0 TIMEOUT , Out Of Memory Error , Exit Code ] IgniteCache150ClientsTest.test150Clients (last started) Please check 2 last failures and fix introduced failure > ComputeTaskFuture.get() throws incorrect exception if ComputeTask.result() > throws IgniteException > - > > Key: IGNITE-7904 > URL: https://issues.apache.org/jira/browse/IGNITE-7904 > Project: Ignite > Issue Type: Bug >Reporter: Stanislav Lukyanov >Assignee: Stanislav Lukyanov >Priority: Major > Fix For: 2.5 > > > ComputeTask.result() javadoc says: "Throws: IgniteException - If handling a > job result caused an error effectively rejecting a failover. This exception > will be thrown out of ComputeTaskFuture.get() method." > However, GridFutureAdapter calls IgniteUtils.cast(Throwable) on the exception > before throwing it from get(), and the latter method trims the stack trace to > the first occurence of an IgniteCheckedException. Because of that, get() > throws not the IgniteException thrown from the ComputeTask.result() but one > of its causes. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-7904) ComputeTaskFuture.get() throws incorrect exception if ComputeTask.result() throws IgniteException
[ https://issues.apache.org/jira/browse/IGNITE-7904?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16426832#comment-16426832 ] Dmitriy Pavlov commented on IGNITE-7904: [~agura], [~agoncharuk], could both of you please take a look? I'm not able to sign-off such change because of possible impact. > ComputeTaskFuture.get() throws incorrect exception if ComputeTask.result() > throws IgniteException > - > > Key: IGNITE-7904 > URL: https://issues.apache.org/jira/browse/IGNITE-7904 > Project: Ignite > Issue Type: Bug >Reporter: Stanislav Lukyanov >Assignee: Stanislav Lukyanov >Priority: Major > Fix For: 2.5 > > > ComputeTask.result() javadoc says: "Throws: IgniteException - If handling a > job result caused an error effectively rejecting a failover. This exception > will be thrown out of ComputeTaskFuture.get() method." > However, GridFutureAdapter calls IgniteUtils.cast(Throwable) on the exception > before throwing it from get(), and the latter method trims the stack trace to > the first occurence of an IgniteCheckedException. Because of that, get() > throws not the IgniteException thrown from the ComputeTask.result() but one > of its causes. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-7904) ComputeTaskFuture.get() throws incorrect exception if ComputeTask.result() throws IgniteException
[ https://issues.apache.org/jira/browse/IGNITE-7904?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16426827#comment-16426827 ] Stanislav Lukyanov commented on IGNITE-7904: Dev-list thread on this issue: http://apache-ignite-developers.2346864.n4.nabble.com/Trimming-exceptions-in-IgniteUtils-cast-td27879.html > ComputeTaskFuture.get() throws incorrect exception if ComputeTask.result() > throws IgniteException > - > > Key: IGNITE-7904 > URL: https://issues.apache.org/jira/browse/IGNITE-7904 > Project: Ignite > Issue Type: Bug >Reporter: Stanislav Lukyanov >Assignee: Stanislav Lukyanov >Priority: Major > Fix For: 2.5 > > > ComputeTask.result() javadoc says: "Throws: IgniteException - If handling a > job result caused an error effectively rejecting a failover. This exception > will be thrown out of ComputeTaskFuture.get() method." > However, GridFutureAdapter calls IgniteUtils.cast(Throwable) on the exception > before throwing it from get(), and the latter method trims the stack trace to > the first occurence of an IgniteCheckedException. Because of that, get() > throws not the IgniteException thrown from the ComputeTask.result() but one > of its causes. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-7904) ComputeTaskFuture.get() throws incorrect exception if ComputeTask.result() throws IgniteException
[ https://issues.apache.org/jira/browse/IGNITE-7904?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16422813#comment-16422813 ] Stanislav Lukyanov commented on IGNITE-7904: [~dpavlov], could you please review the changes? > ComputeTaskFuture.get() throws incorrect exception if ComputeTask.result() > throws IgniteException > - > > Key: IGNITE-7904 > URL: https://issues.apache.org/jira/browse/IGNITE-7904 > Project: Ignite > Issue Type: Bug >Reporter: Stanislav Lukyanov >Assignee: Stanislav Lukyanov >Priority: Major > > ComputeTask.result() javadoc says: "Throws: IgniteException - If handling a > job result caused an error effectively rejecting a failover. This exception > will be thrown out of ComputeTaskFuture.get() method." > However, GridFutureAdapter calls IgniteUtils.cast(Throwable) on the exception > before throwing it from get(), and the latter method trims the stack trace to > the first occurence of an IgniteCheckedException. Because of that, get() > throws not the IgniteException thrown from the ComputeTask.result() but one > of its causes. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-7904) ComputeTaskFuture.get() throws incorrect exception if ComputeTask.result() throws IgniteException
[ https://issues.apache.org/jira/browse/IGNITE-7904?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=1642#comment-1642 ] Ilya Kasnacheev commented on IGNITE-7904: - [~slukyanov] looks good to me now! > ComputeTaskFuture.get() throws incorrect exception if ComputeTask.result() > throws IgniteException > - > > Key: IGNITE-7904 > URL: https://issues.apache.org/jira/browse/IGNITE-7904 > Project: Ignite > Issue Type: Bug >Reporter: Stanislav Lukyanov >Assignee: Stanislav Lukyanov >Priority: Major > > ComputeTask.result() javadoc says: "Throws: IgniteException - If handling a > job result caused an error effectively rejecting a failover. This exception > will be thrown out of ComputeTaskFuture.get() method." > However, GridFutureAdapter calls IgniteUtils.cast(Throwable) on the exception > before throwing it from get(), and the latter method trims the stack trace to > the first occurence of an IgniteCheckedException. Because of that, get() > throws not the IgniteException thrown from the ComputeTask.result() but one > of its causes. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-7904) ComputeTaskFuture.get() throws incorrect exception if ComputeTask.result() throws IgniteException
[ https://issues.apache.org/jira/browse/IGNITE-7904?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16422212#comment-16422212 ] Stanislav Lukyanov commented on IGNITE-7904: Thanks, [~ilyak]! Addressed the review comments. Will make sure that 2.5 has the relevant release note. > ComputeTaskFuture.get() throws incorrect exception if ComputeTask.result() > throws IgniteException > - > > Key: IGNITE-7904 > URL: https://issues.apache.org/jira/browse/IGNITE-7904 > Project: Ignite > Issue Type: Bug >Reporter: Stanislav Lukyanov >Assignee: Stanislav Lukyanov >Priority: Major > > ComputeTask.result() javadoc says: "Throws: IgniteException - If handling a > job result caused an error effectively rejecting a failover. This exception > will be thrown out of ComputeTaskFuture.get() method." > However, GridFutureAdapter calls IgniteUtils.cast(Throwable) on the exception > before throwing it from get(), and the latter method trims the stack trace to > the first occurence of an IgniteCheckedException. Because of that, get() > throws not the IgniteException thrown from the ComputeTask.result() but one > of its causes. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-7904) ComputeTaskFuture.get() throws incorrect exception if ComputeTask.result() throws IgniteException
[ https://issues.apache.org/jira/browse/IGNITE-7904?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16422188#comment-16422188 ] Ilya Kasnacheev commented on IGNITE-7904: - I am suggesting some cosmetic changes, and also prepare some brief description of it for 2.5 rel notes since this is a potentially breaking change. > ComputeTaskFuture.get() throws incorrect exception if ComputeTask.result() > throws IgniteException > - > > Key: IGNITE-7904 > URL: https://issues.apache.org/jira/browse/IGNITE-7904 > Project: Ignite > Issue Type: Bug >Reporter: Stanislav Lukyanov >Assignee: Stanislav Lukyanov >Priority: Major > > ComputeTask.result() javadoc says: "Throws: IgniteException - If handling a > job result caused an error effectively rejecting a failover. This exception > will be thrown out of ComputeTaskFuture.get() method." > However, GridFutureAdapter calls IgniteUtils.cast(Throwable) on the exception > before throwing it from get(), and the latter method trims the stack trace to > the first occurence of an IgniteCheckedException. Because of that, get() > throws not the IgniteException thrown from the ComputeTask.result() but one > of its causes. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-7904) ComputeTaskFuture.get() throws incorrect exception if ComputeTask.result() throws IgniteException
[ https://issues.apache.org/jira/browse/IGNITE-7904?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16422137#comment-16422137 ] Stanislav Lukyanov commented on IGNITE-7904: Summary of the changes: - Changed IgniteUtils::cast not to trim exception chains as it used to. GridClosureException is still unwrapped, but other exceptions aren't. - Added test to check that IgniteCompute::execute and ::executeAsync always throw the same exception as was thrown by the original code. - Changed existing code to accommodate the new ::cast and ::execute behavior -- Certain APIs that relied on getting specialized exceptions, such as CacheException or IgfsException, from compute calls now attempt to find the required exception down the chain themselves (instead of relying on compute to unwrap it for them). -- Certain tests that relied on getting a specific exception are changed to search the exception chain (e.g. by changing GridTestUtils::assertThrows to ::assertThrowsAnyCause). -- Certain exception messages now contain their cause' message; this is to reduce compatibility impact of the new behavior when a code expects an exception containing a specific message; e.g. it was observed that REST calls return the top exception's message as an error description, so a REST client might be relying on having the old text; adding cause' message helps to smooth this a bit. > ComputeTaskFuture.get() throws incorrect exception if ComputeTask.result() > throws IgniteException > - > > Key: IGNITE-7904 > URL: https://issues.apache.org/jira/browse/IGNITE-7904 > Project: Ignite > Issue Type: Bug >Reporter: Stanislav Lukyanov >Assignee: Stanislav Lukyanov >Priority: Major > > ComputeTask.result() javadoc says: "Throws: IgniteException - If handling a > job result caused an error effectively rejecting a failover. This exception > will be thrown out of ComputeTaskFuture.get() method." > However, GridFutureAdapter calls IgniteUtils.cast(Throwable) on the exception > before throwing it from get(), and the latter method trims the stack trace to > the first occurence of an IgniteCheckedException. Because of that, get() > throws not the IgniteException thrown from the ComputeTask.result() but one > of its causes. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-7904) ComputeTaskFuture.get() throws incorrect exception if ComputeTask.result() throws IgniteException
[ https://issues.apache.org/jira/browse/IGNITE-7904?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16422121#comment-16422121 ] Stanislav Lukyanov commented on IGNITE-7904: Changes are in the pull request [https://github.com/apache/ignite/pull/3683], TC is OK: https://ci.ignite.apache.org/viewLog.html?buildId=1171247=buildResultsDiv=IgniteTests24Java8_RunAll. [~ilyak], could you please take a look? > ComputeTaskFuture.get() throws incorrect exception if ComputeTask.result() > throws IgniteException > - > > Key: IGNITE-7904 > URL: https://issues.apache.org/jira/browse/IGNITE-7904 > Project: Ignite > Issue Type: Bug >Reporter: Stanislav Lukyanov >Assignee: Stanislav Lukyanov >Priority: Major > > ComputeTask.result() javadoc says: "Throws: IgniteException - If handling a > job result caused an error effectively rejecting a failover. This exception > will be thrown out of ComputeTaskFuture.get() method." > However, GridFutureAdapter calls IgniteUtils.cast(Throwable) on the exception > before throwing it from get(), and the latter method trims the stack trace to > the first occurence of an IgniteCheckedException. Because of that, get() > throws not the IgniteException thrown from the ComputeTask.result() but one > of its causes. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (IGNITE-7904) ComputeTaskFuture.get() throws incorrect exception if ComputeTask.result() throws IgniteException
[ https://issues.apache.org/jira/browse/IGNITE-7904?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16409550#comment-16409550 ] ASF GitHub Bot commented on IGNITE-7904: GitHub user slukyano opened a pull request: https://github.com/apache/ignite/pull/3683 IGNITE-7904: Changed IgniteUtils::cast not to trim exception chains. You can merge this pull request into a Git repository by running: $ git pull https://github.com/gridgain/apache-ignite ignite-7904 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/ignite/pull/3683.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #3683 > ComputeTaskFuture.get() throws incorrect exception if ComputeTask.result() > throws IgniteException > - > > Key: IGNITE-7904 > URL: https://issues.apache.org/jira/browse/IGNITE-7904 > Project: Ignite > Issue Type: Bug >Reporter: Stanislav Lukyanov >Assignee: Stanislav Lukyanov >Priority: Major > > ComputeTask.result() javadoc says: "Throws: IgniteException - If handling a > job result caused an error effectively rejecting a failover. This exception > will be thrown out of ComputeTaskFuture.get() method." > However, GridFutureAdapter calls IgniteUtils.cast(Throwable) on the exception > before throwing it from get(), and the latter method trims the stack trace to > the first occurence of an IgniteCheckedException. Because of that, get() > throws not the IgniteException thrown from the ComputeTask.result() but one > of its causes. -- This message was sent by Atlassian JIRA (v7.6.3#76005)