Fractal Softworks Forum

Please login or register.

Login with username, password and session length

Author Topic: Random Chance of Game Freeze/Hang During Interactions  (Read 166 times)

Tranquility

  • Commander
  • ***
  • Posts: 165
    • View Profile
Random Chance of Game Freeze/Hang During Interactions
« on: April 10, 2024, 10:33:01 AM »

Whenever I interact with what seems to basically anything at this point (interaction dialogs, opening/navigating the Gate travel UI, entering combat, etc.), there's a tiny, seemingly-random chance that my game would instantly freeze and hang, forcing me to restart the game and lose all unsaved progress. I've had this happen both within 30 minutes after starting the game and after several hours in a single save session, so playtime does not seem to be a factor so far. I'm currently running Starsector 0.97a-RC11 with Himemiko's Mikohime Java 23, and the modlist and the full thread dump from the latest hang is provided below (starsector.log didn't appear to have anything pointing to this hang, unfortunately):

Modlist from enabled_mods.json
{"enabledMods": [
  "afleettestingmod",
  "a personalized mod",
  "adversary",
  "ruddygreat_ArmourVisualiser",
  "HMI_brighton",
  "chatter",
  "timid_commissioned_hull_mods",
  "lw_console",
  "customizablestarsystems",
  "dmodservices",
  "DetailedCombatResults",
  "exoticatechnologies",
  "fleet_journal",
  "sun_flux_reticle",
  "GrandColonies",
  "HMI_SV",
  "HMI",
  "illustrated_entities",
  "IndEvo",
  "Imperium",
  "timid_xiv",
  "lw_lazylib",
  "lunalib",
  "MagicLib",
  "nexerelin",
  "sun_nomadic_survival",
  "officerExtension",
  "assortment_of_things",
  "secretsofthefrontier",
  "swp",
  "speedUp",
  "$tarmapR",
  "sun_starship_legends",
  "System_Marker",
  "knights_of_ludd",
  "timid_tmi",
  "underworld",
  "US",
  "vic",
  "whichmod",
  "whichtmi",
  "audio_plus",
  "shaderLib",
  "Rouge_Redstar",
  "ShipCatalogVariantEditor"
]}
[close]

Full thread dump from VisualVM
2024-04-09 23:05:35
Full thread dump OpenJDK 64-Bit Server VM (23-beta+7-ea mixed mode, sharing):

Threads class SMR info:
_java_thread_list=0x000001bd0a1d4340, length=41, elements={
0x000001bcacc98e70, 0x000001bcacc9b6a0, 0x000001bcacc9cd20, 0x000001bcacc9d390,
0x000001bcacc9de00, 0x000001bcacc9e470, 0x000001bcb96a40a0, 0x000001bcb96a4760,
0x000001bcb96a4e20, 0x000001bcb96b1500, 0x000001bcb96b5be0, 0x000001bcb991e1f0,
0x000001bcb991fe40, 0x000001bc802173b0, 0x000001bc80322510, 0x000001bc9294ddd0,
0x000001bc8af0c230, 0x000001bc8af0d5e0, 0x000001bc804445c0, 0x000001bc80444c50,
0x000001bc804452e0, 0x000001bc804473b0, 0x000001bc80440420, 0x000001bc80441140,
0x000001bc80442b80, 0x000001bc80446000, 0x000001bc80445970, 0x000001bc80443210,
0x000001bc80446690, 0x000001bc804417d0, 0x000001bc80447a40, 0x000001bc80443f30,
0x000001bc80441e60, 0x000001bc8af0c8c0, 0x000001bc8af0ae80, 0x000001bd2a7d6200,
0x000001be404f5760, 0x000001be404fd410, 0x000001be404f6480, 0x000001be405015b0,
0x000001be404fe7c0
}

"Reference Handler" #18 [9844] daemon prio=10 os_prio=15 cpu=1500.00ms elapsed=9563.74s tid=0x000001bcacc98e70 nid=9844 waiting on condition  [0x0000001ff00ff000]
   java.lang.Thread.State: RUNNABLE
   at java.lang.ref.Reference.waitForReferencePendingList(java.base@23-beta/Native Method)
   at java.lang.ref.Reference.processPendingReferences(java.base@23-beta/Reference.java:246)
   at java.lang.ref.Reference$ReferenceHandler.run(java.base@23-beta/Reference.java:208)

   Locked ownable synchronizers:
   - None

"Finalizer" #19 [10224] daemon prio=8 os_prio=2 cpu=156.25ms elapsed=9563.74s tid=0x000001bcacc9b6a0 nid=10224 in Object.wait()  [0x0000001ff04ff000]
   java.lang.Thread.State: WAITING (on object monitor)
   at java.lang.Object.wait0(java.base@23-beta/Native Method)
   - waiting on <0x00000007ff101098> (a java.lang.ref.NativeReferenceQueue$Lock)
   at java.lang.Object.wait(java.base@23-beta/Object.java:375)
   at java.lang.Object.wait(java.base@23-beta/Object.java:348)
   at java.lang.ref.NativeReferenceQueue.await(java.base@23-beta/NativeReferenceQueue.java:48)
   at java.lang.ref.ReferenceQueue.remove0(java.base@23-beta/ReferenceQueue.java:158)
   at java.lang.ref.NativeReferenceQueue.remove(java.base@23-beta/NativeReferenceQueue.java:89)
   - locked <0x00000007ff101098> (a java.lang.ref.NativeReferenceQueue$Lock)
   at java.lang.ref.Finalizer$FinalizerThread.run(java.base@23-beta/Finalizer.java:173)

   Locked ownable synchronizers:
   - None

"Signal Dispatcher" #20 [11168] daemon prio=9 os_prio=2 cpu=15.62ms elapsed=9563.74s tid=0x000001bcacc9cd20 nid=11168 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
   - None

"Attach Listener" #21 [14320] daemon prio=5 os_prio=2 cpu=31.25ms elapsed=9563.74s tid=0x000001bcacc9d390 nid=14320 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
   - None

"Service Thread" #22 [6676] daemon prio=9 os_prio=0 cpu=125.00ms elapsed=9563.74s tid=0x000001bcacc9de00 nid=6676 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
   - None

"Monitor Deflation Thread" #23 [9756] daemon prio=9 os_prio=0 cpu=1953.12ms elapsed=9563.74s tid=0x000001bcacc9e470 nid=9756 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
   - None

"C2 CompilerThread0" #24 [10052] daemon prio=9 os_prio=15 cpu=185046.88ms elapsed=9563.74s tid=0x000001bcb96a40a0 nid=10052 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
   No compile task

   Locked ownable synchronizers:
   - None

"C2 CompilerThread1" #25 [10916] daemon prio=9 os_prio=15 cpu=185781.25ms elapsed=9563.74s tid=0x000001bcb96a4760 nid=10916 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
   No compile task

   Locked ownable synchronizers:
   - None

"C2 CompilerThread2" #26 [10096] daemon prio=9 os_prio=15 cpu=192328.12ms elapsed=9563.74s tid=0x000001bcb96a4e20 nid=10096 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
   No compile task

   Locked ownable synchronizers:
   - None

"C1 CompilerThread0" #27 [8456] daemon prio=9 os_prio=15 cpu=36750.00ms elapsed=9563.74s tid=0x000001bcb96b1500 nid=8456 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
   No compile task

   Locked ownable synchronizers:
   - None

"StringDedupThread" #28 [4736] daemon prio=5 os_prio=0 cpu=3609.38ms elapsed=9563.74s tid=0x000001bcb96b5be0 nid=4736 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
   - None

"Common-Cleaner" #29 [14028] daemon prio=8 os_prio=2 cpu=125.00ms elapsed=9563.71s tid=0x000001bcb991e1f0 nid=14028 waiting on condition  [0x0000001ff20ff000]
   java.lang.Thread.State: TIMED_WAITING (parking)
   at jdk.internal.misc.Unsafe.park(java.base@23-beta/Native Method)
   - parking to wait for  <0x00000007ff102a78> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   at java.util.concurrent.locks.LockSupport.parkNanos(java.base@23-beta/LockSupport.java:269)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23-beta/AbstractQueuedSynchronizer.java:1847)
   at java.lang.ref.ReferenceQueue.await(java.base@23-beta/ReferenceQueue.java:71)
   at java.lang.ref.ReferenceQueue.remove0(java.base@23-beta/ReferenceQueue.java:143)
   at java.lang.ref.ReferenceQueue.remove(java.base@23-beta/ReferenceQueue.java:218)
   at jdk.internal.ref.CleanerImpl.run(java.base@23-beta/CleanerImpl.java:140)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)
   at jdk.internal.misc.InnocuousThread.run(java.base@23-beta/InnocuousThread.java:186)

   Locked ownable synchronizers:
   - None

"Notification Thread" #30 [11492] daemon prio=9 os_prio=0 cpu=0.00ms elapsed=9563.71s tid=0x000001bcb991fe40 nid=11492 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
   - None

"Java2D Disposer" #34 [9664] daemon prio=10 os_prio=15 cpu=15.62ms elapsed=9562.88s tid=0x000001bc802173b0 nid=9664 waiting on condition  [0x0000001ff29fe000]
   java.lang.Thread.State: WAITING (parking)
   at jdk.internal.misc.Unsafe.park(java.base@23-beta/Native Method)
   - parking to wait for  <0x00000007ff100bb0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   at java.util.concurrent.locks.LockSupport.park(java.base@23-beta/LockSupport.java:371)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23-beta/AbstractQueuedSynchronizer.java:519)
   at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23-beta/ForkJoinPool.java:4013)
   at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23-beta/ForkJoinPool.java:3961)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23-beta/AbstractQueuedSynchronizer.java:1707)
   at java.lang.ref.ReferenceQueue.await(java.base@23-beta/ReferenceQueue.java:67)
   at java.lang.ref.ReferenceQueue.remove0(java.base@23-beta/ReferenceQueue.java:158)
   at java.lang.ref.ReferenceQueue.remove(java.base@23-beta/ReferenceQueue.java:234)
   at sun.java2d.Disposer.run(java.desktop@23-beta/Disposer.java:145)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"AWT-Windows" #36 [12520] daemon prio=6 os_prio=1 cpu=0.00ms elapsed=9562.88s tid=0x000001bc80322510 nid=12520 runnable  [0x0000001ff31ff000]
   java.lang.Thread.State: RUNNABLE
   at sun.awt.windows.WToolkit.eventLoop(java.desktop@23-beta/Native Method)
   at sun.awt.windows.WToolkit.run(java.desktop@23-beta/WToolkit.java:297)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"DestroyJavaVM" #39 [4900] prio=5 os_prio=0 cpu=890.62ms elapsed=9562.80s tid=0x000001bc9294ddd0 nid=4900 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
   - None

