Environment
- SimpleClaimSystem 1.13.1
- Paper 26.2-121
- Java 25.0.3
- Linux, Modrinth hosting
- Relevant other plugin: BattleTracker 4.0.2-SNAPSHOT
Observed behaviour
During several server freezes, watchdog dumps showed the main server thread waiting on a CompletableFuture inside claim tab completion:
CompletableFuture.get
fr.xyness.SCS.Commands.ClaimCommand.onTabComplete(ClaimCommand.java:141)
Inspection of our installed SimpleClaimSystem JAR shows that this method submits work through CompletableFuture.supplyAsync without an explicit executor, then waits using get().
In the same dumps, shared ForkJoinPool.commonPool workers were waiting for BattleTracker database connections.
Scope of this report
We are NOT claiming SimpleClaimSystem caused the database stall.
The concern is that tab completion synchronously waits for shared background work, allowing a stall elsewhere to block the main server thread.
These are production observations. We do not yet have a minimal standalone reproduction, and normal tab completion does not consistently trigger the problem.
Expected behaviour
If background suggestions are unavailable or delayed, tab completion should return safely without indefinitely blocking server ticks—for example, using cached suggestions or a non-blocking approach.
Current workaround
We disabled BattleTracker and the arena plugins while keeping SimpleClaimSystem enabled. Initial gameplay has been stable, but this is not a controlled single-plugin test or proof of permanent resolution.
Additional context
Some incidents occurred before we applied a local BattleTracker connection-cleanup patch; others occurred afterward. SimpleClaimSystem itself was not modified. The BattleTracker patch did not fully resolve the freezes.
Could you confirm whether this blocking tab-completion path is expected in 1.13.1, whether a newer version addresses it, and what additional diagnostics would help?
We can provide relevant watchdog excerpts if needed. Thank you.
Environment
Observed behaviour
During several server freezes, watchdog dumps showed the main server thread waiting on a CompletableFuture inside claim tab completion:
Inspection of our installed SimpleClaimSystem JAR shows that this method submits work through CompletableFuture.supplyAsync without an explicit executor, then waits using get().
In the same dumps, shared ForkJoinPool.commonPool workers were waiting for BattleTracker database connections.
Scope of this report
We are NOT claiming SimpleClaimSystem caused the database stall.
The concern is that tab completion synchronously waits for shared background work, allowing a stall elsewhere to block the main server thread.
These are production observations. We do not yet have a minimal standalone reproduction, and normal tab completion does not consistently trigger the problem.
Expected behaviour
If background suggestions are unavailable or delayed, tab completion should return safely without indefinitely blocking server ticks—for example, using cached suggestions or a non-blocking approach.
Current workaround
We disabled BattleTracker and the arena plugins while keeping SimpleClaimSystem enabled. Initial gameplay has been stable, but this is not a controlled single-plugin test or proof of permanent resolution.
Additional context
Some incidents occurred before we applied a local BattleTracker connection-cleanup patch; others occurred afterward. SimpleClaimSystem itself was not modified. The BattleTracker patch did not fully resolve the freezes.
Could you confirm whether this blocking tab-completion path is expected in 1.13.1, whether a newer version addresses it, and what additional diagnostics would help?
We can provide relevant watchdog excerpts if needed. Thank you.