osma commented on PR #3047:
URL: https://github.com/apache/jena/pull/3047#issuecomment-2720497412

   I had the same problem, as mentioned in 
https://github.com/apache/jena/issues/3044#issuecomment-2720484943.
   
   I tested the code from the PR branch and it seems to solve the problem:
   
   ```
   11:00:39 INFO  Server          :: Apache Jena Fuseki 5.4.0-SNAPSHOT
   11:00:39 INFO  Config          :: Fuseki Base = 
/home/oisuomin/proj/test-fuseki5-timeout/run
   11:00:39 INFO  Config          :: Database: /ds
   11:00:39 INFO  Config          :: UI Base = fuseki-server.jar
   11:00:39 INFO  Server          :: Configuration file: fuseki-config.ttl
   11:00:39 INFO  Server          :: Path = /ds
   11:00:39 INFO  Server          ::   Memory: 4.0 GiB
   11:00:39 INFO  Server          ::   Java:   21.0.6
   11:00:39 INFO  Server          ::   OS:     Linux 6.11.0-19-generic amd64
   11:00:39 INFO  Server          ::   PID:    483024
   11:00:39 INFO  Shiro           :: Shiro configuration: 
file:/home/oisuomin/proj/test-fuseki5-timeout/run/shiro.ini
   11:00:39 INFO  Server          :: Start Fuseki (http=3030)
   11:00:43 INFO  Fuseki          :: [3] POST http://localhost:3030/ds/
   11:00:43 INFO  Fuseki          :: [3] Query = PREFIX skos: 
<http://www.w3.org/2004/02/skos/core#> SELECT * WHERE {   GRAPH 
<http://www.yso.fi/onto/yso/> {     ?uri ?p ?o .     OPTIONAL {       ?x 
skos:member ?o .       FILTER NOT EXISTS {         ?x skos:member ?other .      
   FILTER NOT EXISTS {           ?other skos:broader ?uri          }            
                  }                          }      }  VALUES (?uri) {     
(<http://www.yso.fi/onto/yso/p24009>)    }  }
   11:00:44 INFO  Fuseki          :: [3] 503 Service Unavailable (1.021 s)
   ```
   
   One thing I noticed that occasionally, some pretty long tracebacks end up in 
