Skip to content

DSGSetup.setupTDB failing with TDB2 on partial compact #3431

@bardocuteam

Description

@bardocuteam

Version

5.3.0

What happened?

DSGSetup.setupTDB is failing when starting a TDB2 instance with a partial compact.

When calling TDBOps.isTDB2, it will call org.apache.jena.tdb2.sys.DatabaseOps.findStorageLocation, which checks for a storage location without partial compact.

Cleanup is only handled when creating the DB connection: https://github.com/apache/jena/blob/jena-5.5.0/jena-tdb2/src/main/java/org/apache/jena/tdb2/sys/DatabaseOps.java#L129

Steps to reproduce:

  • Start a fuseki instance with TDB2 backend
  • Start a compact
  • Kill the fuseki instance while the compact is happening
  • Start again the fuseki instance, which will fail.

Relevant output and stacktrace

org.apache.jena.dboe.DBOpEnvException: Invalid filename for matching: Data-0002-tmp
	at org.apache.jena.tdb2.sys.DatabaseOps.scanForDirByPattern(DatabaseOps.java:534)
	at org.apache.jena.tdb2.sys.DatabaseOps.findStorageLocation(DatabaseOps.java:588)
	at org.apache.jena.tdb2.sys.DatabaseOps.findStorageLocation(DatabaseOps.java:577)
	at org.apache.jena.fuseki.system.spot.SpotTDB2.storageDir(SpotTDB2.java:118)
	at org.apache.jena.fuseki.system.spot.SpotTDB2.isTDB2(SpotTDB2.java:77)
	at org.apache.jena.fuseki.system.spot.SpotTDB2.isTDB2(SpotTDB2.java:60)
	at org.apache.jena.fuseki.system.spot.TDBOps.isTDB2(TDBOps.java:46)
	at org.apache.jena.fuseki.main.cmds.DSGSetup.setupTDB(DSGSetup.java:84)
	at org.apache.jena.fuseki.main.cmds.FusekiMain.lambda$processStdArguments$5(FusekiMain.java:457)
	at org.apache.jena.fuseki.main.cmds.FusekiMain.applyServerArgs(FusekiMain.java:735)
	at org.apache.jena.fuseki.main.cmds.FusekiMain.makeServer(FusekiMain.java:679)
	at org.apache.jena.fuseki.main.cmds.FusekiMain.execMakeServer(FusekiMain.java:641)
	at org.apache.jena.fuseki.main.cmds.FusekiMain.exec(FusekiMain.java:635)
	at org.apache.jena.cmd.CmdMain.mainMethod(CmdMain.java:86)
	at org.apache.jena.cmd.CmdMain.mainRun(CmdMain.java:55)
	at org.apache.jena.cmd.CmdMain.mainRun(CmdMain.java:43)
	at org.apache.jena.fuseki.main.cmds.FusekiMain.run(FusekiMain.java:159)
	at org.apache.jena.fuseki.mod.FusekiServerRunner.main(FusekiServerRunner.java:45)
	at org.apache.jena.fuseki.main.cmds.FusekiServerCmd.main(FusekiServerCmd.java:48)

Are you interested in making a pull request?

No

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions