kit-data-manager / kit-data-manager/wap-server
Indefinite blocking on RDF Transactions
- Dominant language
- Java
- Stars
- 4
- Forks
- 3
- PR merge metrics
- No merged PRs in 30d
Description
It looks like under certain circumstances due to I/O problems any request resulting in a transaction with the DB may get into an indefinite blocking state, waiting for the lock for the synchronized code portion which is never released.
```
"qtp1508059488-1352" #1352 prio=5 os_prio=0 cpu=174.41ms elapsed=248896.21s tid=0x00007f4400005e70 nid=0x863c waiting for monitor entry [0x00007f42e28dd000]
java.lang.Thread.State: BLOCKED (on object monitor)
at edu.kit.scc.dem.wapsrv.repository.TransactionRepository.doRdfTransaction(TransactionRepository.java:65)
- waiting to lock <0x0000000708973838> (a edu.kit.scc.dem.wapsrv.repository.jena.JenaRepository)
```
It is not exactly a deadlock, but there is likely an issue with the synchronized block here:
https://github.com/kit-data-manager/wap-server/blob/e5ca8572f4770514a862f952e85711bf42d8d933/src/main/java/edu/kit/scc/dem/wapsrv/repository/TransactionRepository.java#L63C1-L77C4
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the synchronized section in src/main/java/edu/kit/scc/dem/wapsrv/repository/TransactionRepository.java at lines 63–77, then compare it with the provided thread dump showing doRdfTransaction waiting for JenaRepository. Investigate the I/O-failure path and confirm that a failed transaction cannot leave later requests blocked indefinitely.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- database
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100