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

Christian Clausen commented on JENA-1376:
-----------------------------------------

Hi [~andy],

Sure. The project is still a secret, but I can describe our data in general 
terms. The data has (long) paths of :FLOW relations. The SPARQL looks like this 
(where :n42 is the starting point and :n117 is the end point):
{code:java}
PREFIX  : <http://flow/>

SELECT ?x
WHERE
{
    :n42 :FLOW* ?x .
    ?x :DECLARATION :n117 .
}{code}
So we try to find nodes, x,  which have :n117 as declaration and are 
FLOW-reachable from :n42.

We have been able to work around the stack overflow by setting a larger stack 
size with -Mss. This is not an ideal solution, but we may get away with it for 
now as the first version of our app is single-user and Jena Fuseki does not 
seem to use a lot of threads in it's processing.

> FUSEKI recursive stack overflow crash on * query in optional where clause
> -------------------------------------------------------------------------
>
>                 Key: JENA-1376
>                 URL: https://issues.apache.org/jira/browse/JENA-1376
>             Project: Apache Jena
>          Issue Type: Bug
>            Reporter: james michael dupont
>            Priority: Minor
>
> changing
> {noformat}
>     ?b_args2 gcc:chain ?b_args3.
> {noformat}
> to  
> {noformat}
>    ?b_args2 gcc:chain* ?b_args3.
> {noformat}
> causes a 500 error see http://paste.debian.net/977429/ for the full stack. 
> at 
> org.apache.jena.sparql.path.eval.PathEngineSPARQL.ALP_1(PathEngineSPARQL.java:133)
> {noformat}
> prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
> PREFIX gcc: 
> <https://h4ck3rm1k3.github.io/gogccintro/gcc/ontology/2017/05/20/gcc_compiler.owl#>
> PREFIX owl: <http://www.w3.org/2002/07/owl#>
> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
> select distinct
>   ?b 
>  ?b_name_string 
> ?b_args ?b_args_type ?b_args_name_string ?b_args2_name_string 
> ?b_args3_name_string
> where {
>   
>   optional {
>     ?b_args2 gcc:chain* ?b_args3.
>   ?b_args3_name gcc:strg ?b_args3_name_string.
>   ?b_args3 gcc:name ?b_args3_name.
>   ?b_args3 rdf:type gcc:parm_decl.
>   }
>   
>   optional {
>     ?b_args gcc:chain ?b_args2.
>   ?b_args2_name gcc:strg ?b_args2_name_string.
>   ?b_args2 gcc:name ?b_args2_name.
>   ?b_args2 rdf:type gcc:parm_decl.
>   }
>   
>   ?b_args_name gcc:strg ?b_args_name_string.
>   ?b_args gcc:name ?b_args_name.
>   ?b_args rdf:type gcc:parm_decl.
>   
>   ?b rdf:type gcc:function_decl.
>   ?b gcc:scpe ?a.
>   ?b gcc:name ?b_name.
>   ?b gcc:args ?b_args.
>   ?b_name gcc:strg ?b_name_string.
>   ?a rdf:type gcc:translation_unit_decl.
>  
>    }
> limit 10
> {noformat}



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

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

Reply via email to