Unfortunately, I cannot share the data that causes problems when we upload data 
via s-put to a Fuseki 4.3.2 server.

I start the server like this (on windows):

java -Xmx12G -D'log4j.configuration'=file:log4j2.properties -jar 
fuseki-server.jar

(I edited the log4j2.properties file to set the levels to DEBUG or TRACE to see 
if I could get more info)

We create a dataset with the union graph by expanding this Bash template:

createDataset() {
    cat <<EOF
    @prefix fu:      <http://jena.apache.org/fuseki#> .
    @prefix fuseki:  <http://jena.apache.org/fuseki#> .
    @prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
    @prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
    @prefix tdb:     <http://jena.hpl.hp.com/2008/tdb#> .
    @prefix ja:      <http://jena.hpl.hp.com/2005/11/Assembler#> .

    <#${FUSEKI_DATASET}-service> rdf:type fuseki:Service;
    fu:name                       "${FUSEKI_DATASET}";
    fu:dataset                    <#${FUSEKI_DATASET}> ;
    fu:serviceQuery               "sparql" ;
    fu:serviceQuery               "query" ;
    fu:serviceUpdate              "update" ;
    fu:serviceUpload              "upload" ;
    fu:serviceReadWriteGraphStore "data" ;
    fu:serviceReadGraphStore      "get" ;
    .

    <#${FUSEKI_DATASET}>          rdf:type tdb:DatasetTDB ;
    tdb:location                  "--mem--" ;
    tdb:unionDefaultGraph         true;
    .

EOF
}

We upload a bunch of files in rdf/xml and 3 in ttl format for the entailments 
calculated by an owl2-dl/swrl reasoner for classes, properties and individuals.

The error happens systematically at the last file for individual entailments. 
This file is fairly big – about 600 KB and has about 1.8 M lines of ttl 
statements/spaces.

Once, I got a server error like this:

18:00:40 INFO  Fuseki          :: [45] PUT 
http://localhost:3030/00afdacb677fce276d5463bc8f09aa909a8e9755/data?graph=http%3A%2F%2Feuropa.jpl.nasa.gov%2Fbundle%2F___I%2Fexported-user-models
18:00:40 INFO  Fuseki          :: [45]   => User-Agent:          SOH/Fuseki 
1.0.0
18:00:40 INFO  Fuseki          :: [45]   => Host:                localhost:3030
18:00:40 INFO  Fuseki          :: [45]   => Content-Length:      588975765
18:00:40 INFO  Fuseki          :: [45]   => Content-Type:        
text/turtle;charset=utf-8;charset=utf-8
19:10:59 INFO  Fuseki          :: [44]   <= Content-Type:        
application/json
19:10:59 INFO  Fuseki          :: [44]   <= Content-Length:      73
19:10:59 INFO  Fuseki          :: [44] 201 Created (4,595.635 s)
19:11:15 INFO  Fuseki          :: [45]   <= Content-Type:        text/plain
19:11:15 INFO  Fuseki          :: [45]   <= Content-Length:      97
19:11:15 INFO  Fuseki          :: [45]   <= Cache-Control:       
must-revalidate,no-cache,no-store
19:11:15 INFO  Fuseki          :: [45]   <= Pragma:              no-cache
19:11:15 INFO  Fuseki          :: [45] 500 Server Error (4,234.691 s)

Is there a way to make sure that any such 500 error is logged with additional 
information about it cause?
Could there be an unlogged internal exception?

If so, how can we force all internal exceptions to be logged no matter what?

I  tried to turn on debugging to see what is happening by changing most INFO to 
DEBUG levels and adding the –debug flag.

Below is the partial log of loading the large entailments: C = class, P = 
property, I = individuals.
There are lots of JournalControl log messages that I have elided.

