Stardog interrupted exception problem

Hi Community,

I am developing an application that has multiple threads, each of which will create three memory-based database, and perform query, reasoning, and reasoning explanation. However, it runs well for about 2 mins, then the interrupted exception occurred. The below is the log:

com.complexible.stardog.StardogException: java.io.IOException: java.lang.InterruptedException
        at com.complexible.stardog.protocols.client.SPECClientUtil.toStardogException(SPECClientUtil.
        at com.complexible.stardog.protocols.client.SPECClientUtil.toStardogException(SPECClientUtil.
        at com.complexible.stardog.api.impl.SPECSelectQuery.execute(SPECSelectQuery.java:52)
        at com.complexible.stardog.api.impl.SPECSelectQuery.execute(SPECSelectQuery.java:31)
        at app.utils.Stardog.query(Stardog.java:211)
        at app.utils.Stardog.lambda$null$2(Stardog.java:229)
        at java.util.Iterator.forEachRemaining(Iterator.java:116)
        at app.utils.Stardog.lambda$null$3(Stardog.java:226)
        at java.util.ArrayList.forEach(ArrayList.java:1249)
        at app.utils.Stardog.lambda$explain$4(Stardog.java:225)
        at java.lang.Iterable.forEach(Iterable.java:75)
        at app.utils.Stardog.explain(Stardog.java:224)
        at app.core.Window.explain(Window.java:166)
        at app.core.Window.query(Window.java:105)
        at app.core.Window.report(Window.java:77)
        at app.window.LandmarkLogicalWindow.consume(LandmarkLogicalWindow.java:40)
        at app.window.LandmarkLogicalWindow.filter(LandmarkLogicalWindow.java:62)
        at app.window.LandmarkLogicalWindow.consume(LandmarkLogicalWindow.java:27)
        at app.core.RDFStream.constantMode(RDFStream.java:100)
        at app.core.RDFStream.stream(RDFStream.java:65)
        at app.core.Window.process(Window.java:68)
        at app.core.SIGenBench.run(SIGenBench.java:7)
        at app.Launcher$1.run(Launcher.java:33)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:748)
Caused by: com.complexible.common.protocols.client.ClientException: java.io.IOException: java.lang.In
        at com.complexible.stardog.protocols.http.client.HttpClientImpl.select(HttpClientImpl.java:34
        at com.complexible.stardog.protocols.http.client.HttpClientImpl.select(HttpClientImpl.java:99
        at com.complexible.stardog.api.impl.SPECSelectQuery.execute(SPECSelectQuery.java:45)
        ... 23 more
Caused by: java.io.UncheckedIOException: java.io.IOException: java.lang.InterruptedException
        at com.complexible.common.rdf.query.IOBindingSetIterator.computeNext(IOBindingSetIterator.jav
        at com.complexible.common.rdf.query.IOBindingSetIterator.computeNext(IOBindingSetIterator.jav
        at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
        at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
        at com.complexible.stardog.protocols.http.client.HttpClientImpl.select(HttpClientImpl.java:32
        ... 25 more
Caused by: java.io.IOException: java.lang.InterruptedException
        ... 30 more
Caused by: java.lang.InterruptedException
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireInterruptibly(AbstractQueuedS
        at java.util.concurrent.locks.ReentrantLock.lockInterruptibly(ReentrantLock.java:335)
        at java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:400)
        at com.complexible.common.rdf.query.IOBindingSetIterator.computeNext(IOBindingSetIterator.jav
        ... 29 more

I suspect this is because each running thread performs database creation, querying, reasoning, explaining so fast that stardog cannot keep up with? Not really sure, any clues from you ?

Thank you and appreciate your time!
Robert.

Robert,

It could be stemming from the fact that you’re using memory-based databases. We are in the process of deprecating those, as it is strongly favorable to use disk-based databases for all but the most basic of testing. That said, it sounds like you are creating 9 databases and performing all of these things simultaneously on them. While I wouldn’t want to say that Stardog “cannot keep up with” that, there are some occasions where we call Thread.inturrupt(), and with that much going on all at once I suppose it’s more likely you can hit such a situation. Does increasing the available memory for Stardog’s JVM have any effect?

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.