"Thread-2" #40 [10196] prio=5 os_prio=0 cpu=7435828.12ms elapsed=9559.94s tid=0x000001bc8af0c230 nid=10196 waiting for monitor entry  [0x0000001ff2dfe000]
   java.lang.Thread.State: BLOCKED (on object monitor)
   at sound.OooO.o00000(Unknown Source)
   - waiting to lock <0x00000007fbb00028> (a sound.OooO)
   at com.fs.starfarer.String.K.Ö00000(Unknown Source)
   at com.fs.starfarer.String.return.o00000(Unknown Source)
   - locked <0x00000007fe406088> (a java.lang.Class for com.fs.starfarer.String.return)
   at com.fs.starfarer.campaign.CampaignState.advance(Unknown Source)
   at com.fs.starfarer.BaseGameState.traverse(Unknown Source)
   at com.fs.state.AppDriver.begin(Unknown Source)
   at com.fs.starfarer.combat.CombatMain.main(Unknown Source)
   at com.fs.starfarer.StarfarerLauncher.super(Unknown Source)
   at com.fs.starfarer.StarfarerLauncher$1.run(Unknown Source)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"Thread-3" #41 [9200] daemon prio=5 os_prio=0 cpu=0.00ms elapsed=9559.87s tid=0x000001bc8af0d5e0 nid=9200 waiting on condition  [0x0000001ff3ffe000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
   at java.lang.Thread.sleepNanos0(java.base@23-beta/Native Method)
   at java.lang.Thread.sleepNanos(java.base@23-beta/Thread.java:496)
   at java.lang.Thread.sleep(java.base@23-beta/Thread.java:527)
   at com.fs.starfarer.combat.CombatMain$1.run(Unknown Source)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"Thread-6" #45 [4492] prio=5 os_prio=0 cpu=20890.62ms elapsed=9547.32s tid=0x000001bc804445c0 nid=4492 in Object.wait()  [0x0000001ff46fe000]
   java.lang.Thread.State: WAITING (on object monitor)
   at java.lang.Object.wait0(java.base@23-beta/Native Method)
   - waiting on <0x00000007feb40b00> (a java.lang.Class for sound.return)
   at java.lang.Object.wait(java.base@23-beta/Object.java:375)
   at java.lang.Object.wait(java.base@23-beta/Object.java:348)
   at sound.return.Ô00000(Unknown Source)
   - locked <0x00000007feb40b00> (a java.lang.Class for sound.return)
   at sound.return.<init>(Unknown Source)
   at sound.o0oO.Ö00000(Unknown Source)
   at sound.o0oO.Ó00000(Unknown Source)
   at sound.O.Ô00000(Unknown Source)
   at sound.OooO$2.run(Unknown Source)
   - locked <0x00000007fbb00028> (a sound.OooO)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"Thread-VC-1" #50 [6644] daemon prio=3 os_prio=-1 cpu=31.25ms elapsed=9512.06s tid=0x000001bc80444c50 nid=6644 waiting on condition  [0x0000001ff53fe000]
   java.lang.Thread.State: WAITING (parking)
   at jdk.internal.misc.Unsafe.park(java.base@23-beta/Native Method)
   - parking to wait for  <0x00000007feb008c8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   at java.util.concurrent.locks.LockSupport.park(java.base@23-beta/LockSupport.java:371)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23-beta/AbstractQueuedSynchronizer.java:519)
   at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23-beta/ForkJoinPool.java:4013)
   at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23-beta/ForkJoinPool.java:3961)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23-beta/AbstractQueuedSynchronizer.java:1707)
   at java.util.concurrent.LinkedBlockingQueue.take(java.base@23-beta/LinkedBlockingQueue.java:435)
   at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@23-beta/ThreadPoolExecutor.java:1070)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23-beta/ThreadPoolExecutor.java:1130)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23-beta/ThreadPoolExecutor.java:642)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"Thread-VC-2" #51 [4968] daemon prio=3 os_prio=-1 cpu=31.25ms elapsed=9512.06s tid=0x000001bc804452e0 nid=4968 waiting on condition  [0x0000001ff58ff000]
   java.lang.Thread.State: WAITING (parking)
   at jdk.internal.misc.Unsafe.park(java.base@23-beta/Native Method)
   - parking to wait for  <0x00000007feb008c8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   at java.util.concurrent.locks.LockSupport.park(java.base@23-beta/LockSupport.java:371)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23-beta/AbstractQueuedSynchronizer.java:519)
   at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23-beta/ForkJoinPool.java:4013)
   at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23-beta/ForkJoinPool.java:3961)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23-beta/AbstractQueuedSynchronizer.java:1707)
   at java.util.concurrent.LinkedBlockingQueue.take(java.base@23-beta/LinkedBlockingQueue.java:435)
   at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@23-beta/ThreadPoolExecutor.java:1070)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23-beta/ThreadPoolExecutor.java:1130)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23-beta/ThreadPoolExecutor.java:642)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"Thread-VC-3" #52 [13600] daemon prio=3 os_prio=-1 cpu=109.38ms elapsed=9512.06s tid=0x000001bc804473b0 nid=13600 waiting on condition  [0x0000001ff5cfe000]
   java.lang.Thread.State: WAITING (parking)
   at jdk.internal.misc.Unsafe.park(java.base@23-beta/Native Method)
   - parking to wait for  <0x00000007feb008c8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   at java.util.concurrent.locks.LockSupport.park(java.base@23-beta/LockSupport.java:371)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23-beta/AbstractQueuedSynchronizer.java:519)
   at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23-beta/ForkJoinPool.java:4013)
   at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23-beta/ForkJoinPool.java:3961)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23-beta/AbstractQueuedSynchronizer.java:1707)
   at java.util.concurrent.LinkedBlockingQueue.take(java.base@23-beta/LinkedBlockingQueue.java:435)
   at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@23-beta/ThreadPoolExecutor.java:1070)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23-beta/ThreadPoolExecutor.java:1130)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23-beta/ThreadPoolExecutor.java:642)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"Thread-VC-4" #53 [12480] daemon prio=3 os_prio=-1 cpu=78.12ms elapsed=9512.06s tid=0x000001bc80440420 nid=12480 waiting on condition  [0x0000001ff62fe000]
   java.lang.Thread.State: WAITING (parking)
   at jdk.internal.misc.Unsafe.park(java.base@23-beta/Native Method)
   - parking to wait for  <0x00000007feb008c8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   at java.util.concurrent.locks.LockSupport.park(java.base@23-beta/LockSupport.java:371)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23-beta/AbstractQueuedSynchronizer.java:519)
   at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23-beta/ForkJoinPool.java:4013)
   at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23-beta/ForkJoinPool.java:3961)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23-beta/AbstractQueuedSynchronizer.java:1707)
   at java.util.concurrent.LinkedBlockingQueue.take(java.base@23-beta/LinkedBlockingQueue.java:435)
   at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@23-beta/ThreadPoolExecutor.java:1070)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23-beta/ThreadPoolExecutor.java:1130)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23-beta/ThreadPoolExecutor.java:642)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"Thread-VC-5" #54 [6196] daemon prio=3 os_prio=-1 cpu=93.75ms elapsed=9512.06s tid=0x000001bc80441140 nid=6196 waiting on condition  [0x0000001ff66ff000]
   java.lang.Thread.State: WAITING (parking)
   at jdk.internal.misc.Unsafe.park(java.base@23-beta/Native Method)
   - parking to wait for  <0x00000007feb008c8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   at java.util.concurrent.locks.LockSupport.park(java.base@23-beta/LockSupport.java:371)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23-beta/AbstractQueuedSynchronizer.java:519)
   at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23-beta/ForkJoinPool.java:4013)
   at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23-beta/ForkJoinPool.java:3961)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23-beta/AbstractQueuedSynchronizer.java:1707)
   at java.util.concurrent.LinkedBlockingQueue.take(java.base@23-beta/LinkedBlockingQueue.java:435)
   at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@23-beta/ThreadPoolExecutor.java:1070)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23-beta/ThreadPoolExecutor.java:1130)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23-beta/ThreadPoolExecutor.java:642)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"Thread-VC-6" #55 [1824] daemon prio=3 os_prio=-1 cpu=78.12ms elapsed=9512.06s tid=0x000001bc80442b80 nid=1824 waiting on condition  [0x0000001ff6aff000]
   java.lang.Thread.State: WAITING (parking)
   at jdk.internal.misc.Unsafe.park(java.base@23-beta/Native Method)
   - parking to wait for  <0x00000007feb008c8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   at java.util.concurrent.locks.LockSupport.park(java.base@23-beta/LockSupport.java:371)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23-beta/AbstractQueuedSynchronizer.java:519)
   at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23-beta/ForkJoinPool.java:4013)
   at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23-beta/ForkJoinPool.java:3961)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23-beta/AbstractQueuedSynchronizer.java:1707)
   at java.util.concurrent.LinkedBlockingQueue.take(java.base@23-beta/LinkedBlockingQueue.java:435)
   at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@23-beta/ThreadPoolExecutor.java:1070)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23-beta/ThreadPoolExecutor.java:1130)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23-beta/ThreadPoolExecutor.java:642)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"Thread-VC-7" #56 [6464] daemon prio=3 os_prio=-1 cpu=78.12ms elapsed=9512.06s tid=0x000001bc80446000 nid=6464 waiting on condition  [0x0000001ff6eff000]
   java.lang.Thread.State: WAITING (parking)
   at jdk.internal.misc.Unsafe.park(java.base@23-beta/Native Method)
   - parking to wait for  <0x00000007feb008c8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   at java.util.concurrent.locks.LockSupport.park(java.base@23-beta/LockSupport.java:371)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23-beta/AbstractQueuedSynchronizer.java:519)
   at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23-beta/ForkJoinPool.java:4013)
   at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23-beta/ForkJoinPool.java:3961)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23-beta/AbstractQueuedSynchronizer.java:1707)
   at java.util.concurrent.LinkedBlockingQueue.take(java.base@23-beta/LinkedBlockingQueue.java:435)
   at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@23-beta/ThreadPoolExecutor.java:1070)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23-beta/ThreadPoolExecutor.java:1130)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23-beta/ThreadPoolExecutor.java:642)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"Thread-VC-8" #57 [11960] daemon prio=3 os_prio=-1 cpu=78.12ms elapsed=9512.06s tid=0x000001bc80445970 nid=11960 waiting on condition  [0x0000001ff72fe000]
   java.lang.Thread.State: WAITING (parking)
   at jdk.internal.misc.Unsafe.park(java.base@23-beta/Native Method)
   - parking to wait for  <0x00000007feb008c8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   at java.util.concurrent.locks.LockSupport.park(java.base@23-beta/LockSupport.java:371)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23-beta/AbstractQueuedSynchronizer.java:519)
   at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23-beta/ForkJoinPool.java:4013)
   at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23-beta/ForkJoinPool.java:3961)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23-beta/AbstractQueuedSynchronizer.java:1707)
   at java.util.concurrent.LinkedBlockingQueue.take(java.base@23-beta/LinkedBlockingQueue.java:435)
   at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@23-beta/ThreadPoolExecutor.java:1070)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23-beta/ThreadPoolExecutor.java:1130)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23-beta/ThreadPoolExecutor.java:642)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"Thread-VC-1" #59 [13440] daemon prio=3 os_prio=-1 cpu=78.12ms elapsed=9511.89s tid=0x000001bc80443210 nid=13440 waiting on condition  [0x0000001ff7afe000]
   java.lang.Thread.State: WAITING (parking)
   at jdk.internal.misc.Unsafe.park(java.base@23-beta/Native Method)
   - parking to wait for  <0x00000007feb01488> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   at java.util.concurrent.locks.LockSupport.park(java.base@23-beta/LockSupport.java:371)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23-beta/AbstractQueuedSynchronizer.java:519)
   at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23-beta/ForkJoinPool.java:4013)
   at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23-beta/ForkJoinPool.java:3961)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23-beta/AbstractQueuedSynchronizer.java:1707)
   at java.util.concurrent.LinkedBlockingQueue.take(java.base@23-beta/LinkedBlockingQueue.java:435)
   at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@23-beta/ThreadPoolExecutor.java:1070)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23-beta/ThreadPoolExecutor.java:1130)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23-beta/ThreadPoolExecutor.java:642)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"Thread-VC-2" #60 [12768] daemon prio=3 os_prio=-1 cpu=93.75ms elapsed=9511.89s tid=0x000001bc80446690 nid=12768 waiting on condition  [0x0000001ff7efe000]
   java.lang.Thread.State: WAITING (parking)
   at jdk.internal.misc.Unsafe.park(java.base@23-beta/Native Method)
   - parking to wait for  <0x00000007feb01488> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   at java.util.concurrent.locks.LockSupport.park(java.base@23-beta/LockSupport.java:371)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23-beta/AbstractQueuedSynchronizer.java:519)
   at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23-beta/ForkJoinPool.java:4013)
   at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23-beta/ForkJoinPool.java:3961)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23-beta/AbstractQueuedSynchronizer.java:1707)
   at java.util.concurrent.LinkedBlockingQueue.take(java.base@23-beta/LinkedBlockingQueue.java:435)
   at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@23-beta/ThreadPoolExecutor.java:1070)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23-beta/ThreadPoolExecutor.java:1130)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23-beta/ThreadPoolExecutor.java:642)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"Thread-VC-3" #61 [11736] daemon prio=3 os_prio=-1 cpu=31.25ms elapsed=9511.89s tid=0x000001bc804417d0 nid=11736 waiting on condition  [0x0000001ff82fe000]
   java.lang.Thread.State: WAITING (parking)
   at jdk.internal.misc.Unsafe.park(java.base@23-beta/Native Method)
   - parking to wait for  <0x00000007feb01488> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   at java.util.concurrent.locks.LockSupport.park(java.base@23-beta/LockSupport.java:371)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23-beta/AbstractQueuedSynchronizer.java:519)
   at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23-beta/ForkJoinPool.java:4013)
   at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23-beta/ForkJoinPool.java:3961)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23-beta/AbstractQueuedSynchronizer.java:1707)
   at java.util.concurrent.LinkedBlockingQueue.take(java.base@23-beta/LinkedBlockingQueue.java:435)
   at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@23-beta/ThreadPoolExecutor.java:1070)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23-beta/ThreadPoolExecutor.java:1130)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23-beta/ThreadPoolExecutor.java:642)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"Thread-VC-4" #62 [9852] daemon prio=3 os_prio=-1 cpu=78.12ms elapsed=9511.89s tid=0x000001bc80447a40 nid=9852 waiting on condition  [0x0000001ff86fe000]
   java.lang.Thread.State: WAITING (parking)
   at jdk.internal.misc.Unsafe.park(java.base@23-beta/Native Method)
   - parking to wait for  <0x00000007feb01488> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   at java.util.concurrent.locks.LockSupport.park(java.base@23-beta/LockSupport.java:371)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23-beta/AbstractQueuedSynchronizer.java:519)
   at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23-beta/ForkJoinPool.java:4013)
   at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23-beta/ForkJoinPool.java:3961)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23-beta/AbstractQueuedSynchronizer.java:1707)
   at java.util.concurrent.LinkedBlockingQueue.take(java.base@23-beta/LinkedBlockingQueue.java:435)
   at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@23-beta/ThreadPoolExecutor.java:1070)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23-beta/ThreadPoolExecutor.java:1130)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23-beta/ThreadPoolExecutor.java:642)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"Thread-VC-5" #63 [10692] daemon prio=3 os_prio=-1 cpu=62.50ms elapsed=9511.89s tid=0x000001bc80443f30 nid=10692 waiting on condition  [0x0000001ff8afe000]
   java.lang.Thread.State: WAITING (parking)
   at jdk.internal.misc.Unsafe.park(java.base@23-beta/Native Method)
   - parking to wait for  <0x00000007feb01488> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   at java.util.concurrent.locks.LockSupport.park(java.base@23-beta/LockSupport.java:371)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23-beta/AbstractQueuedSynchronizer.java:519)
   at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23-beta/ForkJoinPool.java:4013)
   at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23-beta/ForkJoinPool.java:3961)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23-beta/AbstractQueuedSynchronizer.java:1707)
   at java.util.concurrent.LinkedBlockingQueue.take(java.base@23-beta/LinkedBlockingQueue.java:435)
   at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@23-beta/ThreadPoolExecutor.java:1070)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23-beta/ThreadPoolExecutor.java:1130)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23-beta/ThreadPoolExecutor.java:642)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"Thread-VC-6" #64 [8460] daemon prio=3 os_prio=-1 cpu=218.75ms elapsed=9511.89s tid=0x000001bc80441e60 nid=8460 waiting on condition  [0x0000001ff8eff000]
   java.lang.Thread.State: WAITING (parking)
   at jdk.internal.misc.Unsafe.park(java.base@23-beta/Native Method)
   - parking to wait for  <0x00000007feb01488> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   at java.util.concurrent.locks.LockSupport.park(java.base@23-beta/LockSupport.java:371)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23-beta/AbstractQueuedSynchronizer.java:519)
   at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23-beta/ForkJoinPool.java:4013)
   at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23-beta/ForkJoinPool.java:3961)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23-beta/AbstractQueuedSynchronizer.java:1707)
   at java.util.concurrent.LinkedBlockingQueue.take(java.base@23-beta/LinkedBlockingQueue.java:435)
   at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@23-beta/ThreadPoolExecutor.java:1070)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23-beta/ThreadPoolExecutor.java:1130)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23-beta/ThreadPoolExecutor.java:642)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"Thread-VC-7" #65 [10172] daemon prio=3 os_prio=-1 cpu=62.50ms elapsed=9511.89s tid=0x000001bc8af0c8c0 nid=10172 waiting on condition  [0x0000001ff92ff000]
   java.lang.Thread.State: WAITING (parking)
   at jdk.internal.misc.Unsafe.park(java.base@23-beta/Native Method)
   - parking to wait for  <0x00000007feb01488> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   at java.util.concurrent.locks.LockSupport.park(java.base@23-beta/LockSupport.java:371)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23-beta/AbstractQueuedSynchronizer.java:519)
   at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23-beta/ForkJoinPool.java:4013)
   at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23-beta/ForkJoinPool.java:3961)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23-beta/AbstractQueuedSynchronizer.java:1707)
   at java.util.concurrent.LinkedBlockingQueue.take(java.base@23-beta/LinkedBlockingQueue.java:435)
   at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@23-beta/ThreadPoolExecutor.java:1070)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23-beta/ThreadPoolExecutor.java:1130)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23-beta/ThreadPoolExecutor.java:642)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"Thread-VC-8" #66 [11260] daemon prio=3 os_prio=-1 cpu=62.50ms elapsed=9511.89s tid=0x000001bc8af0ae80 nid=11260 waiting on condition  [0x0000001ff96ff000]
   java.lang.Thread.State: WAITING (parking)
   at jdk.internal.misc.Unsafe.park(java.base@23-beta/Native Method)
   - parking to wait for  <0x00000007feb01488> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   at java.util.concurrent.locks.LockSupport.park(java.base@23-beta/LockSupport.java:371)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23-beta/AbstractQueuedSynchronizer.java:519)
   at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23-beta/ForkJoinPool.java:4013)
   at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23-beta/ForkJoinPool.java:3961)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23-beta/AbstractQueuedSynchronizer.java:1707)
   at java.util.concurrent.LinkedBlockingQueue.take(java.base@23-beta/LinkedBlockingQueue.java:435)
   at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@23-beta/ThreadPoolExecutor.java:1070)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23-beta/ThreadPoolExecutor.java:1130)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23-beta/ThreadPoolExecutor.java:642)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"Thread-8" #113 [6784] daemon prio=5 os_prio=0 cpu=265.62ms elapsed=9503.25s tid=0x000001bd2a7d6200 nid=6784 waiting for monitor entry  [0x0000001ff76ff000]
   java.lang.Thread.State: BLOCKED (on object monitor)
   at sound.OooO.Object(Unknown Source)
   - waiting to lock <0x00000007fbb00028> (a sound.OooO)
   at com.fs.starfarer.String.return$1.run(Unknown Source)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"RMI TCP Accept-0" #116 [10392] daemon prio=5 os_prio=0 cpu=0.00ms elapsed=7.47s tid=0x000001be404f5760 nid=10392 runnable  [0x0000001ff4cfe000]
   java.lang.Thread.State: RUNNABLE
   at sun.nio.ch.Net.accept(java.base@23-beta/Native Method)
   at sun.nio.ch.NioSocketImpl.accept(java.base@23-beta/NioSocketImpl.java:748)
   at java.net.ServerSocket.implAccept(java.base@23-beta/ServerSocket.java:695)
   at java.net.ServerSocket.platformImplAccept(java.base@23-beta/ServerSocket.java:660)
   at java.net.ServerSocket.implAccept(java.base@23-beta/ServerSocket.java:636)
   at java.net.ServerSocket.implAccept(java.base@23-beta/ServerSocket.java:582)
   at java.net.ServerSocket.accept(java.base@23-beta/ServerSocket.java:541)
   at sun.management.jmxremote.LocalRMIServerSocketFactory$1.accept(jdk.management.agent@23-beta/LocalRMIServerSocketFactory.java:52)
   at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(java.rmi@23-beta/TCPTransport.java:424)
   at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(java.rmi@23-beta/TCPTransport.java:388)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - <0x000000074a354248> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)

