You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tinkerpop.apache.org by "stephen mallette (JIRA)" <ji...@apache.org> on 2017/10/12 16:49:00 UTC
[jira] [Closed] (TINKERPOP-1761) GremlinExecutor: Timeout future
not cancelled on successful script evaluation
[ https://issues.apache.org/jira/browse/TINKERPOP-1761?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
stephen mallette closed TINKERPOP-1761.
---------------------------------------
Resolution: Fixed
Assignee: stephen mallette
Fix Version/s: 3.3.1
3.2.7
> GremlinExecutor: Timeout future not cancelled on successful script evaluation
> -----------------------------------------------------------------------------
>
> Key: TINKERPOP-1761
> URL: https://issues.apache.org/jira/browse/TINKERPOP-1761
> Project: TinkerPop
> Issue Type: Bug
> Components: groovy
> Affects Versions: 3.2.6
> Reporter: Konstantin Müller
> Assignee: stephen mallette
> Fix For: 3.2.7, 3.3.1
>
>
> This bug seems to be introduced by TINKERPOP-1714. The timeout future in GremlinExecutor.eval() is not cancelled when the evaluation future is completed successfully before the timeout (lines 304ff). This was done correctly before the changes introduced by TINKERPOP-1714. Code to reproduce:
> {code:java}
> try (GremlinExecutor executor = GremlinExecutor.build().scriptEvaluationTimeout(15_000).create()) {
> executor.eval("1+1").get();
> } catch (Exception e) {
> // NOOP
> }
> {code}
> When the code leaves the try-block it calls GremlinExecutor.close() which will clean up executorService and scheduledExecutorService, but because the timeout future is not cancelled this will hang until the future is finished (here 15s).
> Workaround: Provide an own ExecutorService when constructing a GremlinExecutor instance and cancel all tasks when the script evaluation is finished successfully.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)