[jira] [Commented] (JENA-2285) Java Heap error when there is an optional in service block

2022-02-20 Thread Andy Seaborne (Jira)


[ 
https://issues.apache.org/jira/browse/JENA-2285?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17495261#comment-17495261
 ] 

Andy Seaborne commented on JENA-2285:
-

{quote}it worked.
{quote}
meaning no heap error?

Have you experimented with a larger heap?

Only if the two forms both execute without a heap error and come up with 
different answers is there an issue (as explained earlier about the optimizer).

You can not read SPARQL queries top-to-bottom. Evaluation does not work like 
that; it works "inside out", evaluating blocks and executing joins on them 
(like a functional programming language or indeed SQL). The optimizer tries to 
find a faster way to the same results but it's not perfect.

In the "as well", more is passed to the far end. Everything inside SERVICE goes 
to {{{}[https://query.wikidata.org/sparql]{}}}.

> Java Heap error when there is an optional in service block
> --
>
> Key: JENA-2285
> URL: https://issues.apache.org/jira/browse/JENA-2285
> Project: Apache Jena
>  Issue Type: Bug
>Affects Versions: Jena 4.4.0
>Reporter: Dmitry Zhelobanov
>Priority: Major
>
> Here is the query:
> {code:java}
> PREFIX owl: 
> PREFIX rdf: 
> PREFIX rdfs: 
> PREFIX wdt: 
> PREFIX p: 
> PREFIX pq: 
> PREFIX ps: 
> PREFIX psv: 
> PREFIX wikibase: 
> SELECT ?wikidata_city_iri ?website
> WHERE {
>   BIND(IRI("http://www.wikidata.org/entity/Q15757";) as ?id)
>   BIND(IRI(?id) AS ?wikidata_city_iri) .  
>   SERVICE  {
> #Querying website   
>     OPTIONAL {
>       ?wikidata_city_iri wdt:P856 ?website.
>     } . 
>   }.
> } {code}
> When the query is executed I get"Java Heap Error" after, as I guess, Java 
> runs out of memory in the pool. The trace of the error is below.
> When OPTIONAL is commented out, then I get "no data" as expected.
> {code:java}
>  09:16:08 INFO  Fuseki          :: [5] POST 
> http://127.0.0.1:3030/WattTour/sparql
> 09:16:08 INFO  Fuseki          :: [5] Query = PREFIX owl: 
>  PREFIX rdf: 
>  PREFIX rdfs: 
>  PREFIX wdt: 
>  PREFIX p: 
>  PREFIX pq: 
>  PREFIX ps: 
>  PREFIX psv: 
>  PREFIX wikibase: 
>  SELECT ?wikidata_city_iri ?website WHERE {   
> BIND(IRI("http://www.wikidata.org/entity/Q15757";) as ?id)   BIND(IRI(?id) AS 
> ?wikidata_city_iri) .    SERVICE  { 
> #Querying website    OPTIONAL {       ?wikidata_city_iri wdt:P856 ?website.   
>   } .    }. }
> 09:18:43 WARN  HttpChannel     :: /$/ping
> javax.servlet.ServletException: Filtered request failed.
>         at 
> org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:384)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202) 
> ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1594)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.apache.jena.fuseki.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:284)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.apache.jena.fuseki.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:247)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:210) 
> ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1594)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:506) 
> ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131) 
> ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578) 
> ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextHa

[jira] [Commented] (JENA-2285) Java Heap error when there is an optional in service block

2022-02-19 Thread Dmitry Zhelobanov (Jira)


[ 
https://issues.apache.org/jira/browse/JENA-2285?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17495051#comment-17495051
 ] 

Dmitry Zhelobanov commented on JENA-2285:
-

I've just tried the snipped and it worked I am not an expert in SPARQL, but 
for me these two queries should produce equal output.

Just one more bit of information:

We found out that this is working as well:
{code:java}
SERVICE  {
. some statements are here
  {   
    SELECT ?wikidata_city_iri ?website
    WHERE 
    {
      OPTIONAL {?wikidata_city_iri wdt:P856 ?website.}
    }
  }           
. some statements are here
} {code}
But the query above don't eat memory only if it is a part of a much bigger 
query. In the example, I provided in the current ticket, the trick is not 
working.

 

 