12:08:46 INFO  Fuseki          :: [61] PUT 
http://localhost:3030/00afdacb677fce276d5463bc8f09aa909a8e9755/data?graph=http%3A%2F%2Feuropa.jpl.nasa.gov%2Fbundle%2F_C__%2Fexported-user-models
12:08:46 INFO  Fuseki          :: [61]   => User-Agent:          SOH/Fuseki 
1.0.0
12:08:46 INFO  Fuseki          :: [61]   => Host:                localhost:3030
12:08:46 INFO  Fuseki          :: [61]   => Content-Length:      3514749
12:08:46 INFO  Fuseki          :: [61]   => Content-Type:        
text/turtle;charset=utf-8;charset=utf-8
12:08:46 DEBUG TDB             :: Txn[45]/W: begin$
12:08:46 DEBUG LockMRSW        :: Lock : qtp665565246-28
12:08:46 DEBUG TDB             :: Txn[45]/W: begin
12:08:46 DEBUG LockMRSW        :: qtp665565246-28 >> enterCS: Thread R/W: 0/0 
:: Model R/W: 0/0 (thread: qtp665565246-28)
12:08:46 DEBUG LockMRSW        :: qtp665565246-28 << enterCS: Thread R/W: 1/0 
:: Model R/W: 1/0 (thread: qtp665565246-28)
12:08:46 DEBUG Fuseki          :: 
PUT->target:<http://europa.jpl.nasa.gov/bundle/_C__/exported-user-models>
12:08:46 INFO  Fuseki          :: [61] Body: Content-Length=3514749, 
Content-Type=text/turtle, Charset=utf-8;charset=utf-8 => Turtle : Count=35378 
Triples=35378 Quads=0
12:08:46 DEBUG TDB             :: Txn[45]/W: commit
12:08:46 DEBUG LockMRSW        :: qtp665565246-28 >> leaveCS: Thread R/W: 1/0 
:: Model R/W: 1/0 (thread: qtp665565246-28)
12:08:46 DEBUG LockMRSW        :: qtp665565246-28 << leaveCS: Thread R/W: 0/0 
:: Model R/W: 0/0 (thread: qtp665565246-28)
12:08:46 DEBUG TDB             :: Txn[45]/W: Commit immediately
12:08:46 DEBUG TDB             :: Replay Txn[45]/W
12:08:46 DEBUG JournalControl  :: Replay: fileref(35):node2id.dat Block: 769 
(posn=0, limit=8192, cap=8192)
…
12:08:46 DEBUG JournalControl  :: Replay: fileref(28):SPOG.dat Block: 5119 
(posn=0, limit=8192, cap=8192)
12:08:46 DEBUG JournalControl  :: Replay: fileref(37):prefixIdx.dat Block: 0 
(posn=0, limit=8192, cap=8192)
12:08:46 INFO  Fuseki          :: [61]   <= Content-Type:        
application/json
12:08:46 INFO  Fuseki          :: [61]   <= Content-Length:      69
12:08:46 INFO  Fuseki          :: [61] 201 Created (566 ms)
127.0.0.1 - - [05/Jan/2022:20:08:46 +0000] "PUT 
/00afdacb677fce276d5463bc8f09aa909a8e9755/data" 201 69 "" "SOH/Fuseki 1.0.0"
12:08:47 INFO  Fuseki          :: [62] PUT 
http://localhost:3030/00afdacb677fce276d5463bc8f09aa909a8e9755/data?graph=http%3A%2F%2Feuropa.jpl.nasa.gov%2Fbundle%2F__P_%2Fexported-user-models
12:08:47 INFO  Fuseki          :: [62]   => User-Agent:          SOH/Fuseki 
1.0.0
12:08:47 INFO  Fuseki          :: [62]   => Host:                localhost:3030
12:08:47 INFO  Fuseki          :: [62]   => Content-Length:      607158
12:08:47 INFO  Fuseki          :: [62]   => Content-Type:        
text/turtle;charset=utf-8;charset=utf-8
12:08:47 DEBUG TDB             :: Txn[46]/W: begin$
12:08:47 DEBUG LockMRSW        :: Lock : qtp665565246-47
12:08:47 DEBUG TDB             :: Txn[46]/W: begin
12:08:47 DEBUG LockMRSW        :: qtp665565246-47 >> enterCS: Thread R/W: 0/0 
:: Model R/W: 0/0 (thread: qtp665565246-47)
12:08:47 DEBUG LockMRSW        :: qtp665565246-47 << enterCS: Thread R/W: 1/0 
:: Model R/W: 1/0 (thread: qtp665565246-47)
12:08:47 DEBUG Fuseki          :: 
PUT->target:<http://europa.jpl.nasa.gov/bundle/__P_/exported-user-models>
12:08:47 INFO  Fuseki          :: [62] Body: Content-Length=607158, 
Content-Type=text/turtle, Charset=utf-8;charset=utf-8 => Turtle : Count=5012 
Triples=5012 Quads=0
12:08:47 DEBUG TDB             :: Txn[46]/W: commit
12:08:47 DEBUG LockMRSW        :: qtp665565246-47 >> leaveCS: Thread R/W: 1/0 
:: Model R/W: 1/0 (thread: qtp665565246-47)
12:08:47 DEBUG LockMRSW        :: qtp665565246-47 << leaveCS: Thread R/W: 0/0 
:: Model R/W: 0/0 (thread: qtp665565246-47)
12:08:47 DEBUG TDB             :: Txn[46]/W: Commit immediately
12:08:47 DEBUG TDB             :: Replay Txn[46]/W
12:08:47 DEBUG JournalControl  :: Replay: fileref(35):node2id.dat Block: 80 
(posn=0, limit=8192, cap=8192)
…
12:08:47 DEBUG JournalControl  :: Replay: fileref(28):SPOG.dat Block: 5119 
(posn=0, limit=8192, cap=8192)
12:08:47 DEBUG JournalControl  :: Replay: fileref(37):prefixIdx.dat Block: 0 
(posn=0, limit=8192, cap=8192)
12:08:47 INFO  Fuseki          :: [62]   <= Content-Type:        
application/json
12:08:47 INFO  Fuseki          :: [62]   <= Content-Length:      67
12:08:47 INFO  Fuseki          :: [62] 201 Created (164 ms)
127.0.0.1 - - [05/Jan/2022:20:08:47 +0000] "PUT 
/00afdacb677fce276d5463bc8f09aa909a8e9755/data" 201 67 "" "SOH/Fuseki 1.0.0"
12:08:47 INFO  Fuseki          :: [63] PUT 
http://localhost:3030/00afdacb677fce276d5463bc8f09aa909a8e9755/data?graph=http%3A%2F%2Feuropa.jpl.nasa.gov%2Fbundle%2F___I%2Fexported-user-models
12:08:47 INFO  Fuseki          :: [63]   => User-Agent:          SOH/Fuseki 
1.0.0
12:08:47 INFO  Fuseki          :: [63]   => Host:                localhost:3030
12:08:47 INFO  Fuseki          :: [63]   => Content-Length:      588975765
12:08:47 INFO  Fuseki          :: [63]   => Content-Type:        
text/turtle;charset=utf-8;charset=utf-8
12:08:47 DEBUG TDB             :: Txn[47]/W: begin$
12:08:47 DEBUG LockMRSW        :: Lock : qtp665565246-39
12:08:47 DEBUG TDB             :: Txn[47]/W: begin
12:08:47 DEBUG LockMRSW        :: qtp665565246-39 >> enterCS: Thread R/W: 0/0 
:: Model R/W: 0/0 (thread: qtp665565246-39)
12:08:47 DEBUG LockMRSW        :: qtp665565246-39 << enterCS: Thread R/W: 1/0 
:: Model R/W: 1/0 (thread: qtp665565246-39)
12:08:47 DEBUG Fuseki          :: 
PUT->target:<http://europa.jpl.nasa.gov/bundle/___I/exported-user-models>
12:09:22 INFO  Fuseki          :: [63] Body: Content-Length=588975765, 
Content-Type=text/turtle, Charset=utf-8;charset=utf-8 => Turtle : Count=2050519 
Triples=2050519 Quads=0
12:14:52 INFO  Fuseki          :: [64] PUT 
http://localhost:3030/00afdacb677fce276d5463bc8f09aa909a8e9755/data?graph=http%3A%2F%2Feuropa.jpl.nasa.gov%2Fbundle%2F___I%2Fexported-user-models
12:14:52 INFO  Fuseki          :: [64]   => User-Agent:          SOH/Fuseki 
1.0.0
12:14:52 INFO  Fuseki          :: [64]   => Host:                localhost:3030
12:14:52 INFO  Fuseki          :: [64]   => Content-Length:      588975765
12:14:52 INFO  Fuseki          :: [64]   => Content-Type:        
text/turtle;charset=utf-8;charset=utf-8

