<?xml version="1.0" encoding="UTF-8" ?>




<!--  RSS generated by JIRA 108 at Sun May 19 19:53:30 CEST 2013 -->
<rss version="0.92">





<channel>
    <title>openRDF.org Issue Tracker</title>
    <link>http://www.openrdf.org/issues</link>
    <description>This file is an XML representation of some issues</description>
    <language>en</language>

    
<item>

    







<title>[SES-909] Timeouts and federated queries</title>
<link>http://www.openrdf.org/issues/browse/SES-909</link>

    
        <description>Issue reported on mailing list by Jan Stette&lt;br/&gt;
&lt;br/&gt;
Basically, it looks to me like query timeouts (hence presumably query cancellations) are not taken into account in federated queries?  If I write a (admittedly unreasonable) test query like this:&lt;br/&gt;
&lt;br/&gt;
SELECT * WHERE {&lt;br/&gt;
&amp;nbsp;&amp;nbsp;SERVICE &amp;lt;...some URL...&amp;gt; { &lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;?s ?p ?o .&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FILTER(!isBlank(?s))&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FILTER(!isBlank(?o))&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;br/&gt;
&amp;nbsp;&amp;nbsp;SERVICE &amp;lt;...some URL...&amp;gt;{ &lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;?s ?p ?o .&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FILTER(!isBlank(?s))&lt;br/&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FILTER(!isBlank(?o))&lt;br/&gt;
&amp;nbsp;&amp;nbsp;}&lt;br/&gt;
}&lt;br/&gt;
&lt;br/&gt;
...then this will cause the client process to hang, even when a query timeout is set.&lt;br/&gt;
&lt;br/&gt;
This is a nonsensical query of course, but I think it&apos;s all too easy to accidentally produce a query that &amp;quot;accidentally&amp;quot; produces a lot of triples and a lot of calls to nested query patterns...  And that fact that rogue queries can run and consume resources forever is of course a big problem in a live production system.</description>
    
    
        <environment></environment>
    
        <key id="13040">SES-909</key>
        <summary>Timeouts and federated queries</summary>
        <type id="4">Improvement</type>
    
        <priority id="3">Major</priority>
    
        <status id="1">Open</status>
        
        <resolution>Unresolved</resolution>
        
    
        
        <assignee username="andreas_s">Andreas Schwarte</assignee>
        
    

    
        
        <reporter username="andreas_s">Andreas Schwarte</reporter>
        
    

        
        <created>Tue, 17 Jan 2012 08:43:22 +0100 (CET)</created>
    <updated>Thu, 12 Jul 2012 07:44:44 +0200 (CEST)</updated>

    
        
        
            
            
                
                    <version>2.6.2</version>
                
            
        
    

    
        
        
            
            
                
                    <fixVersion>2.7.0</fixVersion>
                
            
        
    

    
        
        
    

    
    
        <due></due>
    
    
        <votes>0</votes>
    
    

    
    
        <comments>
            
            <comment author="jeen" created="Mon, 5 Mar 2012 22:40:08 +0100 (CET)" level="">Max query time is indeed not taken into account when using the SPARQLRepository (which is what the federated query service uses internally). This is because query timeout is a serverside parameter specific to Sesame, and can not easily be translated to the general case of SPARQL endpoints.&lt;br/&gt;
&lt;br/&gt;
We could go for the option to have max query time translate to a connection timeout on the httpclient. </comment>
            
            <comment author="jeen" created="Mon, 5 Mar 2012 22:48:46 +0100 (CET)" level="">I have modified SPARQLQuery in the SPARQLRepository: it now uses the value set using setMaxQueryTime to control the connection timeout of the http connection manager. Andreas, this should mean that if you set a maxquerytime on a query in the SPARQL repository, it times out if it does not receive a response from the server in the amount of time set.</comment>
            
        </comments>
    
    

    




    
    
    

</item>
    
</channel>
</rss>  

