Re: [Virtuoso-users] Crash of virtuoso 7 stable - caused by OOM killer

2014-02-17 Thread Jerven Bolleman

Hi Hugh,

Sorry for wasting your time. I finally got the cause down.

When I saw this for the first time in the gdb

Program terminated with signal SIGKILL, Killed.
The program no longer exists.

And this in dmesg

Out of memory: Kill process 14738 (virtuoso-t) score 763 or sacrifice child
Killed process 14738, UID 21059, (virtuoso-t) total-vm:16179784kB, 
anon-rss:12910420kB, file-rss:152kB





The total-vm size in that dmesg line is surprising its is nearly 16gb of 
memory use.


Yet the NumberOfBuffers is 904897 (about 8 gb assuming 9KB pages) and 
MaxDirtyBuffers 50. The odd size of the NumberOfBuffers is due to 
auto sizing this setting in the conf from the managing process as 
virtuoso is basically running in a embedded/lite mode.


The server is in O_DIRECT mode (set to 1)

What can I set so that this does not happen? i.e. why is the memory 
consumption so large during this SPARQL update? Is it because my max 
result size?


Regards,
Jerven

On 13/02/14 20:57, Jerven Bolleman wrote:

Hi Hugh,

Yes, that should be the file (all those are the same)
I switched back to the stable branch because the develop/7 branch would not 
build cleanly when I tried.
This happened before and you guys normally fix it and I was not in a hurry.
I finally have the debug build working and ulimit set etc… so I think I will 
send the backtrace tomorrow.

Regards,
Jerven

On 13 Feb 2014, at 17:52, Hugh Williams hwilli...@openlinksw.com wrote:


Hi Jerven,

 From our point of view there is no real value in building from the stable/7 
branch from July last year, as it is about to be superseded in the new VOS 7 
release by develop/7 when finalised, which is what we would be more interested 
in knowing of any problem being encountered using ?

In your email below you mention loading the go.rdf.gz uniprot dataset, do you 
have URL to what you loaded or is it one of:

resources
url type=ftp location=ch preference=100
ftp://ftp.expasy.org/databases/uniprot/current_release/rdf/go.rdf.gz
/url
url type=ftp location=uk preference=100
ftp://ftp.ebi.ac.uk/pub/databases/uniprot/current_release/rdf/go.rdf.gz
/url
url type=ftp location=us preference=100
ftp://ftp.uniprot.org/pub/databases/uniprot/current_release/rdf/go.rdf.gz
/url
/resources

and I can load here to try  recreate your problem with develop/7 ?

Best Regards
Hugh Williams
Professional Services
OpenLink Software, Inc.  //  http://www.openlinksw.com/
Weblog   -- http://www.openlinksw.com/blogs/
LinkedIn -- http://www.linkedin.com/company/openlink-software/
Twitter  -- http://twitter.com/OpenLink
Google+  -- http://plus.google.com/100570109519069333827/
Facebook -- http://www.facebook.com/OpenLinkSoftware
Universal Data Access, Integration, and Management Technology Providers

On 13 Feb 2014, at 10:14, Jerven Bolleman jerven.bolle...@isb-sib.ch wrote:


That was premature, I just reran the experiment and now it crashed again :(

Will try to see where that core dump went.

Regards,
Jerven

On 13/02/14 09:25, Jerven Bolleman wrote:

Hi All,

I have managed to build a debug build.
The funny thing is it now succeeds!
I do get this message once the next time I call a checkpoint.

18:02:22 suspect to miss a flush of L=100 in cpt, line 1008
18:02:23 Buffer 0x7fc9f79516f8 occupied in cpt

Regards,
Jerven
On 11/02/14 16:06, Jerven Bolleman wrote:

Hi Hugh,

I don't understand how to build the debug release.
I can't find the lines to patch e.g.

cd /scratch/virtuoso-opensource
git pull;git status;
grep CONFIGURE_ARGS Makefile


remote: Counting objects: 298, done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 298 (delta 174), reused 0 (delta 0)
Receiving objects: 100% (298/298), 1.44 MiB | 974 KiB/s, done.
Resolving deltas: 100% (174/174), done.
 From git://github.com/openlink/virtuoso-opensource
   74ed20c..0b71fb6  develop/7  - origin/develop/7
Already up-to-date.
# On branch stable/7
nothing to commit (working directory clean)

As you can notice I am now trying out the stable branch.
Because when I tried building the develop/7 branch yesterday I had a
failure.

I do have a better idea of what is going on to trigger the bug.
First of all I have rewritten the update statement to look like this.

PREFIX rdfs:http://www.w3.org/2000/01/rdf-schema#
INSERT { GRAPH http://beta.sparql.uniprot.org/taxonomy {
  ?sub rdfs:subClassOf ?super}}