> Java Heap error when there is an optional in service block
> --
>
> Key: JENA-2285
> URL: https://issues.apache.org/jira/browse/JENA-2285
> Project: Apache Jena
>  Issue Type: Bug
>Affects Versions: Jena 4.4.0
>Reporter: Dmitry Zhelobanov
>Priority: Major
>
> Here is the query:
> {code:java}
> PREFIX owl: 
> PREFIX rdf: 
> PREFIX rdfs: 
> PREFIX wdt: 
> PREFIX p: 
> PREFIX pq: 
> PREFIX ps: 
> PREFIX psv: 
> PREFIX wikibase: 
> SELECT ?wikidata_city_iri ?website
> WHERE {
>   BIND(IRI("http://www.wikidata.org/entity/Q15757";) as ?id)
>   BIND(IRI(?id) AS ?wikidata_city_iri) .  
>   SERVICE  {
> #Querying website   
>     OPTIONAL {
>       ?wikidata_city_iri wdt:P856 ?website.
>     } . 
>   }.
> } {code}
> When the query is executed I get"Java Heap Error" after, as I guess, Java 
> runs out of memory in the pool. The trace of the error is below.
> When OPTIONAL is commented out, then I get "no data" as expected.
> {code:java}
>  09:16:08 INFO  Fuseki          :: [5] POST 
> http://127.0.0.1:3030/WattTour/sparql
> 09:16:08 INFO  Fuseki          :: [5] Query = PREFIX owl: 
>  PREFIX rdf: 
>  PREFIX rdfs: 
>  PREFIX wdt: 
>  PREFIX p: 
>  PREFIX pq: 
>  PREFIX ps: 
>  PREFIX psv: 
>  PREFIX wikibase: 
>  SELECT ?wikidata_city_iri ?website WHERE {   
> BIND(IRI("http://www.wikidata.org/entity/Q15757";) as ?id)   BIND(IRI(?id) AS 
> ?wikidata_city_iri) .    SERVICE  { 
> #Querying website    OPTIONAL {       ?wikidata_city_iri wdt:P856 ?website.   
>   } .    }. }
> 09:18:43 WARN  HttpChannel     :: /$/ping
> javax.servlet.ServletException: Filtered request failed.
>         at 
> org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:384)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202) 
> ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1594)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.apache.jena.fuseki.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:284)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.apache.jena.fuseki.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:247)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:210) 
> ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1594)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:506) 
> ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131) 
> ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578) 
> ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.server.handler.ScopedHandle

[jira] [Commented] (JENA-2285) Java Heap error when there is an optional in service block

2022-02-19 Thread Andy Seaborne (Jira)


[ 
https://issues.apache.org/jira/browse/JENA-2285?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17495045#comment-17495045
 ] 

Andy Seaborne commented on JENA-2285:
-

Have you tried:
{code}
OPTIONAL {
   SERVICE  {
  ?wikidata_city_iri wdt:P856 ?website.
} 
  }
{code}

