PasteOperation deadlock — Folia region thread bloqué indéfiniment #1

Open
opened 2026-06-04 17:05:23 +00:00 by wait4mi · 0 comments

Symptôme

Le serveur mc-creaclone freeze progressivement : les régions Folia cessent de ticker une à une. Le Folia Watchdog remonte des erreurs du type :

Tick region located in world 'world_nether' around chunk '[1084, -226]' has not responded in 460s

Dans le stacktrace, le thread est bloqué sur Semaphore.acquire() dans PasteOperation.acquireSlot() (ligne 630). Le sémaphore n'est jamais relâché → le thread scheduler de la région attend indéfiniment.

Le bug est cumulatif : plusieurs régions peuvent être affectées simultanément (Overworld + Nether observés). Une région Overworld était bloquée depuis 88h sans que le serveur ne crash.

Impact

Serveur injoinable, nécessite un restart manuel.

À investiguer

  • Condition exacte qui empêche le release() du sémaphore dans PasteOperation
  • Probablement une exception non catchée entre acquireSlot et le release correspondant → ajouter un try/finally
  • Reproduit sur mc-creaclone (preprod)

Références

  • fr.ekaii.litematica.paste.PasteOperation.acquireSlot (ligne 630)
  • fr.ekaii.litematica.paste.FoliaCompat.runOnRegion (lignes 58, 65)
## Symptôme Le serveur `mc-creaclone` freeze progressivement : les régions Folia cessent de ticker une à une. Le Folia Watchdog remonte des erreurs du type : ``` Tick region located in world 'world_nether' around chunk '[1084, -226]' has not responded in 460s ``` Dans le stacktrace, le thread est bloqué sur `Semaphore.acquire()` dans `PasteOperation.acquireSlot()` (ligne 630). Le sémaphore n'est jamais relâché → le thread scheduler de la région attend indéfiniment. Le bug est **cumulatif** : plusieurs régions peuvent être affectées simultanément (Overworld + Nether observés). Une région Overworld était bloquée depuis **88h** sans que le serveur ne crash. ## Impact Serveur injoinable, nécessite un restart manuel. ## À investiguer - Condition exacte qui empêche le `release()` du sémaphore dans `PasteOperation` - Probablement une exception non catchée entre `acquireSlot` et le `release` correspondant → ajouter un `try/finally` - Reproduit sur `mc-creaclone` (preprod) ## Références - `fr.ekaii.litematica.paste.PasteOperation.acquireSlot` (ligne 630) - `fr.ekaii.litematica.paste.FoliaCompat.runOnRegion` (lignes 58, 65)
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
admin_ekaii/litematica-folia-ekaii#1
No description provided.