WHERE   {
SELECT DISTINCT ?super ?sub
WHERE {GRAPH http://beta.sparql.uniprot.org/taxonomy {
  ?sub rdfs:subClassOf [] .
  ?sub rdfs:subClassOf/rdfs:subClassOf+ ?super .
  []   rdfs:subClassOf ?super . }
}
}

Which runs in about 25 minutes for the taxonomy data I have been using.
Once the TransactionAfterImageLimit is raised (in my case to about 1GB
or 10 bytes)

Then I try loading the go.rdf.gz data into a named which works fine and
run the nearly identical query.

PREFIX rdfs:http://www.w3.org/2000/01/rdf-schema#
INSERT { GRAPH 

Re: [Virtuoso-users] Crash of virtuoso 7 stable - caused by OOM killer

2014-02-17 Thread Jerven Bolleman
Hi Hugh,

It is run via sesame. I will try running it directly as a prepared 
statement via JDBC and see if that makes a difference.

Regards,
Jerven

On 17/02/14 14:02, Hugh Williams wrote:
 Hi Jerven,

 Not a waste of time as you still have an apparent issue ...

 Going back to the original issue I am downloading the go.rdf.gz dataset
 to load and run the test SPARQL insert query you provided against the
 Virtuoso instance. Can you confirm if this query is executed via Sesame
 or can it be run via isql to see the same problem ?

 Best Regards
 Hugh Williams
 Professional Services
 OpenLink Software, Inc.  // http://www.openlinksw.com/
 Weblog   -- http://www.openlinksw.com/blogs/
 LinkedIn -- http://www.linkedin.com/company/openlink-software/
 Twitter  -- http://twitter.com/OpenLink
 Google+  -- http://plus.google.com/100570109519069333827/
 Facebook -- http://www.facebook.com/OpenLinkSoftware
 Universal Data Access, Integration, and Management Technology Providers

 On 17 Feb 2014, at 08:53, Jerven Bolleman jerven.bolle...@isb-sib.ch
 mailto:jerven.bolle...@isb-sib.ch wrote:

 Hi Hugh,

 Sorry for wasting your time. I finally got the cause down.

 When I saw this for the first time in the gdb

 Program terminated with signal SIGKILL, Killed.
 The program no longer exists.

 And this in dmesg

 Out of memory: Kill process 14738 (virtuoso-t) score 763 or sacrifice
 child
 Killed process 14738, UID 21059, (virtuoso-t) total-vm:16179784kB,
 anon-rss:12910420kB, file-rss:152kB




 The total-vm size in that dmesg line is surprising its is nearly 16gb
 of memory use.

 Yet the NumberOfBuffers is 904897 (about 8 gb assuming 9KB pages) and
 MaxDirtyBuffers 50. The odd size of the NumberOfBuffers is due to
 auto sizing this setting in the conf from the managing process as
 virtuoso is basically running in a embedded/lite mode.

 The server is in O_DIRECT mode (set to 1)

 What can I set so that this does not happen? i.e. why is the memory
 consumption so large during this SPARQL update? Is it because my max
 result size?

 Regards,
 Jerven

 On 13/02/14 20:57, Jerven Bolleman wrote:
 Hi Hugh,

 Yes, that should be the file (all those are the same)
 I switched back to the stable branch because the develop/7 branch
 would not build cleanly when I tried.
 This happened before and you guys normally fix it and I was not in a
 hurry.
 I finally have the debug build working and ulimit set etc… so I think
 I will send the backtrace tomorrow.

 Regards,
 Jerven

 On 13 Feb 2014, at 17:52, Hugh Williams hwilli...@openlinksw.com
 mailto:hwilli...@openlinksw.com wrote:

 Hi Jerven,

 From our point of view there is no real value in building from the
 stable/7 branch from July last year, as it is about to be superseded
 in the new VOS 7 release by develop/7 when finalised, which is what
 we would be more interested in knowing of any problem being
 encountered using ?

 In your email below you mention loading the go.rdf.gz uniprot
 dataset, do you have URL to what you loaded or is it one of:

 resources
 url type=ftp location=ch preference=100
 ftp://ftp.expasy.org/databases/uniprot/current_release/rdf/go.rdf.gz
 /url
 url type=ftp location=uk preference=100
 ftp://ftp.ebi.ac.uk/pub/databases/uniprot/current_release/rdf/go.rdf.gz
 /url
 url type=ftp location=us preference=100
 ftp://ftp.uniprot.org/pub/databases/uniprot/current_release/rdf/go.rdf.gz
 /url
 /resources

 and I can load here to try  recreate your problem with develop/7 ?

 Best Regards
 Hugh Williams
 Professional Services
 OpenLink Software, Inc.  //  http://www.openlinksw.com/
 Weblog   -- http://www.openlinksw.com/blogs/
 LinkedIn -- http://www.linkedin.com/company/openlink-software/
 Twitter  -- http://twitter.com/OpenLink
 Google+  -- http://plus.google.com/100570109519069333827/
 Facebook -- http://www.facebook.com/OpenLinkSoftware
 Universal Data Access, Integration, and Management Technology Providers

 On 13 Feb 2014, at 10:14, Jerven Bolleman
 jerven.bolle...@isb-sib.ch wrote:

 That was premature, I just reran the experiment and now it crashed
 again :(

 Will try to see where that core dump went.

 Regards,
 Jerven

 On 13/02/14 09:25, Jerven Bolleman wrote:
 Hi All,

 I have managed to build a debug build.
 The funny thing is it now succeeds!
 I do get this message once the next time I call a checkpoint.

 18:02:22 suspect to miss a flush of L=100 in cpt, line 1008
 18:02:23 Buffer 0x7fc9f79516f8 occupied in cpt

 Regards,
 Jerven
 On 11/02/14 16:06, Jerven Bolleman wrote:
 Hi Hugh,

 I don't understand how to build the debug release.
 I can't find the lines to patch e.g.

 cd /scratch/virtuoso-opensource
 git pull;git status;
 grep CONFIGURE_ARGS Makefile


 remote: Counting objects: 298, done.
 remote: Compressing objects: 100% (298/298), done.
 remote: Total 298 (delta 174), reused 0 (delta 0)
 Receiving objects: 100% (298/298), 1.44 MiB | 974 KiB/s, done.
 Resolving deltas: 100% (174/174), done.
 From 

Re: [Virtuoso-users] Crash of virtuoso 7 stable - caused by OOM killer

2014-02-17 Thread Jerven Bolleman
Hi Hugh,

Running it as a preparedStatement does change the outcome
I see these again
14:12:30 * Monitor: Low query memory limit, try to increase MaxQueryMem
again,

While running I had a look at status();
And it gives a very long list of
  16384: IER 8 

   80: ISR NO OWNER 

   76: ISR NO OWNER 

   72: ISR NO OWNER 

   68: ISR NO OWNER 

   64: ISR NO OWNER 

   60: ISR NO OWNER 

   56: ISR NO OWNER 

   52: ISR NO OWNER 

   48: ISR NO OWNER 

   44: ISR NO OWNER 

   40: ISR NO OWNER 

   36: ISR NO OWNER 

   32: ISR NO OWNER 

   28: ISR NO OWNER 

   24: ISR NO OWNER 

   20: ISR NO OWNER
etc.. etc..

Yet in the end using a prepared statement or not does not make a difference.


Also using isql.

SQL sparql PREFIX rdfs:http://www.w3.org/2000/01/rdf-schema#
INSERT { GRAPH http://beta.sparql.uniprot.org/go/ {
 ?sub rdfs:subClassOf ?super}}
WHERE  { SELECT DISTINCT ?super ?sub
  WHERE {GRAPH http://beta.sparql.uniprot.org/go/ {
 ?sub rdfs:subClassOf [] .
 ?sub rdfs:subClassOf/rdfs:subClassOf+ ?super .
 [] rdfs:subClassOf ?super .
   }
}
}Type the rest of statement, end with a semicolon (;) Type the rest of 
statement, end with a semicolon (;) Type the rest of statement, end 
with a semicolon (;) Type the rest of statement, end with a semicolon 
(;) Type the rest of statement, end with a semicolon (;) Type the rest 
of statement, end with a semicolon (;) Type the rest of statement, end 
with a semicolon (;) Type the rest of statement, end with a semicolon 
(;) Type the rest of statement, end with a semicolon (;) Type the rest 
of statement, end with a semicolon (;) ;

