apache / apache/jena

/$/compact/ with deleteOld=true does not remove the old folder (on Windows)

Open
#2,127 8 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
Java
Stars
1.4k
Forks
712
Avg merge
15h 41m
Merged PRs (30d)
53

Description

### Version

4.8.0

### What happened?

We notice that on Windows (at least on Windows Server 2019), the compact call with the flag "deleteOld=true" active does not remove the old folder. There is not error message or exception in the log. The result is a new folder with a compacted database, but the old folder remains untouched.

### Relevant output and stacktrace

```shell
curl -X POST -i -u "admin:XXX" "http://localhost:3030/$/compact/repository?deleteOld=true"

...
18:48:18 INFO Admin :: [2] Compact dataset /repository
18:48:18 INFO Server :: Task : 1 : Compact
18:48:18 INFO Server :: [Task 1] starts : Compact
18:48:18 INFO Compact :: [2] >>>> Start compact /repository
18:48:18 DEBUG DatabaseOps :: Compact Data-0004 -> Data-0005

18:48:18 DEBUG BlockAccessMapped :: Segment:8388608 BlockSize=8192 blocksPerSegment=1024
18:48:18 DEBUG BlockAccessMapped :: Segment:8388608 BlockSize=8192 blocksPerSegment=1024
18:48:18 DEBUG BlockAccessMapped :: Segment: 0
18:48:18 DEBUG BlockAccessMapped :: Segment: 0
18:48:18 DEBUG TDB2StorageBuilder :: Triple table: SPO :: SPO,POS,OSP
18:48:18 DEBUG BlockAccessMapped :: Segment:8388608 BlockSize=8192 blocksPerSegment=1024
18:48:18 DEBUG BlockAccessMapped :: Segment:8388608 BlockSize=8192 blocksPerSegment=1024
18:48:18 DEBUG BlockAccessMapped :: Segment: 0
18:48:18 DEBUG BlockAccessMapped :: Segment: 0
18:48:18 DEBUG BlockAccessMapped :: Segment:8388608 BlockSize=8192 blocksPerSegment=1024
18:48:18 DEBUG BlockAccessMapped :: Segment:8388608 BlockSize=8192 blocksPerSegment=1024
18:48:18 DEBUG BlockAccessMapped :: Segment: 0
18:48:18 DEBUG BlockAccessMapped :: Segment: 0
18:48:18 DEBUG BlockAccessMapped :: Segment:8388608 BlockSize=8192 blocksPerSegment=1024
18:48:18 DEBUG BlockAccessMapped :: Segment:8388608 BlockSize=8192 blocksPerSegment=1024
18:48:18 DEBUG BlockAccessMapped :: Segment: 0
18:48:18 DEBUG BlockAccessMapped :: Segment: 0
18:48:18 DEBUG TDB2StorageBuilder :: Quad table: GSPO :: GSPO,GPOS,GOSP,POSG,OSPG,SPOG
18:48:18 DEBUG BlockAccessMapped :: Segment:8388608 BlockSize=8192 blocksPerSegment=1024
18:48:18 DEBUG BlockAccessMapped :: Segment:8388608 BlockSize=8192 blocksPerSegment=1024
18:48:18 DEBUG BlockAccessMapped :: Segment: 0
18:48:18 DEBUG BlockAccessMapped :: Segment: 0
18:48:18 DEBUG BlockAccessMapped :: Segment:8388608 BlockSize=8192 blocksPerSegment=1024
18:48:18 DEBUG BlockAccessMapped :: Segment:8388608 BlockSize=8192 blocksPerSegment=1024
18:48:18 DEBUG BlockAccessMapped :: Segment: 0
18:48:18 DEBUG BlockAccessMapped :: Segment: 0
18:48:18 DEBUG BlockAccessMapped :: Segment:8388608 BlockSize=8192 blocksPerSegment=1024
18:48:18 DEBUG BlockAccessMapped :: Segment:8388608 BlockSize=8192 blocksPerSegment=1024
18:48:18 DEBUG BlockAccessMapped :: Segment: 0
18:48:18 DEBUG BlockAccessMapped :: Segment: 0
18:48:19 DEBUG BlockAccessMapped :: Segment:8388608 BlockSize=8192 blocksPerSegment=1024
18:48:19 DEBUG BlockAccessMapped :: Segment:8388608 BlockSize=8192 blocksPerSegment=1024
18:48:19 DEBUG BlockAccessMapped :: Segment: 0
18:48:19 DEBUG BlockAccessMapped :: Segment: 0
18:48:19 DEBUG BlockAccessMapped :: Segment:8388608 BlockSize=8192 blocksPerSegment=1024
18:48:19 DEBUG BlockAccessMapped :: Segment:8388608 BlockSize=8192 blocksPerSegment=1024
18:48:19 DEBUG BlockAccessMapped :: Segment: 0
18:48:19 DEBUG BlockAccessMapped :: Segment: 0
18:48:19 DEBUG BlockAccessMapped :: Segment:8388608 BlockSize=8192 blocksPerSegment=1024
18:48:19 DEBUG BlockAccessMapped :: Segment:8388608 BlockSize=8192 blocksPerSegment=1024
18:48:19 DEBUG BlockAccessMapped :: Segment: 0
18:48:19 DEBUG BlockAccessMapped :: Segment: 0
18:48:19 DEBUG BlockAccessMapped :: Segment:8388608 BlockSize=8192 blocksPerSegment=1024
18:48:19 DEBUG BlockAccessMapped :: Segment:8388608 BlockSize=8192 blocksPerSegment=1024
18:48:19 DEBUG BlockAccessMapped :: Segment: 0
18:48:19 DEBUG BlockAccessMapped :: Segment: 0
18:48:19 DEBUG BlockAccessMapped :: Segment:8388608 BlockSize=8192 blocksPerSegment=1024
18:48:19 DEBUG BlockAccessMapped :: Segment:8388608 BlockSize=8192 blocksPerSegment=1024
18:48:19 DEBUG BlockAccessMapped :: Segment: 0
18:48:19 DEBUG BlockAccessMapped :: Segment: 0
18:48:19 DEBUG TDB2StorageBuilder :: Prefixes: GPU :: GPU
18:48:19 DEBUG LockMRSW :: Lock : pool-4-thread-1
18:48:19 DEBUG BlockAccessMapped :: Segment: 0
18:48:19 DEBUG BlockAccessMapped :: Segment: 0
18:48:19 DEBUG BlockAccessMapped :: Segment: 0
18:48:19 DEBUG BlockAccessMapped :: Segment: 0
18:48:19 DEBUG BlockAccessMapped :: Segment: 0
18:48:19 DEBUG BlockAccessMapped :: Segment: 0
18:48:19 DEBUG BlockAccessMapped :: Segment: 0
18:48:19 DEBUG BlockAccessMapped :: Segment: 0
18:48:20 DEBUG DatabaseOps :: Deleting old database after successful compaction (old db path='D:\data\fuseki\repository\Data-0004')...
18:48:20 INFO Compact :: [2] <<<< Finish compact /repository
18:48:20 INFO Server :: [Task 1] finishes : Compact
...
```

### Are you interested in making a pull request?

None

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the issue through the $/compact/repository endpoint with deleteOld=true on Windows and inspect the compaction path around the logged deletion of Data-0004. Trace why the old database remains after the successful compaction, then verify that the old folder is removed without errors while the new compacted folder remains usable.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
database, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.