(Also from Java code., the new "substitution" operations on the QueryExecution 
builder pattern are useful but that's API calls.)

> Java Heap error when there is an optional in service block
> --
>
> Key: JENA-2285
> URL: https://issues.apache.org/jira/browse/JENA-2285
> Project: Apache Jena
>  Issue Type: Bug
>Affects Versions: Jena 4.4.0
>Reporter: Dmitry Zhelobanov
>Priority: Major
>
> Here is the query:
> {code:java}
> PREFIX owl: 
> PREFIX rdf: 
> PREFIX rdfs: 
> PREFIX wdt: 
> PREFIX p: 
> PREFIX pq: 
> PREFIX ps: 
> PREFIX psv: 
> PREFIX wikibase: 
> SELECT ?wikidata_city_iri ?website
> WHERE {
>   BIND(IRI("http://www.wikidata.org/entity/Q15757";) as ?id)
>   BIND(IRI(?id) AS ?wikidata_city_iri) .  
>   SERVICE  {
> #Querying website   
>     OPTIONAL {
>       ?wikidata_city_iri wdt:P856 ?website.
>     } . 
>   }.
> } {code}
> When the query is executed I get"Java Heap Error" after, as I guess, Java 
> runs out of memory in the pool. The trace of the error is below.
> When OPTIONAL is commented out, then I get "no data" as expected.
> {code:java}
>  09:16:08 INFO  Fuseki          :: [5] POST 
> http://127.0.0.1:3030/WattTour/sparql
> 09:16:08 INFO  Fuseki          :: [5] Query = PREFIX owl: 
>  PREFIX rdf: 
>  PREFIX rdfs: 
>  PREFIX wdt: 
>  PREFIX p: 
>  PREFIX pq: 
>  PREFIX ps: 
>  PREFIX psv: 
>  PREFIX wikibase: 
>  SELECT ?wikidata_city_iri ?website WHERE {   
> BIND(IRI("http://www.wikidata.org/entity/Q15757";) as ?id)   BIND(IRI(?id) AS 
> ?wikidata_city_iri) .    SERVICE  { 
> #Querying website    OPTIONAL {       ?wikidata_city_iri wdt:P856 ?website.   
>   } .    }. }
> 09:18:43 WARN  HttpChannel     :: /$/ping
> javax.servlet.ServletException: Filtered request failed.
>         at 
> org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:384)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202) 
> ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1594)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.apache.jena.fuseki.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:284)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.apache.jena.fuseki.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:247)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:210) 
> ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1594)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:506) 
> ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131) 
> ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578) 
> ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1571)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(Context

[jira] [Commented] (JENA-2285) Java Heap error when there is an optional in service block

2022-02-19 Thread Dmitry Zhelobanov (Jira)


[ 
https://issues.apache.org/jira/browse/JENA-2285?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17495041#comment-17495041
 ] 

Dmitry Zhelobanov commented on JENA-2285:
-

Is there a way to force ARQ to send this query to the federated API:
{code:java}
 SELECT * { OPTIONAL {  wdt:P856 
?website.}{code}
?

I.e. we usually want to limit amount of data queried from the remote site, and 
the query to the remote is based on the data we queried from local side.

> Java Heap error when there is an optional in service block
> --
>
> Key: JENA-2285
> URL: https://issues.apache.org/jira/browse/JENA-2285
> Project: Apache Jena
>  Issue Type: Bug
>Affects Versions: Jena 4.4.0
>Reporter: Dmitry Zhelobanov
>Priority: Major
>
> Here is the query:
> {code:java}
> PREFIX owl: 
> PREFIX rdf: 
> PREFIX rdfs: 
> PREFIX wdt: 
> PREFIX p: 
> PREFIX pq: 
> PREFIX ps: 
> PREFIX psv: 
> PREFIX wikibase: 
> SELECT ?wikidata_city_iri ?website
> WHERE {
>   BIND(IRI("http://www.wikidata.org/entity/Q15757";) as ?id)
>   BIND(IRI(?id) AS ?wikidata_city_iri) .  
>   SERVICE  {
> #Querying website   
>     OPTIONAL {
>       ?wikidata_city_iri wdt:P856 ?website.
>     } . 
>   }.
> } {code}
> When the query is executed I get"Java Heap Error" after, as I guess, Java 
> runs out of memory in the pool. The trace of the error is below.
> When OPTIONAL is commented out, then I get "no data" as expected.
> {code:java}
>  09:16:08 INFO  Fuseki          :: [5] POST 
> http://127.0.0.1:3030/WattTour/sparql
> 09:16:08 INFO  Fuseki          :: [5] Query = PREFIX owl: 
>  PREFIX rdf: 
>  PREFIX rdfs: 
>  PREFIX wdt: 
>  PREFIX p: 
>  PREFIX pq: 
>  PREFIX ps: 
>  PREFIX psv: 
>  PREFIX wikibase: 
>  SELECT ?wikidata_city_iri ?website WHERE {   
> BIND(IRI("http://www.wikidata.org/entity/Q15757";) as ?id)   BIND(IRI(?id) AS 
> ?wikidata_city_iri) .    SERVICE  { 
> #Querying website    OPTIONAL {       ?wikidata_city_iri wdt:P856 ?website.   
>   } .    }. }
> 09:18:43 WARN  HttpChannel     :: /$/ping
> javax.servlet.ServletException: Filtered request failed.
>         at 
> org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:384)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202) 
> ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1594)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.apache.jena.fuseki.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:284)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.apache.jena.fuseki.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:247)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:210) 
> ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1594)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:506) 
> ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131) 
> ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578) 
> ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1571)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.e

[jira] [Commented] (JENA-2285) Java Heap error when there is an optional in service block

2022-02-19 Thread Andy Seaborne (Jira)


[ 
https://issues.apache.org/jira/browse/JENA-2285?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17495036#comment-17495036
 ] 

Andy Seaborne commented on JENA-2285:
-

{{VALUES}}, {{BIND}}, any pattern that sets variables used in the SERVICE. 
Makes no difference. The OPTIONAL

Either move the VALUES inside SERVICE or find a way not use the OPTIONAL.  A 
plain triple pattern is handled with constants passing down.

As you have it, ARQ is executing
{code}SELECT * { OPTIONAL { ?wikidata_city_iri wdt:P856 ?website.}{code}

i.e. all {{wdt:P856}}.

You can try increasing the heap size - on Linux set environment variable 
JVM_ARGS.  Java runs out of space, it gets very slow so it might even executed 
faster than 154,663 (which is I presume 2mins 34seconds).

{{qparse --print=opt --file=}} can be used to show what the execution 
is.

{{(sequence)}} is the operator to pass prebound variables. {{(join)}} does not.


> Java Heap error when there is an optional in service block
> --
>
> Key: JENA-2285
> URL: https://issues.apache.org/jira/browse/JENA-2285
> Project: Apache Jena
>  Issue Type: Bug
>Affects Versions: Jena 4.4.0
>Reporter: Dmitry Zhelobanov
>Priority: Major
>
> Here is the query:
> {code:java}
> PREFIX owl: 
> PREFIX rdf: 
> PREFIX rdfs: 
> PREFIX wdt: 
> PREFIX p: 
> PREFIX pq: 
> PREFIX ps: 
> PREFIX psv: 
> PREFIX wikibase: 
> SELECT ?wikidata_city_iri ?website
> WHERE {
>   BIND(IRI("http://www.wikidata.org/entity/Q15757";) as ?id)
>   BIND(IRI(?id) AS ?wikidata_city_iri) .  
>   SERVICE  {
> #Querying website   
>     OPTIONAL {
>       ?wikidata_city_iri wdt:P856 ?website.
>     } . 
>   }.
> } {code}
> When the query is executed I get"Java Heap Error" after, as I guess, Java 
> runs out of memory in the pool. The trace of the error is below.
> When OPTIONAL is commented out, then I get "no data" as expected.
> {code:java}
>  09:16:08 INFO  Fuseki          :: [5] POST 
> http://127.0.0.1:3030/WattTour/sparql
> 09:16:08 INFO  Fuseki          :: [5] Query = PREFIX owl: 
>  PREFIX rdf: 
>  PREFIX rdfs: 
>  PREFIX wdt: 
>  PREFIX p: 
>  PREFIX pq: 
>  PREFIX ps: 
>  PREFIX psv: 
>  PREFIX wikibase: 
>  SELECT ?wikidata_city_iri ?website WHERE {   
> BIND(IRI("http://www.wikidata.org/entity/Q15757";) as ?id)   BIND(IRI(?id) AS 
> ?wikidata_city_iri) .    SERVICE  { 
> #Querying website    OPTIONAL {       ?wikidata_city_iri wdt:P856 ?website.   
>   } .    }. }
> 09:18:43 WARN  HttpChannel     :: /$/ping
> javax.servlet.ServletException: Filtered request failed.
>         at 
> org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:384)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202) 
> ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1594)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.apache.jena.fuseki.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:284)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.apache.jena.fuseki.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:247)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:210) 
> ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1594)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:506) 
> ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131) 
> ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578) 
> ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
>  ~[fuseki-server.

[jira] [Commented] (JENA-2285) Java Heap error when there is an optional in service block

2022-02-19 Thread Dmitry Zhelobanov (Jira)


[ 
https://issues.apache.org/jira/browse/JENA-2285?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17495013#comment-17495013
 ] 

Dmitry Zhelobanov commented on JENA-2285:
-

[~andy] , BTW, how can we see the requests made to external services by a 
federated query? I want to see exactly what request Jena makes when it 
encounters SERVICE block. I tried to search it up on the web but no luck

> Java Heap error when there is an optional in service block
> --
>
> Key: JENA-2285
> URL: https://issues.apache.org/jira/browse/JENA-2285
> Project: Apache Jena
>  Issue Type: Bug
>Affects Versions: Jena 4.4.0
>Reporter: Dmitry Zhelobanov
>Priority: Major
>
> Here is the query:
> {code:java}
> PREFIX owl: 
> PREFIX rdf: 
> PREFIX rdfs: 
> PREFIX wdt: 
> PREFIX p: 
> PREFIX pq: 
> PREFIX ps: 
> PREFIX psv: 
> PREFIX wikibase: 
> SELECT ?wikidata_city_iri ?website
> WHERE {
>   BIND(IRI("http://www.wikidata.org/entity/Q15757";) as ?id)
>   BIND(IRI(?id) AS ?wikidata_city_iri) .  
>   SERVICE  {
> #Querying website   
>     OPTIONAL {
>       ?wikidata_city_iri wdt:P856 ?website.
>     } . 
>   }.
> } {code}
> When the query is executed I get"Java Heap Error" after, as I guess, Java 
> runs out of memory in the pool. The trace of the error is below.
> When OPTIONAL is commented out, then I get "no data" as expected.
> {code:java}
>  09:16:08 INFO  Fuseki          :: [5] POST 
> http://127.0.0.1:3030/WattTour/sparql
> 09:16:08 INFO  Fuseki          :: [5] Query = PREFIX owl: 
>  PREFIX rdf: 
>  PREFIX rdfs: 
>  PREFIX wdt: 
>  PREFIX p: 
>  PREFIX pq: 
>  PREFIX ps: 
>  PREFIX psv: 
>  PREFIX wikibase: 
>  SELECT ?wikidata_city_iri ?website WHERE {   
> BIND(IRI("http://www.wikidata.org/entity/Q15757";) as ?id)   BIND(IRI(?id) AS 
> ?wikidata_city_iri) .    SERVICE  { 
> #Querying website    OPTIONAL {       ?wikidata_city_iri wdt:P856 ?website.   
>   } .    }. }
> 09:18:43 WARN  HttpChannel     :: /$/ping
> javax.servlet.ServletException: Filtered request failed.
>         at 
> org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:384)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202) 
> ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1594)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.apache.jena.fuseki.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:284)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.apache.jena.fuseki.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:247)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:210) 
> ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1594)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:506) 
> ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131) 
> ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578) 
> ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1571)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1378)
>  ~[fuseki-server.jar:4.

[jira] [Commented] (JENA-2285) Java Heap error when there is an optional in service block

2022-02-19 Thread Dmitry Zhelobanov (Jira)


[ 
https://issues.apache.org/jira/browse/JENA-2285?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17494996#comment-17494996
 ] 

Dmitry Zhelobanov commented on JENA-2285:
-

Hi [~andy] ,

The query is a minimized variant of the original query, where we are asking a 
local graph for some entries and then querying Wikidata for additional data by 
extracting Wikidata IRI from a data property (stored as a string). Hence it has 
the BIND statement.

Here is a modified variant of the query which uses VALUES instead of  BIND:
{code:java}
PREFIX wdt: 
SELECT ?wikidata_city_iri ?website
WHERE {
  VALUES(?wikidata_city_iri) { () }.  
  SERVICE  {
#Querying website   
    OPTIONAL {
      ?wikidata_city_iri wdt:P856 ?website.
    } .
  }.
}  {code}
This query causes the same "Java heap space" error.

> Java Heap error when there is an optional in service block
> --
>
> Key: JENA-2285
> URL: https://issues.apache.org/jira/browse/JENA-2285
> Project: Apache Jena
>  Issue Type: Bug
>Affects Versions: Jena 4.4.0
>Reporter: Dmitry Zhelobanov
>Priority: Major
>
> Here is the query:
> {code:java}
> PREFIX owl: 
> PREFIX rdf: 
> PREFIX rdfs: 
> PREFIX wdt: 
> PREFIX p: 
> PREFIX pq: 
> PREFIX ps: 
> PREFIX psv: 
> PREFIX wikibase: 
> SELECT ?wikidata_city_iri ?website
> WHERE {
>   BIND(IRI("http://www.wikidata.org/entity/Q15757";) as ?id)
>   BIND(IRI(?id) AS ?wikidata_city_iri) .  
>   SERVICE  {
> #Querying website   
>     OPTIONAL {
>       ?wikidata_city_iri wdt:P856 ?website.
>     } . 
>   }.
> } {code}
> When the query is executed I get"Java Heap Error" after, as I guess, Java 
> runs out of memory in the pool. The trace of the error is below.
> When OPTIONAL is commented out, then I get "no data" as expected.
> {code:java}
>  09:16:08 INFO  Fuseki          :: [5] POST 
> http://127.0.0.1:3030/WattTour/sparql
> 09:16:08 INFO  Fuseki          :: [5] Query = PREFIX owl: 
>  PREFIX rdf: 
>  PREFIX rdfs: 
>  PREFIX wdt: 
>  PREFIX p: 
>  PREFIX pq: 
>  PREFIX ps: 
>  PREFIX psv: 
>  PREFIX wikibase: 
>  SELECT ?wikidata_city_iri ?website WHERE {   
> BIND(IRI("http://www.wikidata.org/entity/Q15757";) as ?id)   BIND(IRI(?id) AS 
> ?wikidata_city_iri) .    SERVICE  { 
> #Querying website    OPTIONAL {       ?wikidata_city_iri wdt:P856 ?website.   
>   } .    }. }
> 09:18:43 WARN  HttpChannel     :: /$/ping
> javax.servlet.ServletException: Filtered request failed.
>         at 
> org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:384)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202) 
> ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1594)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.apache.jena.fuseki.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:284)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.apache.jena.fuseki.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:247)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:210) 
> ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1594)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:506) 
> ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131) 
> ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578) 
> ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
>  ~[fuseki-server.jar:4.

[jira] [Commented] (JENA-2285) Java Heap error when there is an optional in service block

2022-02-18 Thread Andy Seaborne (Jira)


[ 
https://issues.apache.org/jira/browse/JENA-2285?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17494514#comment-17494514
 ] 

Andy Seaborne commented on JENA-2285:
-

Hi [~dz2002], thank you for a minimal example.

Try putting the BIND statements inside the SERVICE call. They are not being 
passed to the WikiData SPARQL endpoint. 

Optimization around SERVICE is very cautious (i.e. very little is done) because 
ARQ does know what the other end is capable of. That does mean that  the query 
writer has be involved.




> Java Heap error when there is an optional in service block
> --
>
> Key: JENA-2285
> URL: https://issues.apache.org/jira/browse/JENA-2285
> Project: Apache Jena
>  Issue Type: Bug
>Affects Versions: Jena 4.4.0
>Reporter: Dmitry Zhelobanov
>Priority: Major
>
> Here is the query:
> {code:java}
> PREFIX owl: 
> PREFIX rdf: 
> PREFIX rdfs: 
> PREFIX wdt: 
> PREFIX p: 
> PREFIX pq: 
> PREFIX ps: 
> PREFIX psv: 
> PREFIX wikibase: 
> SELECT ?wikidata_city_iri ?website
> WHERE {
>   BIND(IRI("http://www.wikidata.org/entity/Q15757";) as ?id)
>   BIND(IRI(?id) AS ?wikidata_city_iri) .  
>   SERVICE  {
> #Querying website   
>     OPTIONAL {
>       ?wikidata_city_iri wdt:P856 ?website.
>     } . 
>   }.
> } {code}
> When the query is executed I get"Java Heap Error" after, as I guess, Java 
> runs out of memory in the pool. The trace of the error is below.
> When OPTIONAL is commented out, then I get "no data" as expected.
> {code:java}
>  09:16:08 INFO  Fuseki          :: [5] POST 
> http://127.0.0.1:3030/WattTour/sparql
> 09:16:08 INFO  Fuseki          :: [5] Query = PREFIX owl: 
>  PREFIX rdf: 
>  PREFIX rdfs: 
>  PREFIX wdt: 
>  PREFIX p: 
>  PREFIX pq: 
>  PREFIX ps: 
>  PREFIX psv: 
>  PREFIX wikibase: 
>  SELECT ?wikidata_city_iri ?website WHERE {   
> BIND(IRI("http://www.wikidata.org/entity/Q15757";) as ?id)   BIND(IRI(?id) AS 
> ?wikidata_city_iri) .    SERVICE  { 
> #Querying website    OPTIONAL {       ?wikidata_city_iri wdt:P856 ?website.   
>   } .    }. }
> 09:18:43 WARN  HttpChannel     :: /$/ping
> javax.servlet.ServletException: Filtered request failed.
>         at 
> org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:384)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202) 
> ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1594)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.apache.jena.fuseki.servlets.CrossOriginFilter.handle(CrossOriginFilter.java:284)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.apache.jena.fuseki.servlets.CrossOriginFilter.doFilter(CrossOriginFilter.java:247)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:210) 
> ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1594)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:506) 
> ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131) 
> ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578) 
> ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1571)
>  ~[fuseki-server.jar:4.4.0]
>         at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
>  ~[fuseki-server.jar:4.4.0]
>