"RMI TCP Connection(1)-192.168.0.118" #117 [9448] daemon prio=5 os_prio=0 cpu=125.00ms elapsed=7.34s tid=0x000001be404fd410 nid=9448 runnable  [0x0000001ff9afe000]
   java.lang.Thread.State: RUNNABLE
   at sun.nio.ch.Net.poll(java.base@23-beta/Native Method)
   at sun.nio.ch.NioSocketImpl.park(java.base@23-beta/NioSocketImpl.java:191)
   at sun.nio.ch.NioSocketImpl.timedRead(java.base@23-beta/NioSocketImpl.java:280)
   at sun.nio.ch.NioSocketImpl.implRead(java.base@23-beta/NioSocketImpl.java:304)
   at sun.nio.ch.NioSocketImpl.read(java.base@23-beta/NioSocketImpl.java:346)
   at sun.nio.ch.NioSocketImpl$1.read(java.base@23-beta/NioSocketImpl.java:796)
   at java.net.Socket$SocketInputStream.implRead(java.base@23-beta/Socket.java:1108)
   at java.net.Socket$SocketInputStream.read(java.base@23-beta/Socket.java:1095)
   at java.io.BufferedInputStream.fill(java.base@23-beta/BufferedInputStream.java:291)
   at java.io.BufferedInputStream.implRead(java.base@23-beta/BufferedInputStream.java:325)
   at java.io.BufferedInputStream.read(java.base@23-beta/BufferedInputStream.java:312)
   at java.io.FilterInputStream.read(java.base@23-beta/FilterInputStream.java:71)
   at sun.rmi.transport.tcp.TCPTransport.handleMessages(java.rmi@23-beta/TCPTransport.java:580)
   at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(java.rmi@23-beta/TCPTransport.java:844)
   at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(java.rmi@23-beta/TCPTransport.java:721)
   at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$$Lambda/0x000001bcbc0865f0.run(java.rmi@23-beta/Unknown Source)
   at java.security.AccessController.executePrivileged(java.base@23-beta/AccessController.java:778)
   at java.security.AccessController.doPrivileged(java.base@23-beta/AccessController.java:400)
   at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(java.rmi@23-beta/TCPTransport.java:720)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23-beta/ThreadPoolExecutor.java:1144)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23-beta/ThreadPoolExecutor.java:642)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - <0x000000074a389138> (a java.util.concurrent.ThreadPoolExecutor$Worker)
   - <0x000000074a451dd8> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
   - <0x000000074a387090> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)

