kit-data-manager / kit-data-manager/wap-server

Indefinite blocking on RDF Transactions

Open
#56 1 comment 0 reactions 0 assignees View on GitHub
bug
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.