On the client side where we use s-put, I got this info:

#----------------------------------
# IRI=http://europa.jpl.nasa.gov/bundle/_C__/exported-user-models
# 
/data/outputs/process/auxiliary/owl/europa.jpl.nasa.gov/bundle/_C__/exported-user-models.ttl
# 
/data/inputs/auxiliary/owl/europa.jpl.nasa.gov/bundle/_C__/exported-user-models.ttl
# Uploading http://europa.jpl.nasa.gov/bundle/_C__/exported-user-models from 
/data/inputs/auxiliary/owl/europa.jpl.nasa.gov/bundle/_C__/exported-user-models.ttl
#----------------------------------
# IRI=http://europa.jpl.nasa.gov/bundle/__P_/exported-user-models
# 
/data/outputs/process/auxiliary/owl/europa.jpl.nasa.gov/bundle/__P_/exported-user-models.ttl
# 
/data/inputs/auxiliary/owl/europa.jpl.nasa.gov/bundle/__P_/exported-user-models.ttl
# Uploading http://europa.jpl.nasa.gov/bundle/__P_/exported-user-models from 
/data/inputs/auxiliary/owl/europa.jpl.nasa.gov/bundle/__P_/exported-user-models.ttl
#----------------------------------
# IRI=http://europa.jpl.nasa.gov/bundle/___I/exported-user-models
# 
/data/outputs/process/auxiliary/owl/europa.jpl.nasa.gov/bundle/___I/exported-user-models.ttl
# 
/data/inputs/auxiliary/owl/europa.jpl.nasa.gov/bundle/___I/exported-user-models.ttl
# Uploading http://europa.jpl.nasa.gov/bundle/___I/exported-user-models from 
/data/inputs/auxiliary/owl/europa.jpl.nasa.gov/bundle/___I/exported-user-models.ttl
Failed to connect: localhost:3030: end of file reached

That is, the server did not crash but it was busy for a few minutes, then 
strangely it logged the PUT a second time. Then a few minutes later, the client 
stopped with ‘Failed to connect…’

Is there a way to get additional log visibility into what is happening during 
these minutes?

Nicolas F. Rouquette
Principal Computer Scientist
Jet Propulsion Laboratory, California Institute of Technology M/S 301-490, 4800 
Oak Grove Dr, Pasadena, CA 91189, USA
email: nicolas.f.rouque...@jpl.nasa.gov<mailto:nicolas.f.rouque...@jpl.nasa.gov>
cell: +1 (626) 639-5282

Reply via email to