"RMI Scheduler(0)" #118 [5884] daemon prio=5 os_prio=0 cpu=0.00ms elapsed=7.33s tid=0x000001be404f6480 nid=5884 waiting on condition  [0x0000001ff9eff000]
   java.lang.Thread.State: TIMED_WAITING (parking)
   at jdk.internal.misc.Unsafe.park(java.base@23-beta/Native Method)
   - parking to wait for  <0x000000074a34acb8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   at java.util.concurrent.locks.LockSupport.parkNanos(java.base@23-beta/LockSupport.java:269)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(java.base@23-beta/AbstractQueuedSynchronizer.java:1758)
   at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(java.base@23-beta/ScheduledThreadPoolExecutor.java:1182)
   at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(java.base@23-beta/ScheduledThreadPoolExecutor.java:899)
   at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@23-beta/ThreadPoolExecutor.java:1070)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23-beta/ThreadPoolExecutor.java:1130)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23-beta/ThreadPoolExecutor.java:642)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"JMX server connection timeout 119" #119 [5636] daemon prio=5 os_prio=0 cpu=0.00ms elapsed=7.32s tid=0x000001be405015b0 nid=5636 in Object.wait()  [0x0000001ffa2fe000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
   at java.lang.Object.wait0(java.base@23-beta/Native Method)
   - waiting on <0x000000074a485f50> (a [I)
   at java.lang.Object.wait(java.base@23-beta/Object.java:375)
   at com.sun.jmx.remote.internal.ServerCommunicatorAdmin$Timeout.run(java.management@23-beta/ServerCommunicatorAdmin.java:171)
   - locked <0x000000074a485f50> (a [I)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"RMI TCP Connection(2)-192.168.0.118" #120 [14020] daemon prio=5 os_prio=0 cpu=0.00ms elapsed=2.09s tid=0x000001be404fe7c0 nid=14020 runnable  [0x0000001ffa6fe000]
   java.lang.Thread.State: RUNNABLE
   at sun.nio.ch.Net.poll(java.base@23-beta/Native Method)
   at sun.nio.ch.NioSocketImpl.park(java.base@23-beta/NioSocketImpl.java:191)
   at sun.nio.ch.NioSocketImpl.timedRead(java.base@23-beta/NioSocketImpl.java:280)
   at sun.nio.ch.NioSocketImpl.implRead(java.base@23-beta/NioSocketImpl.java:304)
   at sun.nio.ch.NioSocketImpl.read(java.base@23-beta/NioSocketImpl.java:346)
   at sun.nio.ch.NioSocketImpl$1.read(java.base@23-beta/NioSocketImpl.java:796)
   at java.net.Socket$SocketInputStream.implRead(java.base@23-beta/Socket.java:1108)
   at java.net.Socket$SocketInputStream.read(java.base@23-beta/Socket.java:1095)
   at java.io.BufferedInputStream.fill(java.base@23-beta/BufferedInputStream.java:291)
   at java.io.BufferedInputStream.implRead(java.base@23-beta/BufferedInputStream.java:325)
   at java.io.BufferedInputStream.read(java.base@23-beta/BufferedInputStream.java:312)
   at java.io.FilterInputStream.read(java.base@23-beta/FilterInputStream.java:71)
   at sun.rmi.transport.tcp.TCPTransport.handleMessages(java.rmi@23-beta/TCPTransport.java:580)
   at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(java.rmi@23-beta/TCPTransport.java:844)
   at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(java.rmi@23-beta/TCPTransport.java:721)
   at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$$Lambda/0x000001bcbc0865f0.run(java.rmi@23-beta/Unknown Source)
   at java.security.AccessController.executePrivileged(java.base@23-beta/AccessController.java:778)
   at java.security.AccessController.doPrivileged(java.base@23-beta/AccessController.java:400)
   at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(java.rmi@23-beta/TCPTransport.java:720)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23-beta/ThreadPoolExecutor.java:1144)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23-beta/ThreadPoolExecutor.java:642)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - <0x000000074a38b258> (a java.util.concurrent.ThreadPoolExecutor$Worker)
   - <0x000000074a900188> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
   - <0x000000074a3893e8> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)

"VM Thread" os_prio=2 cpu=1281.25ms elapsed=9563.75s tid=0x000001bcacc769d0 nid=11148 runnable 

"Shenandoah Control Thread" os_prio=2 cpu=1437.50ms elapsed=9563.77s tid=0x000001bcacb1fe40 nid=13348 runnable 

"Shenandoah GC Threads#0" os_prio=2 cpu=97281.25ms elapsed=9564.19s tid=0x000001bcacae1590 nid=13268 runnable 

"Shenandoah GC Threads#1" os_prio=2 cpu=93218.75ms elapsed=9564.19s tid=0x000001bcacae1ba0 nid=11404 runnable 

"Shenandoah GC Threads#2" os_prio=2 cpu=95796.88ms elapsed=9564.19s tid=0x000001bc92bdc3d0 nid=13556 runnable 

"Shenandoah GC Threads#3" os_prio=2 cpu=93343.75ms elapsed=9564.19s tid=0x000001bc92bdcf80 nid=9204 runnable 

"Shenandoah GC Threads#4" os_prio=2 cpu=98828.12ms elapsed=9564.19s tid=0x000001bc92bddb30 nid=8576 runnable 

"Shenandoah GC Threads#5" os_prio=2 cpu=94703.12ms elapsed=9564.19s tid=0x000001bc92bde6e0 nid=2476 runnable 

"Safepoint Cleanup Thread#0" os_prio=2 cpu=140.62ms elapsed=9564.19s tid=0x000001bc92bdf290 nid=3296 runnable 

"Safepoint Cleanup Thread#1" os_prio=2 cpu=140.62ms elapsed=9564.19s tid=0x000001bc92bdfe40 nid=13772 runnable 

"Safepoint Cleanup Thread#2" os_prio=2 cpu=0.00ms elapsed=9564.19s tid=0x000001bc92be09f0 nid=10412 runnable 

"Safepoint Cleanup Thread#3" os_prio=2 cpu=0.00ms elapsed=9564.19s tid=0x000001bc92be15a0 nid=7876 runnable 

"Safepoint Cleanup Thread#4" os_prio=2 cpu=156.25ms elapsed=9564.19s tid=0x000001bc92be2150 nid=4472 runnable 

"Safepoint Cleanup Thread#5" os_prio=2 cpu=265.62ms elapsed=9564.19s tid=0x000001bc92be2d00 nid=11544 runnable 

"VM Periodic Task Thread" os_prio=15 cpu=1156.25ms elapsed=9563.75s tid=0x000001bcacc4db60 nid=6108 waiting on condition 

"AsyncLog Thread" os_prio=0 cpu=484.38ms elapsed=9563.75s tid=0x000001bcacc48f10 nid=8572 runnable 

JNI global refs: 36, weak refs: 1


[close]

Alex

  • Administrator
  • Admiral
  • *****
  • Posts: 24128
    • View Profile
Re: Random Chance of Game Freeze/Hang During Interactions
« Reply #1 on: April 10, 2024, 11:00:07 AM »

Thank you for the thread dump!

This looks like an issue with a bunch of music tracks starting playback (and probably being paused), the game running out of buffers to use for music playback (which these streams are holding onto and not returning), and then hanging waiting for a free buffer when the game tries to play another music track.

I'm not sure what's actually *causing* this - probably a mod starting/pausing music playback in some unexpected/probably incorrect way? I can't tell from just the stack traces since they just show the current state and the problem, but not how we got there.

A workaround for now would be to turn off the music.
Logged

Lukas04

  • Captain
  • ****
  • Posts: 366
    • View Profile
Re: Random Chance of Game Freeze/Hang During Interactions
« Reply #2 on: April 10, 2024, 04:33:12 PM »

