Konstantin Müller created TINKERPOP-1761:
--------------------------------------------
Summary: 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
Affects Versions: 3.2.6
Reporter: Konstantin Müller
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)