You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jena.apache.org by "Andy Seaborne (JIRA)" <ji...@apache.org> on 2018/10/29 09:20:00 UTC

[jira] [Comment Edited] (JENA-1553) Can't Backup data - java.io.IOException: Illegal UTF-8: 0xFFFFFFB1

    [ https://issues.apache.org/jira/browse/JENA-1553?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16666337#comment-16666337 ] 

Andy Seaborne edited comment on JENA-1553 at 10/29/18 9:19 AM:
---------------------------------------------------------------

I also get this kind of error, on the main semantic-forms site.

It is running without problems since months.

It is often updated by users typing or download from the LOD.

It started by this stack on table view of all Event triples (after the SPARQL query succeeded):

{noformat}
org.apache.jena.riot.RiotParseException: [line: 1, col: 1 ] Failed to find a prefix name or keyword: (0;0x0000)
 at org.apache.jena.riot.tokens.TokenizerText$ErrorHandlerTokenizer.error(TokenizerText.java:65)
 at org.apache.jena.riot.tokens.TokenizerText.error(TokenizerText.java:1244)
 at org.apache.jena.riot.tokens.TokenizerText.readPrefixedNameOrKeyword(TokenizerText.java:536)
 at org.apache.jena.riot.tokens.TokenizerText.parseToken(TokenizerText.java:445)
 at org.apache.jena.riot.tokens.TokenizerText.hasNext(TokenizerText.java:99)
 at org.apache.jena.tdb.store.nodetable.NodecSSE.decode(NodecSSE.java:126)
 at org.apache.jena.tdb.lib.NodeLib.decode(NodeLib.java:120)
 at org.apache.jena.tdb.lib.NodeLib.fetchDecode(NodeLib.java:97)
 at org.apache.jena.tdb.store.nodetable.NodeTableNative.readNodeFromTable(NodeTableNative.java:182)
 at org.apache.jena.tdb.store.nodetable.NodeTableNative._retrieveNodeByNodeId(NodeTableNative.java:108)
 at org.apache.jena.tdb.store.nodetable.NodeTableNative.getNodeForNodeId(NodeTableNative.java:67)
 at org.apache.jena.tdb.store.nodetable.NodeTableCache._retrieveNodeByNodeId(NodeTableCache.java:128)
 at org.apache.jena.tdb.store.nodetable.NodeTableCache.getNodeForNodeId(NodeTableCache.java:82)
 at org.apache.jena.tdb.store.nodetable.NodeTableWrapper.getNodeForNodeId(NodeTableWrapper.java:50)
 at org.apache.jena.tdb.store.nodetable.NodeTableInline.getNodeForNodeId(NodeTableInline.java:67)
 at org.apache.jena.tdb.lib.TupleLib.quad(TupleLib.java:128)
{noformat}

I just stopped the server.
 The dump fails like this. A file is produced, however. Is it not complete and terminates abruptly. The application view showing just the list of Events shows that most are missing.

}{noformat}
org.apache.jena.atlas.AtlasException: Unknown escape:
at org.apache.jena.atlas.lib.EscapeStr.unescape(EscapeStr.java:220)
at org.apache.jena.atlas.lib.EscapeStr.unescapeStr(EscapeStr.java:143)
at org.apache.jena.atlas.lib.EscapeStr.unescapeStr(EscapeStr.java:139)
at org.apache.jena.atlas.lib.StrUtils.unescapeString(StrUtils.java:248)
at org.apache.jena.tdb.store.nodetable.NodecSSE.decode(NodecSSE.java:120)
at org.apache.jena.tdb.lib.NodeLib.decode(NodeLib.java:120)
at org.apache.jena.tdb.lib.NodeLib.fetchDecode(NodeLib.java:97)
at org.apache.jena.tdb.store.nodetable.NodeTableNative.readNodeFromTable(NodeTableNative.java:182)
{noformat}

------------------------------------------

Then I tried to get my edits by this query:

{{cat user_jmvanel.rq}}

{noformat}
  CONSTRUCT
 { ?s ?p ?o .}
 WHERE {
  GRAPH <user:jmvanel> {
     ?s ?p ?o .
   }}
{noformat}
{noformat}
  java -cp $JARS tdb.tdbquery --loc=TDB --results=turtle --query user_jmvanel.rq
{noformat}
I got several exceptions, and nothing was returned.