Whenever I interact with what seems to basically anything at this point (interaction dialogs, opening/navigating the Gate travel UI, entering combat, etc.), there's a tiny, seemingly-random chance that my game would instantly freeze and hang, forcing me to restart the game and lose all unsaved progress. I've had this happen both within 30 minutes after starting the game and after several hours in a single save session, so playtime does not seem to be a factor so far. I'm currently running Starsector 0.97a-RC11 with Himemiko's Mikohime Java 23, and the modlist and the full thread dump from the latest hang is provided below (starsector.log didn't appear to have anything pointing to this hang, unfortunately):

Modlist from enabled_mods.json
{"enabledMods": [
  "afleettestingmod",
  "a personalized mod",
  "adversary",
  "ruddygreat_ArmourVisualiser",
  "HMI_brighton",
  "chatter",
  "timid_commissioned_hull_mods",
  "lw_console",
  "customizablestarsystems",
  "dmodservices",
  "DetailedCombatResults",
  "exoticatechnologies",
  "fleet_journal",
  "sun_flux_reticle",
  "GrandColonies",
  "HMI_SV",
  "HMI",
  "illustrated_entities",
  "IndEvo",
  "Imperium",
  "timid_xiv",
  "lw_lazylib",
  "lunalib",
  "MagicLib",
  "nexerelin",
  "sun_nomadic_survival",
  "officerExtension",
  "assortment_of_things",
  "secretsofthefrontier",
  "swp",
  "speedUp",
  "$tarmapR",
  "sun_starship_legends",
  "System_Marker",
  "knights_of_ludd",
  "timid_tmi",
  "underworld",
  "US",
  "vic",
  "whichmod",
  "whichtmi",
  "audio_plus",
  "shaderLib",
  "Rouge_Redstar",
  "ShipCatalogVariantEditor"
]}
[close]

Full thread dump from VisualVM
2024-04-09 23:05:35
Full thread dump OpenJDK 64-Bit Server VM (23-beta+7-ea mixed mode, sharing):

Threads class SMR info:
_java_thread_list=0x000001bd0a1d4340, length=41, elements={
0x000001bcacc98e70, 0x000001bcacc9b6a0, 0x000001bcacc9cd20, 0x000001bcacc9d390,
0x000001bcacc9de00, 0x000001bcacc9e470, 0x000001bcb96a40a0, 0x000001bcb96a4760,
0x000001bcb96a4e20, 0x000001bcb96b1500, 0x000001bcb96b5be0, 0x000001bcb991e1f0,
0x000001bcb991fe40, 0x000001bc802173b0, 0x000001bc80322510, 0x000001bc9294ddd0,
0x000001bc8af0c230, 0x000001bc8af0d5e0, 0x000001bc804445c0, 0x000001bc80444c50,
0x000001bc804452e0, 0x000001bc804473b0, 0x000001bc80440420, 0x000001bc80441140,
0x000001bc80442b80, 0x000001bc80446000, 0x000001bc80445970, 0x000001bc80443210,
0x000001bc80446690, 0x000001bc804417d0, 0x000001bc80447a40, 0x000001bc80443f30,
0x000001bc80441e60, 0x000001bc8af0c8c0, 0x000001bc8af0ae80, 0x000001bd2a7d6200,
0x000001be404f5760, 0x000001be404fd410, 0x000001be404f6480, 0x000001be405015b0,
0x000001be404fe7c0
}

"Reference Handler" #18 [9844] daemon prio=10 os_prio=15 cpu=1500.00ms elapsed=9563.74s tid=0x000001bcacc98e70 nid=9844 waiting on condition  [0x0000001ff00ff000]
   java.lang.Thread.State: RUNNABLE
   at java.lang.ref.Reference.waitForReferencePendingList(java.base@23-beta/Native Method)
   at java.lang.ref.Reference.processPendingReferences(java.base@23-beta/Reference.java:246)
   at java.lang.ref.Reference$ReferenceHandler.run(java.base@23-beta/Reference.java:208)

   Locked ownable synchronizers:
   - None

"Finalizer" #19 [10224] daemon prio=8 os_prio=2 cpu=156.25ms elapsed=9563.74s tid=0x000001bcacc9b6a0 nid=10224 in Object.wait()  [0x0000001ff04ff000]
   java.lang.Thread.State: WAITING (on object monitor)
   at java.lang.Object.wait0(java.base@23-beta/Native Method)
   - waiting on <0x00000007ff101098> (a java.lang.ref.NativeReferenceQueue$Lock)
   at java.lang.Object.wait(java.base@23-beta/Object.java:375)
   at java.lang.Object.wait(java.base@23-beta/Object.java:348)
   at java.lang.ref.NativeReferenceQueue.await(java.base@23-beta/NativeReferenceQueue.java:48)
   at java.lang.ref.ReferenceQueue.remove0(java.base@23-beta/ReferenceQueue.java:158)
   at java.lang.ref.NativeReferenceQueue.remove(java.base@23-beta/NativeReferenceQueue.java:89)
   - locked <0x00000007ff101098> (a java.lang.ref.NativeReferenceQueue$Lock)
   at java.lang.ref.Finalizer$FinalizerThread.run(java.base@23-beta/Finalizer.java:173)

   Locked ownable synchronizers:
   - None

"Signal Dispatcher" #20 [11168] daemon prio=9 os_prio=2 cpu=15.62ms elapsed=9563.74s tid=0x000001bcacc9cd20 nid=11168 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
   - None

"Attach Listener" #21 [14320] daemon prio=5 os_prio=2 cpu=31.25ms elapsed=9563.74s tid=0x000001bcacc9d390 nid=14320 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
   - None

"Service Thread" #22 [6676] daemon prio=9 os_prio=0 cpu=125.00ms elapsed=9563.74s tid=0x000001bcacc9de00 nid=6676 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
   - None

"Monitor Deflation Thread" #23 [9756] daemon prio=9 os_prio=0 cpu=1953.12ms elapsed=9563.74s tid=0x000001bcacc9e470 nid=9756 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
   - None

"C2 CompilerThread0" #24 [10052] daemon prio=9 os_prio=15 cpu=185046.88ms elapsed=9563.74s tid=0x000001bcb96a40a0 nid=10052 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
   No compile task

   Locked ownable synchronizers:
   - None

"C2 CompilerThread1" #25 [10916] daemon prio=9 os_prio=15 cpu=185781.25ms elapsed=9563.74s tid=0x000001bcb96a4760 nid=10916 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
   No compile task

   Locked ownable synchronizers:
   - None

"C2 CompilerThread2" #26 [10096] daemon prio=9 os_prio=15 cpu=192328.12ms elapsed=9563.74s tid=0x000001bcb96a4e20 nid=10096 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
   No compile task

   Locked ownable synchronizers:
   - None

"C1 CompilerThread0" #27 [8456] daemon prio=9 os_prio=15 cpu=36750.00ms elapsed=9563.74s tid=0x000001bcb96b1500 nid=8456 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
   No compile task

   Locked ownable synchronizers:
   - None

"StringDedupThread" #28 [4736] daemon prio=5 os_prio=0 cpu=3609.38ms elapsed=9563.74s tid=0x000001bcb96b5be0 nid=4736 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
   - None

"Common-Cleaner" #29 [14028] daemon prio=8 os_prio=2 cpu=125.00ms elapsed=9563.71s tid=0x000001bcb991e1f0 nid=14028 waiting on condition  [0x0000001ff20ff000]
   java.lang.Thread.State: TIMED_WAITING (parking)
   at jdk.internal.misc.Unsafe.park(java.base@23-beta/Native Method)
   - parking to wait for  <0x00000007ff102a78> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   at java.util.concurrent.locks.LockSupport.parkNanos(java.base@23-beta/LockSupport.java:269)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23-beta/AbstractQueuedSynchronizer.java:1847)
   at java.lang.ref.ReferenceQueue.await(java.base@23-beta/ReferenceQueue.java:71)
   at java.lang.ref.ReferenceQueue.remove0(java.base@23-beta/ReferenceQueue.java:143)
   at java.lang.ref.ReferenceQueue.remove(java.base@23-beta/ReferenceQueue.java:218)
   at jdk.internal.ref.CleanerImpl.run(java.base@23-beta/CleanerImpl.java:140)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)
   at jdk.internal.misc.InnocuousThread.run(java.base@23-beta/InnocuousThread.java:186)

   Locked ownable synchronizers:
   - None

"Notification Thread" #30 [11492] daemon prio=9 os_prio=0 cpu=0.00ms elapsed=9563.71s tid=0x000001bcb991fe40 nid=11492 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
   - None

"Java2D Disposer" #34 [9664] daemon prio=10 os_prio=15 cpu=15.62ms elapsed=9562.88s tid=0x000001bc802173b0 nid=9664 waiting on condition  [0x0000001ff29fe000]
   java.lang.Thread.State: WAITING (parking)
   at jdk.internal.misc.Unsafe.park(java.base@23-beta/Native Method)
   - parking to wait for  <0x00000007ff100bb0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   at java.util.concurrent.locks.LockSupport.park(java.base@23-beta/LockSupport.java:371)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23-beta/AbstractQueuedSynchronizer.java:519)
   at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23-beta/ForkJoinPool.java:4013)
   at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23-beta/ForkJoinPool.java:3961)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23-beta/AbstractQueuedSynchronizer.java:1707)
   at java.lang.ref.ReferenceQueue.await(java.base@23-beta/ReferenceQueue.java:67)
   at java.lang.ref.ReferenceQueue.remove0(java.base@23-beta/ReferenceQueue.java:158)
   at java.lang.ref.ReferenceQueue.remove(java.base@23-beta/ReferenceQueue.java:234)
   at sun.java2d.Disposer.run(java.desktop@23-beta/Disposer.java:145)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"AWT-Windows" #36 [12520] daemon prio=6 os_prio=1 cpu=0.00ms elapsed=9562.88s tid=0x000001bc80322510 nid=12520 runnable  [0x0000001ff31ff000]
   java.lang.Thread.State: RUNNABLE
   at sun.awt.windows.WToolkit.eventLoop(java.desktop@23-beta/Native Method)
   at sun.awt.windows.WToolkit.run(java.desktop@23-beta/WToolkit.java:297)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"DestroyJavaVM" #39 [4900] prio=5 os_prio=0 cpu=890.62ms elapsed=9562.80s tid=0x000001bc9294ddd0 nid=4900 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
   - None