*** Error 08S01: [Virtuoso Driver]CL065: Lost connection to server
in lines 2-12 of Top-Level:
#line 2 (console)
sparql PREFIX rdfs:http://www.w3.org/2000/01/rdf-schema#
INSERT { GRAPH http://beta.sparql.uniprot.org/go/ {
 ?sub rdfs:subClassOf ?super}}
WHERE  { SELECT DISTINCT ?super ?sub
  WHERE {GRAPH http://beta.sparql.uniprot.org/go/ {
 ?sub rdfs:subClassOf [] .
 ?sub rdfs:subClassOf/rdfs:subClassOf+ ?super .
 [] rdfs:subClassOf ?super .
   }
}
}



Regards,
Jerven


On 17/02/14 14:04, Jerven Bolleman wrote:
 Hi Hugh,

 It is run via sesame. I will try running it directly as a prepared
 statement via JDBC and see if that makes a difference.

 Regards,
 Jerven

 On 17/02/14 14:02, Hugh Williams wrote:
 Hi Jerven,

 Not a waste of time as you still have an apparent issue ...

 Going back to the original issue I am downloading the go.rdf.gz dataset
 to load and run the test SPARQL insert query you provided against the
 Virtuoso instance. Can you confirm if this query is executed via Sesame
 or can it be run via isql to see the same problem ?

 Best Regards
 Hugh Williams
 Professional Services
 OpenLink Software, Inc.  // http://www.openlinksw.com/
 Weblog   -- http://www.openlinksw.com/blogs/
 LinkedIn -- http://www.linkedin.com/company/openlink-software/
 Twitter  -- http://twitter.com/OpenLink
 Google+  -- http://plus.google.com/100570109519069333827/
 Facebook -- http://www.facebook.com/OpenLinkSoftware
 Universal Data Access, Integration, and Management Technology Providers

 On 17 Feb 2014, at 08:53, Jerven Bolleman jerven.bolle...@isb-sib.ch
 mailto:jerven.bolle...@isb-sib.ch wrote:

 Hi Hugh,

 Sorry for wasting your time. I finally got the cause down.

 When I saw this for the first time in the gdb

 Program terminated with signal SIGKILL, Killed.
 The program no longer exists.

 And this in dmesg

 Out of memory: Kill process 14738 (virtuoso-t) score 763 or sacrifice
 child
 Killed process 14738, UID 21059, (virtuoso-t) total-vm:16179784kB,
 anon-rss:12910420kB, file-rss:152kB




 The total-vm size in that dmesg line is surprising its is nearly 16gb
 of memory use.

 Yet the NumberOfBuffers is 904897 (about 8 gb assuming 9KB pages) and
 MaxDirtyBuffers 50. The odd size of the NumberOfBuffers is due to
 auto sizing this setting in the conf from the managing process as
 virtuoso is basically running in a embedded/lite mode.

 The server is in O_DIRECT mode (set to 1)

 What can I set so that this does not happen? i.e. why is the memory
 consumption so large during this SPARQL update? Is it because my max
 result size?

 Regards,
 Jerven

 On 13/02/14 20:57, Jerven Bolleman wrote:
 Hi Hugh,

 Yes, that should be the file (all those are the same)
 I switched back to the stable branch because the develop/7 branch
 would not build cleanly when I tried.
 This happened before and you guys normally fix it and I was not in a
 hurry.
 I finally have the debug build working and ulimit set etc… so I think
 I will send the backtrace tomorrow.

 Regards,
 Jerven

 On 13 Feb 2014, at 