{noformat}
09:16:00.563 [main] ERROR org.apache.jena.tdb.solver.BindingTDB - get1(?p)
 org.apache.jena.atlas.AtlasException: Unknown escape:
  at org.apache.jena.atlas.lib.EscapeStr.unescape(EscapeStr.java:220) [org.apache.jena.jena-base-3.9.0.jar:3.9.0]
  at org.apache.jena.atlas.lib.EscapeStr.unescapeStr(EscapeStr.java:143) [org.apache.jena.jena-base-3.9.0.jar:3.9.0]
  at org.apache.jena.atlas.lib.EscapeStr.unescapeStr(EscapeStr.java:139) [org.apache.jena.jena-base-3.9.0.jar:3.9.0]
  at org.apache.jena.atlas.lib.StrUtils.unescapeString(StrUtils.java:248) [org.apache.jena.jena-base-3.9.0.jar:3.9.0]
  at org.apache.jena.tdb.store.nodetable.NodecSSE.decode(NodecSSE.java:120) [org.apache.jena.jena-tdb-3.9.0.jar:3.9.0]
  at org.apache.jena.tdb.lib.NodeLib.decode(NodeLib.java:120) [org.apache.jena.jena-tdb-3.9.0.jar:3.9.0]
{noformat}

----------------------------------------------

other exception:

{noformat}
09:16:00.599 [main] ERROR org.apache.jena.tdb.solver.QueryEngineTDB$QueryIteratorMaterializeBinding - QueryFatalException
 org.apache.jena.sparql.ARQInternalErrorException: check(?p, null): null node value
  at org.apache.jena.sparql.engine.binding.BindingBase.checkPair(BindingBase.java:124) [org.apache.jena.jena-arq-3.9.0.jar:3.9.0]
  at org.apache.jena.sparql.engine.binding.BindingHashMap.checkAdd(BindingHashMap.java:96) [org.apache.jena.jena-arq-3.9.0.jar:3.9.0]
  at org.apache.jena.sparql.engine.binding.BindingHashMap.add(BindingHashMap.java:86) [org.apache.jena.jena-arq-3.9.0.jar:3.9.0]
  at org.apache.jena.sparql.engine.binding.BindingFactory.materialize(BindingFactory.java:72) [org.apache.jena.jena-arq-3.9.0.jar:3.9.0]
  at org.apache.jena.tdb.solver.QueryEngineTDB$QueryIteratorMaterializeBinding.moveToNextBinding(QueryEngineTDB.java:123) [org.apache.jena.jena-tdb-3.9.0.jar:3.9.0]
  at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.nextBinding(QueryIteratorBase.java:156) [org.apache.jena.jena-arq-3.9.0.jar:3.9.0]
{noformat}

and two more like this.

Is there any chance to recover my data ?



was (Author: jmvanel):
I also get this kind of error, on the main semantic-forms site.

It is running without problems since months.

It is often updated by users typing or download from the LOD.

It started by this stack on table view of all Event triples (after the SPARQL query succeeded):