"Thread-2" #40 [10196] prio=5 os_prio=0 cpu=7435828.12ms elapsed=9559.94s tid=0x000001bc8af0c230 nid=10196 waiting for monitor entry  [0x0000001ff2dfe000]
   java.lang.Thread.State: BLOCKED (on object monitor)
   at sound.OooO.o00000(Unknown Source)
   - waiting to lock <0x00000007fbb00028> (a sound.OooO)
   at com.fs.starfarer.String.K.Ö00000(Unknown Source)
   at com.fs.starfarer.String.return.o00000(Unknown Source)
   - locked <0x00000007fe406088> (a java.lang.Class for com.fs.starfarer.String.return)
   at com.fs.starfarer.campaign.CampaignState.advance(Unknown Source)
   at com.fs.starfarer.BaseGameState.traverse(Unknown Source)
   at com.fs.state.AppDriver.begin(Unknown Source)
   at com.fs.starfarer.combat.CombatMain.main(Unknown Source)
   at com.fs.starfarer.StarfarerLauncher.super(Unknown Source)
   at com.fs.starfarer.StarfarerLauncher$1.run(Unknown Source)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"Thread-3" #41 [9200] daemon prio=5 os_prio=0 cpu=0.00ms elapsed=9559.87s tid=0x000001bc8af0d5e0 nid=9200 waiting on condition  [0x0000001ff3ffe000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
   at java.lang.Thread.sleepNanos0(java.base@23-beta/Native Method)
   at java.lang.Thread.sleepNanos(java.base@23-beta/Thread.java:496)
   at java.lang.Thread.sleep(java.base@23-beta/Thread.java:527)
   at com.fs.starfarer.combat.CombatMain$1.run(Unknown Source)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"Thread-6" #45 [4492] prio=5 os_prio=0 cpu=20890.62ms elapsed=9547.32s tid=0x000001bc804445c0 nid=4492 in Object.wait()  [0x0000001ff46fe000]
   java.lang.Thread.State: WAITING (on object monitor)
   at java.lang.Object.wait0(java.base@23-beta/Native Method)
   - waiting on <0x00000007feb40b00> (a java.lang.Class for sound.return)
   at java.lang.Object.wait(java.base@23-beta/Object.java:375)
   at java.lang.Object.wait(java.base@23-beta/Object.java:348)
   at sound.return.Ô00000(Unknown Source)
   - locked <0x00000007feb40b00> (a java.lang.Class for sound.return)
   at sound.return.<init>(Unknown Source)
   at sound.o0oO.Ö00000(Unknown Source)
   at sound.o0oO.Ó00000(Unknown Source)
   at sound.O.Ô00000(Unknown Source)
   at sound.OooO$2.run(Unknown Source)
   - locked <0x00000007fbb00028> (a sound.OooO)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"Thread-VC-1" #50 [6644] daemon prio=3 os_prio=-1 cpu=31.25ms elapsed=9512.06s tid=0x000001bc80444c50 nid=6644 waiting on condition  [0x0000001ff53fe000]
   java.lang.Thread.State: WAITING (parking)
   at jdk.internal.misc.Unsafe.park(java.base@23-beta/Native Method)
   - parking to wait for  <0x00000007feb008c8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   at java.util.concurrent.locks.LockSupport.park(java.base@23-beta/LockSupport.java:371)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23-beta/AbstractQueuedSynchronizer.java:519)
   at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23-beta/ForkJoinPool.java:4013)
   at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23-beta/ForkJoinPool.java:3961)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23-beta/AbstractQueuedSynchronizer.java:1707)
   at java.util.concurrent.LinkedBlockingQueue.take(java.base@23-beta/LinkedBlockingQueue.java:435)
   at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@23-beta/ThreadPoolExecutor.java:1070)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23-beta/ThreadPoolExecutor.java:1130)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23-beta/ThreadPoolExecutor.java:642)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"Thread-VC-2" #51 [4968] daemon prio=3 os_prio=-1 cpu=31.25ms elapsed=9512.06s tid=0x000001bc804452e0 nid=4968 waiting on condition  [0x0000001ff58ff000]
   java.lang.Thread.State: WAITING (parking)
   at jdk.internal.misc.Unsafe.park(java.base@23-beta/Native Method)
   - parking to wait for  <0x00000007feb008c8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   at java.util.concurrent.locks.LockSupport.park(java.base@23-beta/LockSupport.java:371)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23-beta/AbstractQueuedSynchronizer.java:519)
   at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23-beta/ForkJoinPool.java:4013)
   at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23-beta/ForkJoinPool.java:3961)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23-beta/AbstractQueuedSynchronizer.java:1707)
   at java.util.concurrent.LinkedBlockingQueue.take(java.base@23-beta/LinkedBlockingQueue.java:435)
   at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@23-beta/ThreadPoolExecutor.java:1070)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23-beta/ThreadPoolExecutor.java:1130)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23-beta/ThreadPoolExecutor.java:642)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"Thread-VC-3" #52 [13600] daemon prio=3 os_prio=-1 cpu=109.38ms elapsed=9512.06s tid=0x000001bc804473b0 nid=13600 waiting on condition  [0x0000001ff5cfe000]
   java.lang.Thread.State: WAITING (parking)
   at jdk.internal.misc.Unsafe.park(java.base@23-beta/Native Method)
   - parking to wait for  <0x00000007feb008c8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   at java.util.concurrent.locks.LockSupport.park(java.base@23-beta/LockSupport.java:371)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23-beta/AbstractQueuedSynchronizer.java:519)
   at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23-beta/ForkJoinPool.java:4013)
   at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23-beta/ForkJoinPool.java:3961)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23-beta/AbstractQueuedSynchronizer.java:1707)
   at java.util.concurrent.LinkedBlockingQueue.take(java.base@23-beta/LinkedBlockingQueue.java:435)
   at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@23-beta/ThreadPoolExecutor.java:1070)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23-beta/ThreadPoolExecutor.java:1130)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23-beta/ThreadPoolExecutor.java:642)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"Thread-VC-4" #53 [12480] daemon prio=3 os_prio=-1 cpu=78.12ms elapsed=9512.06s tid=0x000001bc80440420 nid=12480 waiting on condition  [0x0000001ff62fe000]
   java.lang.Thread.State: WAITING (parking)
   at jdk.internal.misc.Unsafe.park(java.base@23-beta/Native Method)
   - parking to wait for  <0x00000007feb008c8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   at java.util.concurrent.locks.LockSupport.park(java.base@23-beta/LockSupport.java:371)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23-beta/AbstractQueuedSynchronizer.java:519)
   at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23-beta/ForkJoinPool.java:4013)
   at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23-beta/ForkJoinPool.java:3961)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23-beta/AbstractQueuedSynchronizer.java:1707)
   at java.util.concurrent.LinkedBlockingQueue.take(java.base@23-beta/LinkedBlockingQueue.java:435)
   at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@23-beta/ThreadPoolExecutor.java:1070)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23-beta/ThreadPoolExecutor.java:1130)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23-beta/ThreadPoolExecutor.java:642)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"Thread-VC-5" #54 [6196] daemon prio=3 os_prio=-1 cpu=93.75ms elapsed=9512.06s tid=0x000001bc80441140 nid=6196 waiting on condition  [0x0000001ff66ff000]
   java.lang.Thread.State: WAITING (parking)
   at jdk.internal.misc.Unsafe.park(java.base@23-beta/Native Method)
   - parking to wait for  <0x00000007feb008c8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   at java.util.concurrent.locks.LockSupport.park(java.base@23-beta/LockSupport.java:371)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23-beta/AbstractQueuedSynchronizer.java:519)
   at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23-beta/ForkJoinPool.java:4013)
   at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23-beta/ForkJoinPool.java:3961)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23-beta/AbstractQueuedSynchronizer.java:1707)
   at java.util.concurrent.LinkedBlockingQueue.take(java.base@23-beta/LinkedBlockingQueue.java:435)
   at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@23-beta/ThreadPoolExecutor.java:1070)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23-beta/ThreadPoolExecutor.java:1130)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23-beta/ThreadPoolExecutor.java:642)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"Thread-VC-6" #55 [1824] daemon prio=3 os_prio=-1 cpu=78.12ms elapsed=9512.06s tid=0x000001bc80442b80 nid=1824 waiting on condition  [0x0000001ff6aff000]
   java.lang.Thread.State: WAITING (parking)
   at jdk.internal.misc.Unsafe.park(java.base@23-beta/Native Method)
   - parking to wait for  <0x00000007feb008c8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   at java.util.concurrent.locks.LockSupport.park(java.base@23-beta/LockSupport.java:371)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23-beta/AbstractQueuedSynchronizer.java:519)
   at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23-beta/ForkJoinPool.java:4013)
   at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23-beta/ForkJoinPool.java:3961)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23-beta/AbstractQueuedSynchronizer.java:1707)
   at java.util.concurrent.LinkedBlockingQueue.take(java.base@23-beta/LinkedBlockingQueue.java:435)
   at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@23-beta/ThreadPoolExecutor.java:1070)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23-beta/ThreadPoolExecutor.java:1130)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23-beta/ThreadPoolExecutor.java:642)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"Thread-VC-7" #56 [6464] daemon prio=3 os_prio=-1 cpu=78.12ms elapsed=9512.06s tid=0x000001bc80446000 nid=6464 waiting on condition  [0x0000001ff6eff000]
   java.lang.Thread.State: WAITING (parking)
   at jdk.internal.misc.Unsafe.park(java.base@23-beta/Native Method)
   - parking to wait for  <0x00000007feb008c8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   at java.util.concurrent.locks.LockSupport.park(java.base@23-beta/LockSupport.java:371)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23-beta/AbstractQueuedSynchronizer.java:519)
   at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23-beta/ForkJoinPool.java:4013)
   at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23-beta/ForkJoinPool.java:3961)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23-beta/AbstractQueuedSynchronizer.java:1707)
   at java.util.concurrent.LinkedBlockingQueue.take(java.base@23-beta/LinkedBlockingQueue.java:435)
   at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@23-beta/ThreadPoolExecutor.java:1070)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23-beta/ThreadPoolExecutor.java:1130)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23-beta/ThreadPoolExecutor.java:642)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"Thread-VC-8" #57 [11960] daemon prio=3 os_prio=-1 cpu=78.12ms elapsed=9512.06s tid=0x000001bc80445970 nid=11960 waiting on condition  [0x0000001ff72fe000]
   java.lang.Thread.State: WAITING (parking)
   at jdk.internal.misc.Unsafe.park(java.base@23-beta/Native Method)
   - parking to wait for  <0x00000007feb008c8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   at java.util.concurrent.locks.LockSupport.park(java.base@23-beta/LockSupport.java:371)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23-beta/AbstractQueuedSynchronizer.java:519)
   at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23-beta/ForkJoinPool.java:4013)
   at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23-beta/ForkJoinPool.java:3961)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23-beta/AbstractQueuedSynchronizer.java:1707)
   at java.util.concurrent.LinkedBlockingQueue.take(java.base@23-beta/LinkedBlockingQueue.java:435)
   at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@23-beta/ThreadPoolExecutor.java:1070)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23-beta/ThreadPoolExecutor.java:1130)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23-beta/ThreadPoolExecutor.java:642)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"Thread-VC-1" #59 [13440] daemon prio=3 os_prio=-1 cpu=78.12ms elapsed=9511.89s tid=0x000001bc80443210 nid=13440 waiting on condition  [0x0000001ff7afe000]
   java.lang.Thread.State: WAITING (parking)
   at jdk.internal.misc.Unsafe.park(java.base@23-beta/Native Method)
   - parking to wait for  <0x00000007feb01488> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   at java.util.concurrent.locks.LockSupport.park(java.base@23-beta/LockSupport.java:371)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23-beta/AbstractQueuedSynchronizer.java:519)
   at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23-beta/ForkJoinPool.java:4013)
   at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23-beta/ForkJoinPool.java:3961)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23-beta/AbstractQueuedSynchronizer.java:1707)
   at java.util.concurrent.LinkedBlockingQueue.take(java.base@23-beta/LinkedBlockingQueue.java:435)
   at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@23-beta/ThreadPoolExecutor.java:1070)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23-beta/ThreadPoolExecutor.java:1130)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23-beta/ThreadPoolExecutor.java:642)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"Thread-VC-2" #60 [12768] daemon prio=3 os_prio=-1 cpu=93.75ms elapsed=9511.89s tid=0x000001bc80446690 nid=12768 waiting on condition  [0x0000001ff7efe000]
   java.lang.Thread.State: WAITING (parking)
   at jdk.internal.misc.Unsafe.park(java.base@23-beta/Native Method)
   - parking to wait for  <0x00000007feb01488> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   at java.util.concurrent.locks.LockSupport.park(java.base@23-beta/LockSupport.java:371)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23-beta/AbstractQueuedSynchronizer.java:519)
   at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23-beta/ForkJoinPool.java:4013)
   at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23-beta/ForkJoinPool.java:3961)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23-beta/AbstractQueuedSynchronizer.java:1707)
   at java.util.concurrent.LinkedBlockingQueue.take(java.base@23-beta/LinkedBlockingQueue.java:435)
   at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@23-beta/ThreadPoolExecutor.java:1070)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23-beta/ThreadPoolExecutor.java:1130)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23-beta/ThreadPoolExecutor.java:642)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"Thread-VC-3" #61 [11736] daemon prio=3 os_prio=-1 cpu=31.25ms elapsed=9511.89s tid=0x000001bc804417d0 nid=11736 waiting on condition  [0x0000001ff82fe000]
   java.lang.Thread.State: WAITING (parking)
   at jdk.internal.misc.Unsafe.park(java.base@23-beta/Native Method)
   - parking to wait for  <0x00000007feb01488> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   at java.util.concurrent.locks.LockSupport.park(java.base@23-beta/LockSupport.java:371)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23-beta/AbstractQueuedSynchronizer.java:519)
   at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23-beta/ForkJoinPool.java:4013)
   at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23-beta/ForkJoinPool.java:3961)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23-beta/AbstractQueuedSynchronizer.java:1707)
   at java.util.concurrent.LinkedBlockingQueue.take(java.base@23-beta/LinkedBlockingQueue.java:435)
   at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@23-beta/ThreadPoolExecutor.java:1070)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23-beta/ThreadPoolExecutor.java:1130)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23-beta/ThreadPoolExecutor.java:642)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"Thread-VC-4" #62 [9852] daemon prio=3 os_prio=-1 cpu=78.12ms elapsed=9511.89s tid=0x000001bc80447a40 nid=9852 waiting on condition  [0x0000001ff86fe000]
   java.lang.Thread.State: WAITING (parking)
   at jdk.internal.misc.Unsafe.park(java.base@23-beta/Native Method)
   - parking to wait for  <0x00000007feb01488> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   at java.util.concurrent.locks.LockSupport.park(java.base@23-beta/LockSupport.java:371)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23-beta/AbstractQueuedSynchronizer.java:519)
   at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23-beta/ForkJoinPool.java:4013)
   at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23-beta/ForkJoinPool.java:3961)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23-beta/AbstractQueuedSynchronizer.java:1707)
   at java.util.concurrent.LinkedBlockingQueue.take(java.base@23-beta/LinkedBlockingQueue.java:435)
   at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@23-beta/ThreadPoolExecutor.java:1070)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23-beta/ThreadPoolExecutor.java:1130)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23-beta/ThreadPoolExecutor.java:642)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"Thread-VC-5" #63 [10692] daemon prio=3 os_prio=-1 cpu=62.50ms elapsed=9511.89s tid=0x000001bc80443f30 nid=10692 waiting on condition  [0x0000001ff8afe000]
   java.lang.Thread.State: WAITING (parking)
   at jdk.internal.misc.Unsafe.park(java.base@23-beta/Native Method)
   - parking to wait for  <0x00000007feb01488> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   at java.util.concurrent.locks.LockSupport.park(java.base@23-beta/LockSupport.java:371)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23-beta/AbstractQueuedSynchronizer.java:519)
   at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23-beta/ForkJoinPool.java:4013)
   at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23-beta/ForkJoinPool.java:3961)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23-beta/AbstractQueuedSynchronizer.java:1707)
   at java.util.concurrent.LinkedBlockingQueue.take(java.base@23-beta/LinkedBlockingQueue.java:435)
   at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@23-beta/ThreadPoolExecutor.java:1070)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23-beta/ThreadPoolExecutor.java:1130)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23-beta/ThreadPoolExecutor.java:642)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"Thread-VC-6" #64 [8460] daemon prio=3 os_prio=-1 cpu=218.75ms elapsed=9511.89s tid=0x000001bc80441e60 nid=8460 waiting on condition  [0x0000001ff8eff000]
   java.lang.Thread.State: WAITING (parking)
   at jdk.internal.misc.Unsafe.park(java.base@23-beta/Native Method)
   - parking to wait for  <0x00000007feb01488> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   at java.util.concurrent.locks.LockSupport.park(java.base@23-beta/LockSupport.java:371)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23-beta/AbstractQueuedSynchronizer.java:519)
   at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23-beta/ForkJoinPool.java:4013)
   at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23-beta/ForkJoinPool.java:3961)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23-beta/AbstractQueuedSynchronizer.java:1707)
   at java.util.concurrent.LinkedBlockingQueue.take(java.base@23-beta/LinkedBlockingQueue.java:435)
   at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@23-beta/ThreadPoolExecutor.java:1070)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23-beta/ThreadPoolExecutor.java:1130)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23-beta/ThreadPoolExecutor.java:642)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"Thread-VC-7" #65 [10172] daemon prio=3 os_prio=-1 cpu=62.50ms elapsed=9511.89s tid=0x000001bc8af0c8c0 nid=10172 waiting on condition  [0x0000001ff92ff000]
   java.lang.Thread.State: WAITING (parking)
   at jdk.internal.misc.Unsafe.park(java.base@23-beta/Native Method)
   - parking to wait for  <0x00000007feb01488> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   at java.util.concurrent.locks.LockSupport.park(java.base@23-beta/LockSupport.java:371)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23-beta/AbstractQueuedSynchronizer.java:519)
   at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23-beta/ForkJoinPool.java:4013)
   at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23-beta/ForkJoinPool.java:3961)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23-beta/AbstractQueuedSynchronizer.java:1707)
   at java.util.concurrent.LinkedBlockingQueue.take(java.base@23-beta/LinkedBlockingQueue.java:435)
   at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@23-beta/ThreadPoolExecutor.java:1070)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23-beta/ThreadPoolExecutor.java:1130)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23-beta/ThreadPoolExecutor.java:642)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"Thread-VC-8" #66 [11260] daemon prio=3 os_prio=-1 cpu=62.50ms elapsed=9511.89s tid=0x000001bc8af0ae80 nid=11260 waiting on condition  [0x0000001ff96ff000]
   java.lang.Thread.State: WAITING (parking)
   at jdk.internal.misc.Unsafe.park(java.base@23-beta/Native Method)
   - parking to wait for  <0x00000007feb01488> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   at java.util.concurrent.locks.LockSupport.park(java.base@23-beta/LockSupport.java:371)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block(java.base@23-beta/AbstractQueuedSynchronizer.java:519)
   at java.util.concurrent.ForkJoinPool.unmanagedBlock(java.base@23-beta/ForkJoinPool.java:4013)
   at java.util.concurrent.ForkJoinPool.managedBlock(java.base@23-beta/ForkJoinPool.java:3961)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@23-beta/AbstractQueuedSynchronizer.java:1707)
   at java.util.concurrent.LinkedBlockingQueue.take(java.base@23-beta/LinkedBlockingQueue.java:435)
   at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@23-beta/ThreadPoolExecutor.java:1070)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23-beta/ThreadPoolExecutor.java:1130)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23-beta/ThreadPoolExecutor.java:642)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"Thread-8" #113 [6784] daemon prio=5 os_prio=0 cpu=265.62ms elapsed=9503.25s tid=0x000001bd2a7d6200 nid=6784 waiting for monitor entry  [0x0000001ff76ff000]
   java.lang.Thread.State: BLOCKED (on object monitor)
   at sound.OooO.Object(Unknown Source)
   - waiting to lock <0x00000007fbb00028> (a sound.OooO)
   at com.fs.starfarer.String.return$1.run(Unknown Source)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"RMI TCP Accept-0" #116 [10392] daemon prio=5 os_prio=0 cpu=0.00ms elapsed=7.47s tid=0x000001be404f5760 nid=10392 runnable  [0x0000001ff4cfe000]
   java.lang.Thread.State: RUNNABLE
   at sun.nio.ch.Net.accept(java.base@23-beta/Native Method)
   at sun.nio.ch.NioSocketImpl.accept(java.base@23-beta/NioSocketImpl.java:748)
   at java.net.ServerSocket.implAccept(java.base@23-beta/ServerSocket.java:695)
   at java.net.ServerSocket.platformImplAccept(java.base@23-beta/ServerSocket.java:660)
   at java.net.ServerSocket.implAccept(java.base@23-beta/ServerSocket.java:636)
   at java.net.ServerSocket.implAccept(java.base@23-beta/ServerSocket.java:582)
   at java.net.ServerSocket.accept(java.base@23-beta/ServerSocket.java:541)
   at sun.management.jmxremote.LocalRMIServerSocketFactory$1.accept(jdk.management.agent@23-beta/LocalRMIServerSocketFactory.java:52)
   at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(java.rmi@23-beta/TCPTransport.java:424)
   at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(java.rmi@23-beta/TCPTransport.java:388)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - <0x000000074a354248> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)

