Jump to content

dgl

Member
  • Posts

    2
  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Agree it doesn't guarantee full recovery, but it increases chances of getting a more recent world save. Right now you can easily lose multiple days of player progress unless you enable this option. Increasing the amount or RAM is a great advice but it doesn't help players who already lost days of progress because of default 2 GB heap size (btw maybe we can make server launcher reserve dynamic heap memory? I think most players would prefer reserving memory based on total available RAM rather than having a static default amount)
  2. SaveWorldEveryMinutes is off by default, which can lead to progress loss that can be especially huge for dedicated servers with long uptime. Also, since multiplayer is still pretty new, server issues and crashes during world save are very likely to happen. There are also very common OOM crashes when a server admin fails to allocate adequate heap memory for their player count, which also crash the process before the world has chance to save to disk. Setting SaveWorldEveryMinutes to a reasonable default like 15-30 minutes should help significantly improve player experience.
  3. This bug is reproducible but requires a very precise timing to pull off. I have a script that sends restart countdown servermsgs, including sending one final "Restarting NOW!" message right before sysytemd service is stopped. During last game session, server failed to shut down cleanly and persist server state, partially wiping player progress. After looking at the logs and some lucky guessing I was able to pinpoint the issue to that one final servermsg. Here's how to reproduce this: 1. Create a script that sleeps for a few seconds, sends servermsg and immediately terminates the server. 2. Log into the game. 3. Execute the script. 4. Quit the game immediately before servermsg. 5. My guess is that servermsg is either racing with shutdown, or attempts to message a disconnected player that did not yet have time to fully close the client session. hs_err_pid15877.log systemd.log
  4. I fixed this by decompiling IsoStove class and fixing the call sites. I think the root cause is when stove gets moved away from other players when they are offline. The symptom is player disconnect happening consistently after 2 minutes since they join the server. I recompiled the class and distributed it to players which fixed the issue. I can attach recompiled class too but it might be violating the forum rules 184c184 < if (this.soundInstance != -1L) { --- > if (this.soundInstance != -1L && this.emitter != null) { 196c196,198 < this.emitter.stopSound(this.soundInstance); --- > if (this.emitter != null) { > this.emitter.stopSound(this.soundInstance); > } 206c208 < if (this.soundInstance != -1L) { --- > if (this.soundInstance != -1L && this.emitter != null) { 214c216,218 < this.emitter.stopSound(this.soundInstance); --- > if (this.emitter != null) { > this.emitter.stopSound(this.soundInstance); > }
×
×
  • Create New...