{{org.apache.jena.riot.RiotParseException: [line: 1, col: 1 ] Failed to find a prefix name or keyword: (0;0x0000)
 at org.apache.jena.riot.tokens.TokenizerText$ErrorHandlerTokenizer.error(TokenizerText.java:65)
 at org.apache.jena.riot.tokens.TokenizerText.error(TokenizerText.java:1244)
 at org.apache.jena.riot.tokens.TokenizerText.readPrefixedNameOrKeyword(TokenizerText.java:536)
 at org.apache.jena.riot.tokens.TokenizerText.parseToken(TokenizerText.java:445)
 at org.apache.jena.riot.tokens.TokenizerText.hasNext(TokenizerText.java:99)
 at org.apache.jena.tdb.store.nodetable.NodecSSE.decode(NodecSSE.java:126)
 at org.apache.jena.tdb.lib.NodeLib.decode(NodeLib.java:120)
 at org.apache.jena.tdb.lib.NodeLib.fetchDecode(NodeLib.java:97)
 at org.apache.jena.tdb.store.nodetable.NodeTableNative.readNodeFromTable(NodeTableNative.java:182)
 at org.apache.jena.tdb.store.nodetable.NodeTableNative._retrieveNodeByNodeId(NodeTableNative.java:108)
 at org.apache.jena.tdb.store.nodetable.NodeTableNative.getNodeForNodeId(NodeTableNative.java:67)
 at org.apache.jena.tdb.store.nodetable.NodeTableCache._retrieveNodeByNodeId(NodeTableCache.java:128)
 at org.apache.jena.tdb.store.nodetable.NodeTableCache.getNodeForNodeId(NodeTableCache.java:82)
 at org.apache.jena.tdb.store.nodetable.NodeTableWrapper.getNodeForNodeId(NodeTableWrapper.java:50)
 at org.apache.jena.tdb.store.nodetable.NodeTableInline.getNodeForNodeId(NodeTableInline.java:67)
 at org.apache.jena.tdb.lib.TupleLib.quad(TupleLib.java:128)



I just stopped the server.
 The dump fails like this. A file is produced, however. Is it not complete and terminates abruptly. The application view showing just the list of Events shows that most are missing.

{{org.apache.jena.atlas.AtlasException: Unknown escape: \}}

{{    at org.apache.jena.atlas.lib.EscapeStr.unescape(EscapeStr.java:220)}}
{{    at org.apache.jena.atlas.lib.EscapeStr.unescapeStr(EscapeStr.java:143)}}
{{    at org.apache.jena.atlas.lib.EscapeStr.unescapeStr(EscapeStr.java:139)}}
{{    at org.apache.jena.atlas.lib.StrUtils.unescapeString(StrUtils.java:248)}}
{{    at org.apache.jena.tdb.store.nodetable.NodecSSE.decode(NodecSSE.java:120)}}
{{    at org.apache.jena.tdb.lib.NodeLib.decode(NodeLib.java:120)}}
{{    at org.apache.jena.tdb.lib.NodeLib.fetchDecode(NodeLib.java:97)}}
{{    at org.apache.jena.tdb.store.nodetable.NodeTableNative.readNodeFromTable(NodeTableNative.java:182)}}

------------------------------------------

Then I tried to get my edits by this query:

{{cat user_jmvanel.rq}}
{{CONSTRUCT {}}
{{    ?s ?p ?o .}}
{{} WHERE {}}
{{  GRAPH <user:jmvanel> {}}
{{    ?s ?p ?o .}}
{{  }}}
{{}}}
{{java -cp $JARS tdb.tdbquery --loc=TDB --results=turtle --query user_jmvanel.rq }}

I got several exceptions, and nothing was returned.

{{09:16:00.563 [main] ERROR org.apache.jena.tdb.solver.BindingTDB - get1(?p)}}
{{org.apache.jena.atlas.AtlasException: Unknown escape: \}}{{at org.apache.jena.atlas.lib.EscapeStr.unescape(EscapeStr.java:220) ~[org.apache.jena.jena-base-3.9.0.jar:3.9.0]}}
{{ at org.apache.jena.atlas.lib.EscapeStr.unescapeStr(EscapeStr.java:143) ~[org.apache.jena.jena-base-3.9.0.jar:3.9.0]}}
{{ at org.apache.jena.atlas.lib.EscapeStr.unescapeStr(EscapeStr.java:139) ~[org.apache.jena.jena-base-3.9.0.jar:3.9.0]}}
{{ at org.apache.jena.atlas.lib.StrUtils.unescapeString(StrUtils.java:248) ~[org.apache.jena.jena-base-3.9.0.jar:3.9.0]}}
{{ at org.apache.jena.tdb.store.nodetable.NodecSSE.decode(NodecSSE.java:120) ~[org.apache.jena.jena-tdb-3.9.0.jar:3.9.0]}}
{{ at org.apache.jena.tdb.lib.NodeLib.decode(NodeLib.java:120) ~[org.apache.jena.jena-tdb-3.9.0.jar:3.9.0]}}

----------------------------------------------

other exception:

{{09:16:00.599 [main] ERROR org.apache.jena.tdb.solver.QueryEngineTDB$QueryIteratorMaterializeBinding - QueryFatalException}}
{{org.apache.jena.sparql.ARQInternalErrorException: check(?p, null): null node value}}
{{ at org.apache.jena.sparql.engine.binding.BindingBase.checkPair(BindingBase.java:124) ~[org.apache.jena.jena-arq-3.9.0.jar:3.9.0]}}
{{ at org.apache.jena.sparql.engine.binding.BindingHashMap.checkAdd(BindingHashMap.java:96) ~[org.apache.jena.jena-arq-3.9.0.jar:3.9.0]}}
{{ at org.apache.jena.sparql.engine.binding.BindingHashMap.add(BindingHashMap.java:86) ~[org.apache.jena.jena-arq-3.9.0.jar:3.9.0]}}
{{ at org.apache.jena.sparql.engine.binding.BindingFactory.materialize(BindingFactory.java:72) ~[org.apache.jena.jena-arq-3.9.0.jar:3.9.0]}}
{{ at org.apache.jena.tdb.solver.QueryEngineTDB$QueryIteratorMaterializeBinding.moveToNextBinding(QueryEngineTDB.java:123) ~[org.apache.jena.jena-tdb-3.9.0.jar:3.9.0]}}
{{ at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.nextBinding(QueryIteratorBase.java:156) ~[org.apache.jena.jena-arq-3.9.0.jar:3.9.0]}}

and two more like this.

 

Is there any chance to recover my data ?

 

 

 

> Can't Backup data - java.io.IOException: Illegal UTF-8: 0xFFFFFFB1
> ------------------------------------------------------------------
>
>                 Key: JENA-1553
>                 URL: https://issues.apache.org/jira/browse/JENA-1553
>             Project: Apache Jena
>          Issue Type: Bug
>          Components: Jena
>         Environment: Ubuntu 16.04 running Docker.  Running stain/jena-fuseki from the official Docker Hub.
>            Reporter: Brian Mullen
>            Assignee: Andy Seaborne
>            Priority: Major
>             Fix For: Jena 3.9.0
>
>
> Attempting to backup through Fuseki, TDB 500M+ triples, breaking with error:  
>  
> {code:java}
> [2018-06-01 13:25:46] Log4jLoggerAdapter WARN  Exception in backup
> org.apache.jena.atlas.RuntimeIOException: java.io.IOException: Illegal UTF-8: 0xFFFFFFB1
>         at org.apache.jena.atlas.io.IO.exception(IO.java:233)
>         at org.apache.jena.atlas.io.BlockUTF8.exception(BlockUTF8.java:275)
>         at org.apache.jena.atlas.io.BlockUTF8.toCharsBuffer(BlockUTF8.java:150)
>         at org.apache.jena.atlas.io.BlockUTF8.toChars(BlockUTF8.java:73)
>         at org.apache.jena.atlas.io.BlockUTF8.toString(BlockUTF8.java:95)
>         at org.apache.jena.tdb.store.nodetable.NodecSSE.decode(NodecSSE.java:101)
>         at org.apache.jena.tdb.lib.NodeLib.decode(NodeLib.java:105)
>         at org.apache.jena.tdb.lib.NodeLib.fetchDecode(NodeLib.java:81)
>         at org.apache.jena.tdb.store.nodetable.NodeTableNative.readNodeFromTable(NodeTableNative.java:186)
>         at org.apache.jena.tdb.store.nodetable.NodeTableNative._retrieveNodeByNodeId(NodeTableNative.java:111)
>         at org.apache.jena.tdb.store.nodetable.NodeTableNative.getNodeForNodeId(NodeTableNative.java:70)
>         at org.apache.jena.tdb.store.nodetable.NodeTableCache._retrieveNodeByNodeId(NodeTableCache.java:128)
>         at org.apache.jena.tdb.store.nodetable.NodeTableCache.getNodeForNodeId(NodeTableCache.java:82)
>         at org.apache.jena.tdb.store.nodetable.NodeTableWrapper.getNodeForNodeId(NodeTableWrapper.java:50)
>         at org.apache.jena.tdb.store.nodetable.NodeTableInline.getNodeForNodeId(NodeTableInline.java:67)
>         at org.apache.jena.tdb.lib.TupleLib.triple(TupleLib.java:107)
>         at org.apache.jena.tdb.lib.TupleLib.triple(TupleLib.java:84)
>         at org.apache.jena.tdb.lib.TupleLib.lambda$convertToTriples$2(TupleLib.java:54)
>         at org.apache.jena.atlas.iterator.Iter$2.next(Iter.java:270)
>         at org.apache.jena.atlas.iterator.Iter$2.next(Iter.java:270)
>         at org.apache.jena.atlas.iterator.Iter.next(Iter.java:891)
>         at org.apache.jena.riot.system.StreamOps.sendQuadsToStream(StreamOps.java:140)
>         at org.apache.jena.riot.writer.NQuadsWriter.write$(NQuadsWriter.java:62)
>         at org.apache.jena.riot.writer.NQuadsWriter.write(NQuadsWriter.java:45)
>         at org.apache.jena.riot.writer.NQuadsWriter.write(NQuadsWriter.java:91)
>         at org.apache.jena.riot.RDFWriter.write$(RDFWriter.java:208)
>         at org.apache.jena.riot.RDFWriter.output(RDFWriter.java:165)
>         at org.apache.jena.riot.RDFWriter.output(RDFWriter.java:112)
>         at org.apache.jena.riot.RDFWriterBuilder.output(RDFWriterBuilder.java:149)
>         at org.apache.jena.riot.RDFDataMgr.write$(RDFDataMgr.java:1269)
>         at org.apache.jena.riot.RDFDataMgr.write(RDFDataMgr.java:1162)
>         at org.apache.jena.riot.RDFDataMgr.write(RDFDataMgr.java:1153)
>         at org.apache.jena.fuseki.mgt.Backup.backup(Backup.java:115)
>         at org.apache.jena.fuseki.mgt.Backup.backup(Backup.java:75)
>         at org.apache.jena.fuseki.mgt.ActionBackup$BackupTask.run(ActionBackup.java:58)
>         at org.apache.jena.fuseki.async.AsyncPool.lambda$submit$0(AsyncPool.java:55)
>         at org.apache.jena.fuseki.async.AsyncTask.call(AsyncTask.java:100)
>         at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>         at java.lang.Thread.run(Thread.java:745)
> Caused by: java.io.IOException: Illegal UTF-8: 0xFFFFFFB1
>         ... 40 more
> [2018-06-01 13:25:46] Log4jLoggerAdapter INFO  Backup(/fuseki/backups/PDE_PROD_2018-06-01_13-24-00):2{code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)