"RMI TCP Connection(1)-192.168.0.118" #117 [9448] daemon prio=5 os_prio=0 cpu=125.00ms elapsed=7.34s tid=0x000001be404fd410 nid=9448 runnable  [0x0000001ff9afe000]
   java.lang.Thread.State: RUNNABLE
   at sun.nio.ch.Net.poll(java.base@23-beta/Native Method)
   at sun.nio.ch.NioSocketImpl.park(java.base@23-beta/NioSocketImpl.java:191)
   at sun.nio.ch.NioSocketImpl.timedRead(java.base@23-beta/NioSocketImpl.java:280)
   at sun.nio.ch.NioSocketImpl.implRead(java.base@23-beta/NioSocketImpl.java:304)
   at sun.nio.ch.NioSocketImpl.read(java.base@23-beta/NioSocketImpl.java:346)
   at sun.nio.ch.NioSocketImpl$1.read(java.base@23-beta/NioSocketImpl.java:796)
   at java.net.Socket$SocketInputStream.implRead(java.base@23-beta/Socket.java:1108)
   at java.net.Socket$SocketInputStream.read(java.base@23-beta/Socket.java:1095)
   at java.io.BufferedInputStream.fill(java.base@23-beta/BufferedInputStream.java:291)
   at java.io.BufferedInputStream.implRead(java.base@23-beta/BufferedInputStream.java:325)
   at java.io.BufferedInputStream.read(java.base@23-beta/BufferedInputStream.java:312)
   at java.io.FilterInputStream.read(java.base@23-beta/FilterInputStream.java:71)
   at sun.rmi.transport.tcp.TCPTransport.handleMessages(java.rmi@23-beta/TCPTransport.java:580)
   at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(java.rmi@23-beta/TCPTransport.java:844)
   at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(java.rmi@23-beta/TCPTransport.java:721)
   at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$$Lambda/0x000001bcbc0865f0.run(java.rmi@23-beta/Unknown Source)
   at java.security.AccessController.executePrivileged(java.base@23-beta/AccessController.java:778)
   at java.security.AccessController.doPrivileged(java.base@23-beta/AccessController.java:400)
   at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(java.rmi@23-beta/TCPTransport.java:720)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23-beta/ThreadPoolExecutor.java:1144)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23-beta/ThreadPoolExecutor.java:642)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - <0x000000074a389138> (a java.util.concurrent.ThreadPoolExecutor$Worker)
   - <0x000000074a451dd8> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
   - <0x000000074a387090> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)

