Hi.

As the quad dump failed I went with an option to select list of named graphs we needed to save from corrupted database and I am making dumps of those graphs one by one using procedure specified here http://virtuoso.openlinksw.com/dataspace/doc/dav/wiki/Main/VirtRDFDatasetDump. I uploaded to new fresh database 1745454 named graphs from old database using bulk loader. This is just a small amount of overall named graphs still need loading to new database. After uploading those graphs with bulk loader I started a process to insert some named graphs through our java process using query "SPARQL INSERT DATA { GRAPH <named_graph> { ... }}". After processing 233270 named graphs I got the same error in the clean database:

COL..: Insert stopped because out of seg data here or elsewhere host 0 key RDF_QUAD_SP slice 0

The clean database file size is only 4G. Made an integrity check after that and it passed. Additionally made crash dump and restore successfully, but after starting java process again I still get the same error. The differences with other named graphs I inserted and the named graphs inserted through java process is that java process ones contain multiple plain literal object values with some UTF-8 letters 'ÄÖÜÕ', for example (test values presented):

<https://test.ee/organizations/ee-1234567890> <http://purl.org/goodrelations/v1#legalName> "EXAMPLE TEST OÜ" .

And multiple decimal values, for example (test values presented):

<https://test.ee/amounts/total> <http://schema.org/amount> "7.77"^^<http://www.w3.org/2001/XMLSchema#decimal> .

Integrity check passes and no errors are logged to virtuoso.log file. The database starts up correctly and select queries work just fine. Connection with virtuoso is made with url "jdbc:virtuoso://<ip_address>:1111/CHARSET=UTF-8".

I was not able to create a debian package with debug binary with symbols in place using debian/rules for compiling. Can someone maybe give me some guidance on where to correctly add option --with-debug and CFLAGS variable?


Best wishes.

Piret


On 12.01.16 10:36, Piret Lattikas wrote:
Hi Hugh,

Started NQuad dump on the corrupted database and at some point it failed with the error:

    Connected to OpenLink Virtuoso
    Driver: 07.20.3215 OpenLink Virtuoso ODBC Driver
    OpenLink Interactive SQL (Virtuoso), version 0.9849b.
    Type HELP; for help and EXIT; to exit.

*** Error 22023: [Virtuoso Driver][Virtuoso Server]SR469: Dirty read is detected, wrong BLOB HANDLE value.
    at line 0 of Top-Level:
    dump_nquads('dumps', 1, 1000000000, 1)

I am preparing the executable with debug mode, to get more precise core dump.

This database was initially built up by making an NQuad dump from another database and loading data to the database using bulk loader. Majority of inserts after that have been made with query "SPARQL INSERT DATA { GRAPH <named_graph> { ... }}" directly to database connecting to port 1111 using java.sql library.

Best wishes,

Piret

On 10.01.16 19:57, Hugh Williams wrote:
Hi Piret,

If you build a debug binary with symbols in place you will get a more meaningful gdb back trace ie “?”’s will resolve, as follows:

1. Configure using the —with debug option:

     ./configure —with-debug

2. In the Makefile, check to ensure CFLAGS has the “-g” option set which generates debug information:

    CFLAGS = -g -O2

3. Then do "make clean all deinstall reinstall” to build a new debug unstripped binary (virtuoso-t)

4. Start database with this new binary and force the crash condition again to generate a new core file

5. Use gdb to load core file

    gdb virtuoso-t  core

6. At the prompt, type "bt" or “backtrace” to backtrace through stack and provide the output when top of stack is reached.

If the database starts, then yes you can dump the data to NQuads and reload into an empty database to get an uncorrupted database …

Should still also ensure you have an backup strategy in place …

What method is being used to perform your data insert, was this using bulk loader, sparql insert directly to database, via sesame/jena or other ?

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



------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140
_______________________________________________
Virtuoso-users mailing list
Virtuoso-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/virtuoso-users

Reply via email to