Re: [Virtuoso-users] Crash of virtuoso 7 stable - caused by OOM killer

2014-02-17 Thread Jerven Bolleman
I will run virtuoso in valgrind --leak-check-yes and see what comes out.

Regards,
Jerven

On 17/02/14 15:32, Hugh Williams wrote:
 Hi Jerven,

 Ok, if you could provide a compilable Sesame or JDBC program
 demonstrating this issue then we can attempt the recreation with it as I
 have just been executing it from the isql command line tool ?

 Best Regards
 Hugh Williams
 Professional Services
 OpenLink Software, Inc.  // http://www.openlinksw.com/
 Weblog   -- http://www.openlinksw.com/blogs/
 LinkedIn -- http://www.linkedin.com/company/openlink-software/
 Twitter  -- http://twitter.com/OpenLink
 Google+  -- http://plus.google.com/100570109519069333827/
 Facebook -- http://www.facebook.com/OpenLinkSoftware
 Universal Data Access, Integration, and Management Technology Providers

 On 17 Feb 2014, at 13:04, Jerven Bolleman jerven.bolle...@isb-sib.ch
 mailto:jerven.bolle...@isb-sib.ch wrote:

 Hi Hugh,

 It is run via sesame. I will try running it directly as a prepared
 statement via JDBC and see if that makes a difference.

 Regards,
 Jerven

 On 17/02/14 14:02, Hugh Williams wrote:
 Hi Jerven,

 Not a waste of time as you still have an apparent issue ...

 Going back to the original issue I am downloading the go.rdf.gz dataset
 to load and run the test SPARQL insert query you provided against the
 Virtuoso instance. Can you confirm if this query is executed via Sesame
 or can it be run via isql to see the same problem ?

 Best Regards
 Hugh Williams
 Professional Services
 OpenLink Software, Inc.  // http://www.openlinksw.com/
 Weblog   -- http://www.openlinksw.com/blogs/
 LinkedIn -- http://www.linkedin.com/company/openlink-software/
 Twitter  -- http://twitter.com/OpenLink
 Google+  -- http://plus.google.com/100570109519069333827/
 Facebook -- http://www.facebook.com/OpenLinkSoftware
 Universal Data Access, Integration, and Management Technology Providers

 On 17 Feb 2014, at 08:53, Jerven Bolleman jerven.bolle...@isb-sib.ch
 mailto:jerven.bolle...@isb-sib.ch
 mailto:jerven.bolle...@isb-sib.ch wrote:

 Hi Hugh,

 Sorry for wasting your time. I finally got the cause down.

 When I saw this for the first time in the gdb

 Program terminated with signal SIGKILL, Killed.
 The program no longer exists.

 And this in dmesg

 Out of memory: Kill process 14738 (virtuoso-t) score 763 or sacrifice
 child
 Killed process 14738, UID 21059, (virtuoso-t) total-vm:16179784kB,
 anon-rss:12910420kB, file-rss:152kB




 The total-vm size in that dmesg line is surprising its is nearly 16gb
 of memory use.

 Yet the NumberOfBuffers is 904897 (about 8 gb assuming 9KB pages) and
 MaxDirtyBuffers 50. The odd size of the NumberOfBuffers is due to
 auto sizing this setting in the conf from the managing process as
 virtuoso is basically running in a embedded/lite mode.

 The server is in O_DIRECT mode (set to 1)

 What can I set so that this does not happen? i.e. why is the memory
 consumption so large during this SPARQL update? Is it because my max
 result size?

 Regards,
 Jerven

 On 13/02/14 20:57, Jerven Bolleman wrote:
 Hi Hugh,

 Yes, that should be the file (all those are the same)
 I switched back to the stable branch because the develop/7 branch
 would not build cleanly when I tried.
 This happened before and you guys normally fix it and I was not in a
 hurry.
 I finally have the debug build working and ulimit set etc… so I think
 I will send the backtrace tomorrow.

 Regards,
 Jerven

 On 13 Feb 2014, at 17:52, Hugh Williams hwilli...@openlinksw.com
 mailto:hwilli...@openlinksw.com
 mailto:hwilli...@openlinksw.com wrote:

 Hi Jerven,

 From our point of view there is no real value in building from the
 stable/7 branch from July last year, as it is about to be superseded
 in the new VOS 7 release by develop/7 when finalised, which is what
 we would be more interested in knowing of any problem being
 encountered using ?

 In your email below you mention loading the go.rdf.gz uniprot
 dataset, do you have URL to what you loaded or is it one of:

 resources
 url type=ftp location=ch preference=100
 ftp://ftp.expasy.org/databases/uniprot/current_release/rdf/go.rdf.gz
 /url
 url type=ftp location=uk preference=100
 ftp://ftp.ebi.ac.uk/pub/databases/uniprot/current_release/rdf/go.rdf.gz
 /url
 url type=ftp location=us preference=100
 ftp://ftp.uniprot.org/pub/databases/uniprot/current_release/rdf/go.rdf.gz
 /url
 /resources

 and I can load here to try  recreate your problem with develop/7 ?

 Best Regards
 Hugh Williams
 Professional Services
 OpenLink Software, Inc.  //
  http://www.openlinksw.com/
 Weblog   -- http://www.openlinksw.com/blogs/
 LinkedIn -- http://www.linkedin.com/company/openlink-software/
 Twitter  -- http://twitter.com/OpenLink
 Google+  -- http://plus.google.com/100570109519069333827/
 Facebook -- http://www.facebook.com/OpenLinkSoftware
 Universal Data Access, Integration, and Management Technology
 Providers

 On 13 Feb 2014, at 10:14, Jerven Bolleman