"RMI Scheduler(0)" #118 [5884] daemon prio=5 os_prio=0 cpu=0.00ms elapsed=7.33s tid=0x000001be404f6480 nid=5884 waiting on condition  [0x0000001ff9eff000]
   java.lang.Thread.State: TIMED_WAITING (parking)
   at jdk.internal.misc.Unsafe.park(java.base@23-beta/Native Method)
   - parking to wait for  <0x000000074a34acb8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
   at java.util.concurrent.locks.LockSupport.parkNanos(java.base@23-beta/LockSupport.java:269)
   at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(java.base@23-beta/AbstractQueuedSynchronizer.java:1758)
   at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(java.base@23-beta/ScheduledThreadPoolExecutor.java:1182)
   at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(java.base@23-beta/ScheduledThreadPoolExecutor.java:899)
   at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@23-beta/ThreadPoolExecutor.java:1070)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23-beta/ThreadPoolExecutor.java:1130)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23-beta/ThreadPoolExecutor.java:642)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"JMX server connection timeout 119" #119 [5636] daemon prio=5 os_prio=0 cpu=0.00ms elapsed=7.32s tid=0x000001be405015b0 nid=5636 in Object.wait()  [0x0000001ffa2fe000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
   at java.lang.Object.wait0(java.base@23-beta/Native Method)
   - waiting on <0x000000074a485f50> (a [I)
   at java.lang.Object.wait(java.base@23-beta/Object.java:375)
   at com.sun.jmx.remote.internal.ServerCommunicatorAdmin$Timeout.run(java.management@23-beta/ServerCommunicatorAdmin.java:171)
   - locked <0x000000074a485f50> (a [I)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - None

"RMI TCP Connection(2)-192.168.0.118" #120 [14020] daemon prio=5 os_prio=0 cpu=0.00ms elapsed=2.09s tid=0x000001be404fe7c0 nid=14020 runnable  [0x0000001ffa6fe000]
   java.lang.Thread.State: RUNNABLE
   at sun.nio.ch.Net.poll(java.base@23-beta/Native Method)
   at sun.nio.ch.NioSocketImpl.park(java.base@23-beta/NioSocketImpl.java:191)
   at sun.nio.ch.NioSocketImpl.timedRead(java.base@23-beta/NioSocketImpl.java:280)
   at sun.nio.ch.NioSocketImpl.implRead(java.base@23-beta/NioSocketImpl.java:304)
   at sun.nio.ch.NioSocketImpl.read(java.base@23-beta/NioSocketImpl.java:346)
   at sun.nio.ch.NioSocketImpl$1.read(java.base@23-beta/NioSocketImpl.java:796)
   at java.net.Socket$SocketInputStream.implRead(java.base@23-beta/Socket.java:1108)
   at java.net.Socket$SocketInputStream.read(java.base@23-beta/Socket.java:1095)
   at java.io.BufferedInputStream.fill(java.base@23-beta/BufferedInputStream.java:291)
   at java.io.BufferedInputStream.implRead(java.base@23-beta/BufferedInputStream.java:325)
   at java.io.BufferedInputStream.read(java.base@23-beta/BufferedInputStream.java:312)
   at java.io.FilterInputStream.read(java.base@23-beta/FilterInputStream.java:71)
   at sun.rmi.transport.tcp.TCPTransport.handleMessages(java.rmi@23-beta/TCPTransport.java:580)
   at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(java.rmi@23-beta/TCPTransport.java:844)
   at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(java.rmi@23-beta/TCPTransport.java:721)
   at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$$Lambda/0x000001bcbc0865f0.run(java.rmi@23-beta/Unknown Source)
   at java.security.AccessController.executePrivileged(java.base@23-beta/AccessController.java:778)
   at java.security.AccessController.doPrivileged(java.base@23-beta/AccessController.java:400)
   at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(java.rmi@23-beta/TCPTransport.java:720)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@23-beta/ThreadPoolExecutor.java:1144)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@23-beta/ThreadPoolExecutor.java:642)
   at java.lang.Thread.runWith(java.base@23-beta/Thread.java:1588)
   at java.lang.Thread.run(java.base@23-beta/Thread.java:1575)

   Locked ownable synchronizers:
   - <0x000000074a38b258> (a java.util.concurrent.ThreadPoolExecutor$Worker)
   - <0x000000074a900188> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
   - <0x000000074a3893e8> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)

"VM Thread" os_prio=2 cpu=1281.25ms elapsed=9563.75s tid=0x000001bcacc769d0 nid=11148 runnable 

"Shenandoah Control Thread" os_prio=2 cpu=1437.50ms elapsed=9563.77s tid=0x000001bcacb1fe40 nid=13348 runnable 

"Shenandoah GC Threads#0" os_prio=2 cpu=97281.25ms elapsed=9564.19s tid=0x000001bcacae1590 nid=13268 runnable 

"Shenandoah GC Threads#1" os_prio=2 cpu=93218.75ms elapsed=9564.19s tid=0x000001bcacae1ba0 nid=11404 runnable 

"Shenandoah GC Threads#2" os_prio=2 cpu=95796.88ms elapsed=9564.19s tid=0x000001bc92bdc3d0 nid=13556 runnable 

"Shenandoah GC Threads#3" os_prio=2 cpu=93343.75ms elapsed=9564.19s tid=0x000001bc92bdcf80 nid=9204 runnable 

"Shenandoah GC Threads#4" os_prio=2 cpu=98828.12ms elapsed=9564.19s tid=0x000001bc92bddb30 nid=8576 runnable 

"Shenandoah GC Threads#5" os_prio=2 cpu=94703.12ms elapsed=9564.19s tid=0x000001bc92bde6e0 nid=2476 runnable 

"Safepoint Cleanup Thread#0" os_prio=2 cpu=140.62ms elapsed=9564.19s tid=0x000001bc92bdf290 nid=3296 runnable 

"Safepoint Cleanup Thread#1" os_prio=2 cpu=140.62ms elapsed=9564.19s tid=0x000001bc92bdfe40 nid=13772 runnable 

"Safepoint Cleanup Thread#2" os_prio=2 cpu=0.00ms elapsed=9564.19s tid=0x000001bc92be09f0 nid=10412 runnable 

"Safepoint Cleanup Thread#3" os_prio=2 cpu=0.00ms elapsed=9564.19s tid=0x000001bc92be15a0 nid=7876 runnable 

"Safepoint Cleanup Thread#4" os_prio=2 cpu=156.25ms elapsed=9564.19s tid=0x000001bc92be2150 nid=4472 runnable 

"Safepoint Cleanup Thread#5" os_prio=2 cpu=265.62ms elapsed=9564.19s tid=0x000001bc92be2d00 nid=11544 runnable 

"VM Periodic Task Thread" os_prio=15 cpu=1156.25ms elapsed=9563.75s tid=0x000001bcacc4db60 nid=6108 waiting on condition 

"AsyncLog Thread" os_prio=0 cpu=484.38ms elapsed=9563.75s tid=0x000001bcacc48f10 nid=8572 runnable 

JNI global refs: 36, weak refs: 1


[close]

As far as we know on the discord, its an issue caused by not having enough Ram allocated, whenever someone had this (rare) issue, it was fixed by increasing the amount of ram you provide the game, atleast nobody who did had this freeze happen afterwards anymore. No idea as to why it happens, but as Alex said its probably related to the Soundplayer starting the music playback from interacting with a fleet/entity.
« Last Edit: April 10, 2024, 04:39:13 PM by Lukas04 »
Logged
My Mods

NikoTheGuyDude

  • Commander
  • ***
  • Posts: 231
    • View Profile
Re: Random Chance of Game Freeze/Hang During Interactions
« Reply #3 on: April 11, 2024, 05:06:07 AM »

Actually, I was told and experienced the opposite.

I was told by Mikohime that if you experience something like this, you need to DECREASE the RAM you allocate, because what matters is system RAM. And I can confirm it happens a lot less to me if I kill a bunch of tasks that are using some system RAM, like my IDE, or discord, or firefox.
Logged

NikoTheGuyDude

  • Commander
  • ***
  • Posts: 231
    • View Profile
Re: Random Chance of Game Freeze/Hang During Interactions
« Reply #4 on: April 11, 2024, 05:11:40 AM »

For context, I use java 23 with 6 GB of RAM with a quite large modlist.
Logged

Lukas04

  • Captain
  • ****
  • Posts: 366
    • View Profile
Re: Random Chance of Game Freeze/Hang During Interactions
« Reply #5 on: April 11, 2024, 05:13:59 AM »

Actually, I was told and experienced the opposite.

I was told by Mikohime that if you experience something like this, you need to DECREASE the RAM you allocate, because what matters is system RAM. And I can confirm it happens a lot less to me if I kill a bunch of tasks that are using some system RAM, like my IDE, or discord, or firefox.

likely just an issue with ram in general, as Tranquility said he only allocated 3GB of ram on the discord, which for the mods he used (RAT & KOL & More) can be rather little.
Logged
My Mods

Lukas04

  • Captain
  • ****
  • Posts: 366
    • View Profile
Re: Random Chance of Game Freeze/Hang During Interactions
« Reply #6 on: April 19, 2024, 12:09:24 PM »

Some more information in case Alex sees it, as it may concern the Java17 upgrade aswell.
Taking a look at the pattern of this freezes coming up, it seems it only happens to people using the Java23 conversion kit.

The freeze happens at the exact moment music is told to start playing. From reports and other observations ive seen it happen in:

1. 0.5-1 second after opening an interaction dialog with an entity or fleet, which feels around the same delay that it takes for music to start playing usually.
2. Someone playing my boss fight, and freezing on the transition to phase 2, at the moment the music started loading.

Both of those freezes tend to come after extended play sessions and after reloading saves a few times.
For most users either increasing the allocated RAM either stops it from happening, or reduces how often the freeze happens.

More importantly it appears to only happen for people using Java23. Avanitia was the first person ive seen have this crash multiple months back, and they were using a test version of the Java23 conversion miko made at that time. After them, nobody reported the issue for multiple months. Now that there is a public version of the conversion, the issue appears every few days in the bug reports channels on the discord, and Niko, Avanitia, Tranquility and the person ive seen crash during my boss fight are all using the conversion.

So while not definitive, i think its likely that the issue comes from having ram useage close to your allocated maximum, likely due to modded memory leaks as is usual while using Java23 and then having music start playing. I dont really have any knowledge beyond this point, so im not sure if this is more of an issue on the conversions side, or if its a problem from the Musicplayer, which to be honest, always seemed a bit finicky and fragile when i had to use it, haha. There also arent many people using Java17 in the community itself, so i dont know in which version the issue would be introduced.
Logged
My Mods

Alex

  • Administrator
  • Admiral
  • *****
  • Posts: 24128
    • View Profile
Re: Random Chance of Game Freeze/Hang During Interactions
« Reply #7 on: April 19, 2024, 12:16:55 PM »

MusicPlayer definitely is pretty finicky!

From my earlier post in this thread, I think this issue has to do with probably a mod playing and pausing a bunch of tracks, and the game runs out of buffers to play a new track and hangs infinitely waiting for one to become available. I've bumped up the buffer pool size to 10 (from 5) so that may help unless some bit of code just keeps opening and pausing a bunch of music until it runs out of buffers. I'm not sure how this would be related to Java 23, though, that's odd.
Logged

Lukas04

  • Captain
  • ****
  • Posts: 366
    • View Profile
Re: Random Chance of Game Freeze/Hang During Interactions
« Reply #8 on: April 19, 2024, 12:27:26 PM »

MusicPlayer definitely is pretty finicky!

From my earlier post in this thread, I think this issue has to do with probably a mod playing and pausing a bunch of tracks, and the game runs out of buffers to play a new track and hangs infinitely waiting for one to become available. I've bumped up the buffer pool size to 10 (from 5) so that may help unless some bit of code just keeps opening and pausing a bunch of music until it runs out of buffers. I'm not sure how this would be related to Java 23, though, that's odd.

The freeze can happen from entities that just let the game handle the music loading, i.e music key in a .faction file and it just loading the music relevant to that entities faction, or from an overwriten musicsetkey on the entities memory, so i dont think its because of how a certain mod handles the music playing.

For the transition in my bosses Phase2, the moment the transition starts i pause the music that Phase1 started:

Quote
Global.getSoundPlayer().pauseCustomMusic()

A few seconds later i call a resume and tell it to play the phase 2 theme.

Quote
Global.getSoundPlayer().resumeCustomMusic()
Global.getSoundPlayer().playCustomMusic(1, 1, "rat_abyss_genesis2", true)

Neither of the code can ever be called twice. I do call "resumeCustomMusic()" before starting the new track as it otherwise appeared to crash, so i asume that is the correct useage.
But anyways it freezes either when called like this, or from the standard way entities do music.


And yeah, it being a Java23 (or the kit) issue is pretty weird, but i am pretty sure that it is part of the issue, since how i mentioned the issue hasnt exited before there was a in-dev version of the conversion kit & somebody used it, and only really became more common after people started using the kit, with everybody reporting it so far mentioning that they use Java23.
« Last Edit: April 19, 2024, 12:55:11 PM by Lukas04 »
Logged
My Mods