Integrated Dynamics

Integrated Dynamics

63M Downloads

Audio writer TTS loops indefinitely and can lock up the client completely

Vectrobe opened this issue ยท 2 comments

commented

Issue type:

  • ๐Ÿ› Bug

Short description:

The TTS functionality doesnt check if TTS is currently busy before quing up new requests, which results in it growing the queue indefinitely, to the point that at best it never stops talking and at worst it completely locks up the client and server, potentially resulting in world corruption.

Steps to reproduce the problem:

  • put a reasonably long string value in the TTS aspect of an audio writer and let it run for a second or so using the default tick rate setting
  • it will now keep going on even after you exit the world, and if you go into the accessibility settings it often just locks up the client

Expected behaviour:

only allow a string to be queued if TTS isnt already talking, since the TTS is only one instance, as opposed to standard sound events that are instanced per sound event and have a safe instance limit


Versions:

  • This mod: 1.22.1
  • Minecraft: 1.20.1
  • Forge: neo 47.1.106

Log file:

none generated/not applicable

commented

Thanks for reporting!

commented

Unfortunately, the Narrator API doesn't provide a way to check if it is busy speaking something.
There's a small change I could do to improve things slightly, but the Narrator will still be able to speak over itself in some cases.
In those case, it's recommended to change the part frequency.