All,

It seems that I have managed to get Virtuoso to hang itself at 100% CPU by 
submitting a pretty insane query. This is on 5.0.10-RC4. Now, top says

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND 
20084 root      20   0  666m 421m 8696 S  100 11.1 116:14.01 virtuoso-t

and only 10 of those minutes are real queries. It has been running like this 
for the rest of the time. I found two parameters in the virtuoso.ini, which I 
have now set
MaxQueryCostEstimationTime      = 120 ; in seconds 
MaxQueryExecutionTime           = 10 ; in seconds

But neither seemed to have any effect on this problem. 

This is the query being submitted:

prefix mv: <http://www.computas.com/mediasone#> 
prefix cc: <http://creativecommons.org/ns#> 
prefix mm: <http://musicbrainz.org/mm/mm-2.1#> 
prefix xsd: <http://www.w3.org/2001/XMLSchema#> 
prefix mo: <http://purl.org/ontology/mo#> 
prefix dcmi: <http://purl.org/dc/dcmitype/> 
prefix lingvoj: <http://www.lingvoj.org/ontology#> 
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
prefix foaf: <http://xmlns.com/foaf/0.1/> 
prefix owl: <http://www.w3.org/2002/07/owl#> 
prefix dct: <http://purl.org/dc/terms/> 
prefix imdb: <http://www.csd.abdn.ac.uk/~ggrimnes/dev/imdb/IMDB#> 
prefix geo: <http://www.geonames.org/ontology#> 
prefix wgs: <http://www.w3.org/2003/01/geo/wgs84_pos#> 
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 
prefix nfi: <http://www.wizardis.com.au/2005/12/MAVIS#>
prefix mo: <http://www.computas.com/mediasone-ontologi#>
prefix mv: <http://www.computas.com/mediasone#>
prefix phono: <http://www.phonofile.com/XMLSchema#>
prefix sub: <http://xmlns.computas.com/sublima#>
SELECT ?title ?description ?albumtitle ?archivename ?translatorname ?themename 
?genrename ?locationname ?photographername ?depictsname ?directorname 
?scriptwritername ?productioncompanyname ?musicComposername ?musicPerformername 
?lyricistname ?conductorname
FROM <http://msone.computas.no/graphs/instance/nfi>
WHERE {
    OPTIONAL {
        <http://www.wizardis.com.au/2005/12/MAVIS#TitleWorkkey41402> 
dct:title ?title .                                   
    }
    OPTIONAL {
        <http://www.wizardis.com.au/2005/12/MAVIS#TitleWorkkey41402> 
dct:description ?description .                       
    }
    OPTIONAL {
        <http://www.wizardis.com.au/2005/12/MAVIS#TitleWorkkey41402> 
mm:Album ?albumuri .                                  
        ?albumuri dct:title ?albumtitle .                          
    }
    OPTIONAL {
        <http://www.wizardis.com.au/2005/12/MAVIS#TitleWorkkey41402> 
mv:altTitle ?alttitle .                              
    }
    OPTIONAL {
        <http://www.wizardis.com.au/2005/12/MAVIS#TitleWorkkey41402> 
dct:source ?archiveuri .                             
        ?archiveuri rdfs:label ?archivename .                      
    }
    OPTIONAL {
        <http://www.wizardis.com.au/2005/12/MAVIS#TitleWorkkey41402> 
mv:author ?authoruri .                               
        ?authoruri foaf:name ?authorname .                         
    }
    OPTIONAL {
        <http://www.wizardis.com.au/2005/12/MAVIS#TitleWorkkey41402> 
mv:translator ?translatoruri .                       
        ?translatoruri foaf:name ?translatorname .                 
    }
    OPTIONAL {
        <http://www.wizardis.com.au/2005/12/MAVIS#TitleWorkkey41402> 
mv:releaseYear ?releaseyear .                                
    }
    OPTIONAL {
        <http://www.wizardis.com.au/2005/12/MAVIS#TitleWorkkey41402> 
mv:keyword ?themeuri .                               
        ?themeuri rdfs:label ?themename .                          
    }
    OPTIONAL {
        <http://www.wizardis.com.au/2005/12/MAVIS#TitleWorkkey41402> 
mo:genre ?genreuri .                                 
        ?genreuri rdfs:label ?genrename .                          
    }
    OPTIONAL {
        <http://www.wizardis.com.au/2005/12/MAVIS#TitleWorkkey41402>  
mv:location ?locationuri .                          
        ?locationuri geo:name ?locationname .                       
    }
    OPTIONAL {
        <http://www.wizardis.com.au/2005/12/MAVIS#TitleWorkkey41402> 
mv:photographer ?photographeruri .                   
        ?photographeruri foaf:name ?photographername .             
    }
    OPTIONAL {
        <http://www.wizardis.com.au/2005/12/MAVIS#TitleWorkkey41402> 
foaf:depicts ?depictsuri .                           
        ?depictsuri foaf:name ?depictsname .                       
    }
    OPTIONAL {
        <http://www.wizardis.com.au/2005/12/MAVIS#TitleWorkkey41402> 
mv:ageLimit ?agelimit .                              
    }
    OPTIONAL {
        <http://www.wizardis.com.au/2005/12/MAVIS#TitleWorkkey41402> 
mv:director ?directoruri .                           
        ?directoruri foaf:name ?directorname .                     
    }
    OPTIONAL {
        <http://www.wizardis.com.au/2005/12/MAVIS#TitleWorkkey41402> 
mv:scriptwriter ?scriptwriteruri .                   
        ?scriptwriteruri foaf:name ?scriptwritername .             
    }
    OPTIONAL {
        <http://www.wizardis.com.au/2005/12/MAVIS#TitleWorkkey41402> 
mv:productionCompany ?productioncompanyuri .         
        ?productioncompanyuri foaf:name ?productioncompanyname .  
    }
    OPTIONAL {
        <http://www.wizardis.com.au/2005/12/MAVIS#TitleWorkkey41402> 
mv:musicComposer ?musicComposeruri .                 
        ?musicComposeruri foaf:name ?musicComposername .           
    }
    OPTIONAL {
        <http://www.wizardis.com.au/2005/12/MAVIS#TitleWorkkey41402> 
mv:musicPerformer ?musicPerformeruri .               
        ?musicPerformeruri foaf:name ?musicPerformername .         
    }
    OPTIONAL {
        <http://www.wizardis.com.au/2005/12/MAVIS#TitleWorkkey41402> 
mv:lyricist ?lyricisturi .                           
        ?lyricisturi foaf:name ?lyricistname .                     
    }
    OPTIONAL {
        <http://www.wizardis.com.au/2005/12/MAVIS#TitleWorkkey41402> 
mv:conductor ?conductoruri .                         
        ?conductoruri foaf:name ?conductorname .                   
    }
    OPTIONAL {
        <http://www.wizardis.com.au/2005/12/MAVIS#TitleWorkkey41402> 
sub:extinfo ?dbpediatext .           
    }
}

It is submitted by an HTTP POST operation. 

We have now rewritten the query to be more sane, but arguably, submitting 
something like this effectively DoSes Virtuoso, which is a bad thing.

Kind regards 

Kjetil Kjernsmo
-- 
Senior Knowledge Engineer
Mobile: +47 986 48 234
Email: kjetil.kjern...@computas.com   
Web: http://www.computas.com/

|  SHARE YOUR KNOWLEDGE  |

Computas AS  PO Box 482, N-1327 Lysaker | Phone:+47 6783 1000 | Fax:+47 6783 
1001


Reply via email to