the log when the timeout triggers. However, this happened once or twice with 
Fuseki 4.10.0 as well, so it's not a new thing. It just looks ugly in the log:
   
   ```
   11:01:15 INFO  Fuseki          :: [4] POST http://localhost:3030/ds/
   11:01:15 INFO  Fuseki          :: [4] Query = PREFIX skos: 
<http://www.w3.org/2004/02/skos/core#> SELECT * WHERE {   GRAPH 
<http://www.yso.fi/onto/yso/> {     ?uri ?p ?o .     OPTIONAL {       ?x 
skos:member ?o .       FILTER NOT EXISTS {         ?x skos:member ?other .      
   FILTER NOT EXISTS {           ?other skos:broader ?uri          }            
                  }                          }      }  VALUES (?uri) {     
(<http://www.yso.fi/onto/yso/p24009>)    }  }
   11:01:16 WARN  QueryIterFilterExpr :: General exception in (notexists
      (filter (notexists
                 (quadpattern (quad <http://www.yso.fi/onto/yso/> ?other 
<http://www.w3.org/2004/02/skos/core#broader> 
<http://www.yso.fi/onto/yso/p26543>)))
        (quadpattern (quad <http://www.yso.fi/onto/yso/> ?x 
<http://www.w3.org/2004/02/skos/core#member> ?other))))
   org.apache.jena.query.QueryCancelledException: null
        at 
org.apache.jena.tdb2.solver.StageMatchTuple.lambda$access$1(StageMatchTuple.java:78)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at org.apache.jena.atlas.iterator.Iter$IterMap.next(Iter.java:439) 
~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at org.apache.jena.atlas.iterator.Iter$IterMap.next(Iter.java:439) 
~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at org.apache.jena.atlas.iterator.Iter.next(Iter.java:1161) 
~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.jena.atlas.iterator.Iter$IterFiltered.hasNext(Iter.java:282) 
~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at org.apache.jena.atlas.iterator.Iter.hasNext(Iter.java:1156) 
~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.jena.atlas.iterator.IteratorFlatMap.hasNext(IteratorFlatMap.java:59) 
~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.jena.sparql.engine.iterator.IterAbortable.hasNext(IterAbortable.java:59)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at org.apache.jena.atlas.iterator.Iter$IterMap.hasNext(Iter.java:434) 
~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.jena.sparql.engine.iterator.QueryIterPlainWrapper.hasNextBinding(QueryIterPlainWrapper.java:59)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:122)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.jena.sparql.engine.iterator.QueryIterProcessBinding.hasNextBinding(QueryIterProcessBinding.java:76)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:122)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBinding(QueryIteratorWrapper.java:37)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:122)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at org.apache.jena.sparql.expr.E_NotExists.eval(E_NotExists.java:69) 
~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.jena.sparql.expr.ExprFunctionOp.eval(ExprFunctionOp.java:72) 
~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at org.apache.jena.sparql.expr.ExprNode.isSatisfied(ExprNode.java:42) 
~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.jena.sparql.engine.iterator.QueryIterFilterExpr.accept(QueryIterFilterExpr.java:48)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.jena.sparql.engine.iterator.QueryIterProcessBinding.hasNextBinding(QueryIterProcessBinding.java:80)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:122)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.jena.sparql.engine.iterator.QueryIterDefaulting.hasNextBinding(QueryIterDefaulting.java:54)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:122)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.hasNextBinding(QueryIterRepeatApply.java:69)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:122)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.jena.sparql.engine.iterator.QueryIterPeek.hasNextBinding(QueryIterPeek.java:57)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:122)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at java.base/java.util.Iterator.forEachRemaining(Iterator.java:132) 
~[?:?]
        at 
org.apache.jena.sparql.engine.join.AbstractIterHashJoin.buildHashTable(AbstractIterHashJoin.java:100)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.jena.sparql.engine.join.AbstractIterHashJoin.doInit(AbstractIterHashJoin.java:92)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.jena.sparql.engine.join.AbstractIterHashJoin.moveToNextBindingOrNull(AbstractIterHashJoin.java:138)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.jena.sparql.engine.join.AbstractIterHashJoin.hasNextBinding(AbstractIterHashJoin.java:112)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:122)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBinding(QueryIteratorWrapper.java:37)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:122)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBinding(QueryIteratorWrapper.java:37)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:122)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.jena.sparql.exec.RowSetStream.hasNext(RowSetStream.java:48) 
~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.jena.fuseki.servlets.SPARQLQueryProcessor.executeQuery(SPARQLQueryProcessor.java:391)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.jena.fuseki.servlets.SPARQLQueryProcessor.execute(SPARQLQueryProcessor.java:284)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.jena.fuseki.servlets.SPARQLQueryProcessor.executeWithParameter(SPARQLQueryProcessor.java:224)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.jena.fuseki.servlets.SPARQLQueryProcessor.execute(SPARQLQueryProcessor.java:209)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.jena.fuseki.servlets.ActionService.executeLifecycle(ActionService.java:58)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.jena.fuseki.servlets.SPARQLQueryProcessor.execPost(SPARQLQueryProcessor.java:84)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.jena.fuseki.servlets.ActionProcessor.process(ActionProcessor.java:34)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.jena.fuseki.servlets.ActionBase.process(ActionBase.java:54) 
~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.jena.fuseki.servlets.ActionExecLib.execActionSub(ActionExecLib.java:124)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.jena.fuseki.servlets.ActionExecLib.execAction(ActionExecLib.java:98) 
~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.jena.fuseki.server.Dispatcher.dispatchAction(Dispatcher.java:240) 
~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.jena.fuseki.server.Dispatcher.process(Dispatcher.java:230) 
~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.jena.fuseki.server.Dispatcher.dispatch(Dispatcher.java:148) 
~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.jena.fuseki.servlets.FusekiFilter.doFilter(FusekiFilter.java:49) 
~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.eclipse.jetty.ee10.servlet.FilterHolder.doFilter(FilterHolder.java:205) 
~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.eclipse.jetty.ee10.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1591)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:65)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:109) 
~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:138)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:156)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:70)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:109) 
~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:138)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:156)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:70)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:463)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.shiro.web.servlet.AbstractShiroFilter.lambda$doFilterInternal$0(AbstractShiroFilter.java:378)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:91)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:84) 
~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:389)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:376)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:156)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.eclipse.jetty.ee10.servlet.FilterHolder.doFilter(FilterHolder.java:205) 
~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.eclipse.jetty.ee10.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1591)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.jena.fuseki.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:351)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.apache.jena.fuseki.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:304)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.eclipse.jetty.ee10.servlet.FilterHolder.doFilter(FilterHolder.java:205) 
~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.eclipse.jetty.ee10.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1591)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.eclipse.jetty.ee10.servlet.ServletHandler$MappedServlet.handle(ServletHandler.java:1552)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.eclipse.jetty.ee10.servlet.ServletChannel.dispatch(ServletChannel.java:819) 
~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.eclipse.jetty.ee10.servlet.ServletChannel.handle(ServletChannel.java:436) 
~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.eclipse.jetty.ee10.servlet.ServletHandler.handle(ServletHandler.java:469) 
~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.eclipse.jetty.ee10.servlet.SessionHandler.handle(SessionHandler.java:717) 
~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.eclipse.jetty.server.handler.ContextHandler.handle(ContextHandler.java:1060)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at org.eclipse.jetty.server.Server.handle(Server.java:182) 
~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.eclipse.jetty.server.internal.HttpChannelState$HandlerInvoker.run(HttpChannelState.java:662)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.eclipse.jetty.server.internal.HttpConnection.onFillable(HttpConnection.java:418)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:322)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:99) 
~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:480)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:443)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:293)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:201)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:311)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:979)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1209)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at 
org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1164)
 ~[fuseki-server.jar:5.4.0-SNAPSHOT]
        at java.base/java.lang.Thread.run(Thread.java:1583) [?:?]
   11:01:16 INFO  Fuseki          :: [4] 503 Service Unavailable (1.015 s)
   ```
   
   Great work @Aklakan , thanks for providing a fix!


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to