openlink / virtuoso-opensource

Virtuoso is a high-performance and scalable Multi-Model RDBMS, Data Integration Middleware, Linked Data Deployment, and HTTP Application Server Platform
https://vos.openlinksw.com
Other
868 stars 210 forks source link

Exceeded 1000000000 bytes in transitive temp memory. #397

Open jakubklimek opened 9 years ago

jakubklimek commented 9 years ago

I have this query (see the exception) that worked before and now gives this error. I would like to increase the mentioned attributes but I am not sure where to find them in virtuoso.ini. Until then, I am not sure if this is a bug or not.

Exception:virtuoso.jdbc4.VirtuosoException: TN...: Exceeded 1000000000 bytes in transitive temp memory. use t_distinct, t_max or more T_MAX_memory options to limit the search or increase the pool
at eu.unifiedviews.plugins.transformer.sparql.SPARQL.execute(SPARQL.java:130)
at cz.cuni.mff.xrg.odcs.backend.execution.dpu.DPUExecutor.executeInstance(DPUExecutor.java:232)
at cz.cuni.mff.xrg.odcs.backend.execution.dpu.DPUExecutor.execute(DPUExecutor.java:370)
at cz.cuni.mff.xrg.odcs.backend.execution.dpu.DPUExecutor.run(DPUExecutor.java:452)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.openrdf.query.UpdateExecutionException: : SPARQL execute failed:[PREFIX skos: 

PREFIX aux: 

DELETE {
?observationA aux:narrower ?observationD .
} WHERE {

?observationA aux:narrower ?observationD ;
aux:tested-dimension ?testedDimension .

?observationA ?testedDimension ?conceptA .
?observationD ?testedDimension ?conceptD .

?observationI ?testedDimension ?conceptI .
?conceptA skos:narrower+ ?conceptI .
?conceptI skos:narrower+ ?conceptD .

}] 
Exception:virtuoso.jdbc4.VirtuosoException: TN...: Exceeded 1000000000 bytes in transitive temp memory. use t_distinct, t_max or more T_MAX_memory options to limit the search or increase the pool
at virtuoso.sesame2.driver.VirtuosoRepositoryConnection.executeSPARUL(VirtuosoRepositoryConnection.java:1836)
at virtuoso.sesame2.driver.VirtuosoRepositoryConnection$4.execute(VirtuosoRepositoryConnection.java:518)
at eu.unifiedviews.plugins.transformer.sparql.SPARQL.execute(SPARQL.java:128)
... 4 more
HughWilliams commented 9 years ago

@jakubklimek : The param "tn_max_memory" can be set in the "[Flags]" section of the INI file or with the __dbf_set() function detailed at:

http://docs.openlinksw.com/virtuoso/fn_dbf_set.html

to control the transitive memory size ...

jakubklimek commented 9 years ago

OK, I played a bit with this setting, bumped it to 4G with 8G of total memory and I am still getting either the above mentioned error or this one (in the log):

10:07:16 mmap failed with 12
10:07:21 mmap failed with 12
10:07:21 mmap failed with 12
10:07:21 mmap failed with 12
10:07:21 mmap failed with 12
10:07:22 /usr/local/bin/virtuoso-t() [0x8d89ea]
10:07:22 /usr/local/bin/virtuoso-t() [0x8d8a48]
10:07:22 /usr/local/bin/virtuoso-t() [0x8d6cbf]
10:07:22 /usr/local/bin/virtuoso-t() [0x8d6d70]
10:07:22 /usr/local/bin/virtuoso-t() [0x8d6e83]
10:07:22 /usr/local/bin/virtuoso-t() [0x8d895d]
10:07:22 /usr/local/bin/virtuoso-t() [0x835c18]
10:07:22 /usr/local/bin/virtuoso-t() [0x620f8c]
10:07:22 /usr/local/bin/virtuoso-t() [0x62157a]
10:07:22 /usr/local/bin/virtuoso-t() [0x5c87d2]
10:07:22 /usr/local/bin/virtuoso-t() [0x5c8b8d]
10:07:22 /usr/local/bin/virtuoso-t(table_source_input+0x1a2) [0x5d34e2]
10:07:22 /usr/local/bin/virtuoso-t() [0x5c87d2]
10:07:22 /usr/local/bin/virtuoso-t() [0x5c8b8d]
10:07:22 /usr/local/bin/virtuoso-t(table_source_input+0x1a2) [0x5d34e2]
10:07:22 /usr/local/bin/virtuoso-t() [0x5c87d2]
10:07:22 /usr/local/bin/virtuoso-t() [0x5c8b8d]
10:07:22 /usr/local/bin/virtuoso-t(table_source_input+0xc1b) [0x5d3f5b]
10:07:22 /usr/local/bin/virtuoso-t() [0x5c87d2]
10:07:22 /usr/local/bin/virtuoso-t() [0x5c8b8d]
10:07:22 /usr/local/bin/virtuoso-t(table_source_input+0xc1b) [0x5d3f5b]
10:07:22 /usr/local/bin/virtuoso-t() [0x5c87d2]
10:07:22 /usr/local/bin/virtuoso-t(fun_ref_node_input+0xd5) [0x5cdc25]
10:07:22 /usr/local/bin/virtuoso-t() [0x5c87d2]
10:07:22 /usr/local/bin/virtuoso-t() [0x5c8a6e]
10:07:22 /usr/local/bin/virtuoso-t() [0x5fff10]
10:07:22 /usr/local/bin/virtuoso-t() [0x5c87d2]
10:07:22 /usr/local/bin/virtuoso-t() [0x59c413]
10:07:22 /usr/local/bin/virtuoso-t() [0x59c4f8]
10:07:22 /usr/local/bin/virtuoso-t() [0x5a2881]
10:07:22 /usr/local/bin/virtuoso-t() [0x5c887a]
10:07:22 /usr/local/bin/virtuoso-t() [0x5d2514]
10:07:22 /usr/local/bin/virtuoso-t() [0x5daddc]
10:07:22 /usr/local/bin/virtuoso-t(sf_sql_execute_w+0x8a) [0x5db35a]
10:07:22 /usr/local/bin/virtuoso-t() [0x8dd2d8]
10:07:22 /usr/local/bin/virtuoso-t() [0x8e37f5]
10:07:22 /lib/x86_64-linux-gnu/libpthread.so.0(+0x80a4) [0x7ff0cdb6e0a4]
10:07:22 /lib/x86_64-linux-gnu/libc.so.6(clone+0x6d) [0x7ff0cd39e04d]
10:07:22 GPF: Dkpool.c:1634 could not allocate memory with mmap

I assume this simply means "out of memory"?