[
https://issues.apache.org/jira/browse/JENA-2030?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17275561#comment-17275561
]
Wolfgang Fahl edited comment on JENA-2030 at 1/30/21, 12:14 PM:
----------------------------------------------------------------
[~andy] thank you for looking into this.
The issue seems to be still related
[https://stackoverflow.com/questions/63874908/fuseki-configuration/63878809#63878809]
. I never bothered to fiddle with the ttl files myself since I did not invest
enough time to master the learning curve needed for doing so.
I always hoped Fuseki/Jena would make life simpler and my workaround to use
symbolic links for my data worked nicely. Unfortunately I only tried with full
path symbolic links I don't know whether symbolic links would have worked.
So when moving such a configuration the log file do not clearly state that the
symbolic links don't work properly any more.
I think a few things would help here:
* Improving the dataset configuration via the web interface by adding an
"edit" button to the manage datasets web ui - and e.g. showing the availability
of the datasets there.
* the server should still start if a single dataset is misconfigured in simply
mark the dataset as unavailable.
* The log file should contain hints in case typical problems like a non
available directory/broken symlink shows up. This would be a nice addition to
the debug stack trace. I used to add the "hint" functionality systematically to
my java projects since typical exceptions showed up so often and had no really
helpful information that such a hint was worthwhile to create very often - and
I'd mostly let it point to an FAQ or dicussion forum where details of scenarios
could be dicussed without having to modify the software.
!image-2021-01-30-13-11-14-582.png!
was (Author: wolfgangfahl):
[~andy] thank you for looking into this.
The issue seems to be still related
[https://stackoverflow.com/questions/63874908/fuseki-configuration/63878809#63878809]
. I never bothered to fiddle with the ttl files myself since I did not invest
enough time to master the learning curve needed for doing so.
I always hoped Fuseki/Jena would make life simpler and my workaround to use
symbolic links for my data worked nicely. Unfortunately I only tried with full
path symbolic links I don't know whether symbolic links would have worked.
So when moving such a configuration the log file do not clearly state that the
symbolic links don't work properly any more.
I think two things would help here:
Improving the dataset configuration via the web interface by adding an "edit"
button to:
!image-2021-01-30-13-11-14-582.png!
> Startup error messages about file problems should show filename/path of
> culprit
> -------------------------------------------------------------------------------
>
> Key: JENA-2030
> URL: https://issues.apache.org/jira/browse/JENA-2030
> Project: Apache Jena
> Issue Type: New Feature
> Components: Fuseki
> Affects Versions: Jena 3.16.0
> Reporter: Wolfgang Fahl
> Priority: Major
> Attachments: image-2021-01-30-13-11-14-582.png
>
>
> Please find below a log of a startup which leads to a non working fuseki
> instance - at least i can't access it at port 3030.
> I am still trying to use the [https://stackoverflow.com/a/63878809/1497139]
> approach of configuration since i never new how to fiddle with the ttl config
> files. For me it looks like some configuration files are picked up (aeon.ttl)
> that are not intended for the startup.
> My main problem is to debug the situation a message like:
> {noformat}
> org.apache.jena.assembler.exceptions.AssemblerException: caught:
> java.io.IOException: No such file or directory
> {noformat}
> does not help if there seems to be no hint what file or directory is missing
> and what it is good for. Many lines later the config file having the problem
> is shown but not the entry that is the problem.
> {noformat}
> 12:41:50 INFO Server :: Started 2021/01/29 12:41:50 MEZ on port 3030
> {noformat}
> is confusing since still the 3030 access seems to be local only.
> {noformat}
> apache-jena-fuseki-3.16.0 already downloaded and unpacked
> 12:41:48 INFO Server :: Running in read-only mode for /wikidata
> 12:41:49 INFO Server :: Apache Jena Fuseki 3.16.0
> 12:41:49 INFO Config ::
> FUSEKI_HOME=/Volumes/Quaxo/torterra/wikidata2020-08-15/apache-jena-fuseki-3.16.0/.
> 12:41:49 INFO Config ::
> FUSEKI_BASE=/Volumes/Quaxo/torterra/wikidata2020-08-15/apache-jena-fuseki-3.16.0/run
> 12:41:49 INFO Config :: Shiro file:
> file:///Volumes/Quaxo/torterra/wikidata2020-08-15/apache-jena-fuseki-3.16.0/run/shiro.ini
> 12:41:49 INFO Config :: Template file: templates/config-tdb2-dir
> 12:41:49 INFO Config :: TDB dataset: directory=../data
> 12:41:49 INFO Config :: Load configuration:
> file:///Volumes/Quaxo/torterra/wikidata2020-08-15/apache-jena-fuseki-3.16.0/run/configuration/aeon.ttl
> 12:41:49 ERROR Server :: Exception in initialization: caught:
> java.io.IOException: No such file or directory
> 12:41:49 WARN WebAppContext :: Failed startup of context
> o.e.j.w.WebAppContext@7e4579c7{Apache Jena Fuseki
> Server,/,file:///Volumes/Quaxo/torterra/wikidata2020-08-15/apache-jena-fuseki-3.16.0/webapp/,UNAVAILABLE}
> org.apache.jena.assembler.exceptions.AssemblerException: caught:
> java.io.IOException: No such file or directory
> at
> org.apache.jena.assembler.assemblers.AssemblerGroup$PlainAssemblerGroup.openBySpecificType(AssemblerGroup.java:165)
> ~[fuseki-server.jar:3.16.0]
> at
> org.apache.jena.assembler.assemblers.AssemblerGroup$PlainAssemblerGroup.open(AssemblerGroup.java:144)
> ~[fuseki-server.jar:3.16.0]
> at
> org.apache.jena.assembler.assemblers.AssemblerGroup$ExpandingAssemblerGroup.open(AssemblerGroup.java:93)
> ~[fuseki-server.jar:3.16.0]
> at
> org.apache.jena.assembler.assemblers.AssemblerBase.open(AssemblerBase.java:39)
> ~[fuseki-server.jar:3.16.0]
> at
> org.apache.jena.assembler.assemblers.AssemblerBase.open(AssemblerBase.java:35)
> ~[fuseki-server.jar:3.16.0]
> at
> org.apache.jena.fuseki.build.FusekiConfig.getDataset(FusekiConfig.java:642)
> ~[fuseki-server.jar:3.16.0]
> at
> org.apache.jena.fuseki.build.FusekiConfig.buildDataService(FusekiConfig.java:443)
> ~[fuseki-server.jar:3.16.0]
> at
> org.apache.jena.fuseki.build.FusekiConfig.buildDataAccessPoint(FusekiConfig.java:433)
> ~[fuseki-server.jar:3.16.0]
> at
> org.apache.jena.fuseki.build.FusekiConfig.readConfiguration(FusekiConfig.java:416)
> ~[fuseki-server.jar:3.16.0]
> at
> org.apache.jena.fuseki.build.FusekiConfig.readConfigurationDirectory(FusekiConfig.java:395)
> ~[fuseki-server.jar:3.16.0]
> at
> org.apache.jena.fuseki.webapp.FusekiWebapp.initializeDataAccessPoints(FusekiWebapp.java:217)
> ~[fuseki-server.jar:3.16.0]
> at
> org.apache.jena.fuseki.webapp.FusekiServerListener.serverInitialization(FusekiServerListener.java:97)
> ~[fuseki-server.jar:3.16.0]
> at
> org.apache.jena.fuseki.webapp.FusekiServerListener.contextInitialized(FusekiServerListener.java:57)
> ~[fuseki-server.jar:3.16.0]
> at
> org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:930)
> ~[fuseki-server.jar:3.16.0]
> at
> org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:553)
> ~[fuseki-server.jar:3.16.0]
> at
> org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:889)
> ~[fuseki-server.jar:3.16.0]
> at
> org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:356)
> ~[fuseki-server.jar:3.16.0]
> at
> org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1445)
> ~[fuseki-server.jar:3.16.0]
> at
> org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1409)
> ~[fuseki-server.jar:3.16.0]
> at
> org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:822)
> ~[fuseki-server.jar:3.16.0]
> at
> org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:275)
> ~[fuseki-server.jar:3.16.0]
> at
> org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:524)
> [fuseki-server.jar:3.16.0]
> at
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
> [fuseki-server.jar:3.16.0]
> at
> org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
> [fuseki-server.jar:3.16.0]
> at
> org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:110)
> [fuseki-server.jar:3.16.0]
> at
> org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97)
> [fuseki-server.jar:3.16.0]
> at
> org.eclipse.jetty.server.handler.gzip.GzipHandler.doStart(GzipHandler.java:425)
> [fuseki-server.jar:3.16.0]
> at
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
> [fuseki-server.jar:3.16.0]
> at
> org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
> [fuseki-server.jar:3.16.0]
> at org.eclipse.jetty.server.Server.start(Server.java:407)
> [fuseki-server.jar:3.16.0]
> at
> org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:110)
> [fuseki-server.jar:3.16.0]
> at
> org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97)
> [fuseki-server.jar:3.16.0]
> at org.eclipse.jetty.server.Server.doStart(Server.java:371)
> [fuseki-server.jar:3.16.0]
> at
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
> [fuseki-server.jar:3.16.0]
> at
> org.apache.jena.fuseki.cmd.JettyFusekiWebapp.start(JettyFusekiWebapp.java:125)
> [fuseki-server.jar:3.16.0]
> at org.apache.jena.fuseki.cmd.FusekiCmd.runFuseki(FusekiCmd.java:379)
> [fuseki-server.jar:3.16.0]
> at
> org.apache.jena.fuseki.cmd.FusekiCmd$FusekiCmdInner.exec(FusekiCmd.java:363)
> [fuseki-server.jar:3.16.0]
> at jena.cmd.CmdMain.mainMethod(CmdMain.java:92)
> [fuseki-server.jar:3.16.0]
> at jena.cmd.CmdMain.mainRun(CmdMain.java:58) [fuseki-server.jar:3.16.0]
> at jena.cmd.CmdMain.mainRun(CmdMain.java:45) [fuseki-server.jar:3.16.0]
> at
> org.apache.jena.fuseki.cmd.FusekiCmd$FusekiCmdInner.innerMain(FusekiCmd.java:105)
> [fuseki-server.jar:3.16.0]
> at org.apache.jena.fuseki.cmd.FusekiCmd.main(FusekiCmd.java:68)
> [fuseki-server.jar:3.16.0]
> Caused by: org.apache.jena.atlas.RuntimeIOException: java.io.IOException: No
> such file or directory
> at org.apache.jena.atlas.io.IO.exception(IO.java:261)
> ~[fuseki-server.jar:3.16.0]
> at
> org.apache.jena.tdb2.sys.DatabaseConnection.lockForLocation(DatabaseConnection.java:131)
> ~[fuseki-server.jar:3.16.0]
> at
> org.apache.jena.tdb2.sys.DatabaseConnection.build(DatabaseConnection.java:98)
> ~[fuseki-server.jar:3.16.0]
> at
> org.apache.jena.tdb2.sys.DatabaseConnection.lambda$make$0(DatabaseConnection.java:74)
> ~[fuseki-server.jar:3.16.0]
> at
> java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1705)
> ~[?:?]
> at
> org.apache.jena.tdb2.sys.DatabaseConnection.make(DatabaseConnection.java:74)
> ~[fuseki-server.jar:3.16.0]
> at
> org.apache.jena.tdb2.sys.DatabaseConnection.connectCreate(DatabaseConnection.java:63)
> ~[fuseki-server.jar:3.16.0]
> at
> org.apache.jena.tdb2.sys.DatabaseConnection.connectCreate(DatabaseConnection.java:54)
> ~[fuseki-server.jar:3.16.0]
> at
> org.apache.jena.tdb2.DatabaseMgr.DB_ConnectCreate(DatabaseMgr.java:41)
> ~[fuseki-server.jar:3.16.0]
> at
> org.apache.jena.tdb2.DatabaseMgr.connectDatasetGraph(DatabaseMgr.java:46)
> ~[fuseki-server.jar:3.16.0]
> at
> org.apache.jena.tdb2.assembler.DatasetAssemblerTDB.make(DatasetAssemblerTDB.java:59)
> ~[fuseki-server.jar:3.16.0]
> at
> org.apache.jena.tdb2.assembler.DatasetAssemblerTDB.createDataset(DatasetAssemblerTDB.java:50)
> ~[fuseki-server.jar:3.16.0]
> at
> org.apache.jena.sparql.core.assembler.DatasetAssembler.open(DatasetAssembler.java:43)
> ~[fuseki-server.jar:3.16.0]
> at
> org.apache.jena.assembler.assemblers.AssemblerGroup$PlainAssemblerGroup.openBySpecificType(AssemblerGroup.java:157)
> ~[fuseki-server.jar:3.16.0]
> ... 41 more
> Caused by: java.io.IOException: No such file or directory
> at java.io.UnixFileSystem.createFileExclusively(Native Method) ~[?:?]
> at java.io.File.createNewFile(File.java:1024) ~[?:?]
> at
> org.apache.jena.tdb2.sys.DatabaseConnection.lockForLocation(DatabaseConnection.java:130)
> ~[fuseki-server.jar:3.16.0]
> at
> org.apache.jena.tdb2.sys.DatabaseConnection.build(DatabaseConnection.java:98)
> ~[fuseki-server.jar:3.16.0]
> at
> org.apache.jena.tdb2.sys.DatabaseConnection.lambda$make$0(DatabaseConnection.java:74)
> ~[fuseki-server.jar:3.16.0]
> at
> java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1705)
> ~[?:?]
> at
> org.apache.jena.tdb2.sys.DatabaseConnection.make(DatabaseConnection.java:74)
> ~[fuseki-server.jar:3.16.0]
> at
> org.apache.jena.tdb2.sys.DatabaseConnection.connectCreate(DatabaseConnection.java:63)
> ~[fuseki-server.jar:3.16.0]
> at
> org.apache.jena.tdb2.sys.DatabaseConnection.connectCreate(DatabaseConnection.java:54)
> ~[fuseki-server.jar:3.16.0]
> at
> org.apache.jena.tdb2.DatabaseMgr.DB_ConnectCreate(DatabaseMgr.java:41)
> ~[fuseki-server.jar:3.16.0]
> at
> org.apache.jena.tdb2.DatabaseMgr.connectDatasetGraph(DatabaseMgr.java:46)
> ~[fuseki-server.jar:3.16.0]
> at
> org.apache.jena.tdb2.assembler.DatasetAssemblerTDB.make(DatasetAssemblerTDB.java:59)
> ~[fuseki-server.jar:3.16.0]
> at
> org.apache.jena.tdb2.assembler.DatasetAssemblerTDB.createDataset(DatasetAssemblerTDB.java:50)
> ~[fuseki-server.jar:3.16.0]
> at
> org.apache.jena.sparql.core.assembler.DatasetAssembler.open(DatasetAssembler.java:43)
> ~[fuseki-server.jar:3.16.0]
> at
> org.apache.jena.assembler.assemblers.AssemblerGroup$PlainAssemblerGroup.openBySpecificType(AssemblerGroup.java:157)
> ~[fuseki-server.jar:3.16.0]
> ... 41 more
> 12:41:50 INFO Server :: Started 2021/01/29 12:41:50 MEZ on port 3030
> {noformat}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)