|
From: Daniel H. <da...@de...> - 2016-04-24 20:39:17
|
I found another issue on this. When I stopped the server it prints
several InterruptedExceptions, one for each of the queries that give a
timeout.
ERROR: BigdataRDFServlet.java:214:
cause=java.lang.InterruptedException, query=SPARQL-QUERY:
queryStr=PREFIX wikibase:<http://wikiba.se/ontology-beta#>
PREFIX wd: <http://www.wikidata.org/entity/> SELECT ?s ?p ?q ?qo WHERE { { ?s
?p ?c . ?c ?ps wd:Q16533 . ?p wikibase:propertyValue ?ps . }
OPTIONAL { ?c ?q ?qo . ?q a wikibase:Propert
y . } } LIMIT 10000
java.lang.InterruptedException
I have set timeout=60 in the request. That is, parametrically the
request is:
"#{@endpoint}?query=#{url_encode(query)}&timeout=60&analytic=true"
It seems that the timeout is not working because tasks continue several
minutes after the timeout.
Then, I also set a timeout in a file override.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<display-name>Bigdata</display-name>
<description>Bigdata</description>
<context-param>
<description></description>
<param-name>queryTimeout</param-name>
<param-value>2</param-value>
</context-param>
</web-app>
Then, I run the server with
java -Xmx10g -Xms10g -XX:PermSize=10g -XX:MaxPermSize=10g
-XX:+UseConcMarkSweepGC -XX:ParallelCMSThreads=5
-Djetty.overrideWebXml=override.xml
-Dbigdata.propertyFile=server.properties -jar blazegraph.jar
Then, several queries where aborted by the server. That is, the response
have a status code 500 and the server prints this:
Go to http://172.17.69.182:9999/blazegraph/ to get started.
WARN : Haltable.java:466: com.bigdata.util.concurrent.Haltable@bd8c9ab :
isFirstCause=true : com.bigdata.bop.engine.QueryTimeoutException: Query
deadline is expired.
com.bigdata.bop.engine.QueryTimeoutException: Query deadline is expired.
at com.bigdata.bop.engine.RunState.checkDeadline(RunState.java:832)
at com.bigdata.bop.engine.RunState.startOp(RunState.java:753)
at
com.bigdata.bop.engine.AbstractRunningQuery.startOp(AbstractRunningQuery.java:789)
at
com.bigdata.bop.engine.QueryEngine.startOp(QueryEngine.java:1348)
at
com.bigdata.bop.engine.ChunkedRunningQuery$ChunkTaskWrapper.run(ChunkedRunningQuery.java:883)
at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at com.bigdata.concurrent.FutureTaskMon.run(FutureTaskMon.java:63)
at
com.bigdata.bop.engine.ChunkedRunningQuery$ChunkFutureTask.run(ChunkedRunningQuery.java:792)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
ERROR: BigdataRDFServlet.java:214:
cause=java.util.concurrent.ExecutionException:
java.util.concurrent.ExecutionException:
org.openrdf.query.QueryInterruptedException: ja
va.lang.RuntimeException: java.util.concurrent.ExecutionException:
java.lang.RuntimeException: java.util.concurrent.ExecutionException:
com.bigdata.bop.engine.QueryTimeou
tException: Query deadline is expired., query=SPARQL-QUERY:
queryStr=PREFIX wikibase: <http://wikiba.se/ontology-beta#> PREFIX wd:
<http://www.wikidata.org/entity/> SELE
CT ?s ?p ?q ?qo WHERE { { ?s ?p ?c . ?c ?ps wd:Q17912672 . ?p
wikibase:propertyValue ?ps . } OPTIONAL { ?c ?q ?qo . ?q a
wikibase:Property . } } LIMIT 10000
java.util.concurrent.ExecutionException:
java.util.concurrent.ExecutionException:
org.openrdf.query.QueryInterruptedException: java.lang.RuntimeException:
java.util.concu
rrent.ExecutionException: java.lang.RuntimeException:
java.util.concurrent.ExecutionException:
com.bigdata.bop.engine.QueryTimeoutException: Query deadline is expired.
Thus, it seems that the timeout was working. However, after some
queries, I got a timeout in the client. After this first timeout every
query is answered with a timeout.
Cheers,
Daniel
|