WorldEdit Version
7.4.3-beta-01
Platform Version
Fabric-Official(7.4.3-beta-01+80c6d6122)
Confirmations
Bug Description
WorldEdit-RecursiveDirectoryWatcher is not being stop and not a daemon thread, therefore it is preventing jvm from exiting even though main thread exited.
"WorldEdit-RecursiveDirectoryWatcher" #110 [21606] prio=8 os_prio=0 cpu=0.35ms elapsed=194.61s tid=0x0000713bf83aa730 nid=21606 waiting on condition [0x00007174ab9fe000]
java.lang.Thread.State: WAITING (parking)
at jdk.internal.misc.Unsafe.park(java.base@25.0.2/Native Method)
- parking to wait for <0x000000068a391be0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(java.base@25.0.2/LockSupport.java:369)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@25.0.2/AbstractQueuedSynchronizer.java:520)
at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@25.0.2/ForkJoinPool.java:4364)
at java.util.concurrent.ForkJoinPool.managedBlock(java.base@25.0.2/ForkJoinPool.java:4310)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@25.0.2/AbstractQueuedSynchronizer.java:1752)
at java.util.concurrent.LinkedBlockingDeque.takeFirst(java.base@25.0.2/LinkedBlockingDeque.java:486)
at java.util.concurrent.LinkedBlockingDeque.take(java.base@25.0.2/LinkedBlockingDeque.java:680)
at sun.nio.fs.AbstractWatchService.take(java.base@25.0.2/AbstractWatchService.java:118)
at com.sk89q.worldedit.internal.util.RecursiveDirectoryWatcher.lambda$start$0(RecursiveDirectoryWatcher.java:173)
at com.sk89q.worldedit.internal.util.RecursiveDirectoryWatcher$$Lambda/0x000000003d0b77c8.run(Unknown Source)
at java.lang.Thread.runWith(java.base@25.0.2/Thread.java:1487)
at java.lang.Thread.run(java.base@25.0.2/Thread.java:1474)
× minecraft@fabric-latest-redstone.service - Minecraft Fabric Server (26.1) - fabric-latest-redstone
Loaded: loaded (/etc/systemd/system/minecraft@fabric-latest-redstone.service; disabled; preset: enabled)
Active: failed (Result: timeout) since Wed 2026-04-22 11:30:47 +07; 8min ago
Duration: 3min 11.777s
TriggeredBy: ○ minecraft@fabric-latest-redstone.socket
Process: 21488 ExecStart=/lib/jvm/graalvm-jdk-25/bin/java -XX:+UnlockExperimentalVMOptions -XX:+UnlockDiagnosticVMOptions -XX:+AlwaysActAs>
Process: 21683 ExecStop=/bin/sh -c printf "stop
" > /run/minecraft/fabric-latest-redstone.stdin (code=exited, status=0/SUCCESS)
Main PID: 21488 (code=killed, signal=KILL)
CPU: 1min 54.573s
Apr 22 11:29:17 Kris-MSI-s1 java[21488]: [11:29:17] [Server thread/INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved
Apr 22 11:29:17 Kris-MSI-s1 java[21488]: [11:29:17] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved
Apr 22 11:29:17 Kris-MSI-s1 java[21488]: [11:29:17] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved
Apr 22 11:29:17 Kris-MSI-s1 java[21488]: [11:29:17] [Server thread/INFO]: ThreadedAnvilChunkStorage: All dimensions are saved
Apr 22 11:30:47 Kris-MSI-s1 systemd[1]: minecraft@fabric-latest-redstone.service: State 'stop-sigterm' timed out. Killing.
Apr 22 11:30:47 Kris-MSI-s1 systemd[1]: minecraft@fabric-latest-redstone.service: Killing process 21488 (java) with signal SIGKILL.
Apr 22 11:30:47 Kris-MSI-s1 systemd[1]: minecraft@fabric-latest-redstone.service: Main process exited, code=killed, status=9/KILL
Apr 22 11:30:47 Kris-MSI-s1 systemd[1]: minecraft@fabric-latest-redstone.service: Failed with result 'timeout'.
Apr 22 11:30:47 Kris-MSI-s1 systemd[1]: Stopped minecraft@fabric-latest-redstone.service - Minecraft Fabric Server (26.1) - fabric-latest-reds>
Apr 22 11:30:47 Kris-MSI-s1 systemd[1]: minecraft@fabric-latest-redstone.service: Consumed 1min 54.573s CPU time.
Expected Behavior
jvm exits after stop command on the server
Reproduction Steps
- run
stop command in the server
- wait for it (I mean forever, jvm won't exit unless sigkill)
Anything Else?
No response
WorldEdit Version
7.4.3-beta-01
Platform Version
Fabric-Official(7.4.3-beta-01+80c6d6122)
Confirmations
Bug Description
WorldEdit-RecursiveDirectoryWatcher is not being stop and not a daemon thread, therefore it is preventing jvm from exiting even though main thread exited.
Expected Behavior
jvm exits after
stopcommand on the serverReproduction Steps
stopcommand in the serverAnything Else?
No response