AMP 'Deimos' 2.7.2 Release Notes

AMP 2.7.2.10 ‘Deimos’

:warning::warning::warning:These notes are for an unreleased version of AMP​:warning::warning::warning:

In case you missed the recent announcement about the feature freeze:
https://discourse.cubecoders.com/t/the-future-of-cubecoders-and-amp-feature-freeze/40387

We’ve created a bug tracker on GitHub to keep tabs on the progress being made. If there’s a bug not listed, please be sure to create an issue in the AMP repo so we can properly address it:
https://github.com/orgs/CubeCoders/projects/4

This is the first bug fix only release since the announcement.

Backups

We’ve reviewed how AMP handles backups compared to industry standards and identified fundamental flaws that needed addressed. We had to change the process to account for all scenarios that come up with game servers and applications. Here is the updated process so you can be prepared to make adjustments on your existing backups:

To avoid unexpected shutdowns for people who update without reading release notes, we are NOT retroactively applying these changes to existing scheduler tasks. This means existing backups may still cause corruption and should be recreated to follow the new logic.

Some applications support “quiesce” where we can send a command to tell the application “Don’t save anything else to the disk until we say otherwise.” The game continues to function in memory only until we give the okay to continue saving to disk. This is great because we can do what we need with the existing files with guarantees the application won’t be editing or adding files while we work. Minecraft and Minecraft Bedrock are the two apps that support this currently.

Applications that don’t support a quiesce must be shutdown to take a backup. This is the only feasible way to ensure the backup won’t be corrupted by the application fighting for access. We want to minimize downtime, so we came up with some methods to address this.

In all scenarios below, AMP will perform the steps and then start the application while continuing the compression of the staged files in the background.

On Linux:
If the AMP instance is on the same filesystem as the Backups folder, it will make a hardlink to a staging directory which is almost instant. Any changes to the files after this are tracked by the OS and do not impact the linked files.

If the AMP instance is on a different filesystem as the Backups folder, AMP will clone the files to the staging directory which is fast but may take a few seconds to a minute depending on the size and file count. This requires double the space during the backup only.

On Windows:
AMP will clone the files to the staging directory which is fast but may take a few seconds to a minute depending on the size and file count. This requires double the space during the backup only.

We’ve attempted to minimize any surprises by adding warnings in the scheduler and backups sections.

The backup task that includes a shutdown has been combined into the main task as a toggle, as seen in the screenshot above.

  • Display backup errors in pop up messages
  • Don’t fail the full backup due to file being inaccessible/not existing
  • Hide the “No Backup Schedule” notice on the Backups tab if user doesn’t have Scheduler permissions
  • Default “Use Smart Backup Exclusions” to on for new instances
  • Files re-indexed after quiesce to account for final changes by the application
  • Minecraft waits for “Saved the game” or timeout before continuing backup
  • Generic Module quiesce delay moved from 5ms to 5000ms (5 seconds)
  • Replaced per directory .backupExclude and .autoExclude with instance directory backupExclusions.conf and backupExclusionsAuto.conf to fix incompatibility with some game servers - File exclusion status shows in File Manager per file

Scheduler Changes

  • Variables error when no input selected or unsupported input type selected when a variable is clicked to add
  • Tasks are hidden that aren’t supported by the application (Check for Steam updates on non-Steam apps/Do something when last player leaves but no player tracking) - Existing schedules are not impacted, but will continue to work with the flawed logic
  • Default scheduled triggers that are automatically added in a new instance are based on the above logic as well
  • Prevent firing triggers that are disabled after startup
  • Fix the “x” button not closing the popup
  • Event triggers queue rather than silently dropping when multiple fire of the same type at once - Timed triggers will continue to be dropped to avoid accumulating the issue caused by long running tasks

Minecraft Changes

  • Allow empty setting values rather than reverting to defaults
  • Incorrect Java Version logic updated to properly change to the correct version when a wrong one is selected on startup. Added support for multiple modloaders
  • Fix Folia TPS monitoring
  • If “Specific Jar” is selected, reset it to Automatic when a new ModLoader or Version are selected
  • Fix for sleep on start where the server wouldn’t sleep after waking update
  • Velocity should select the latest non-SNAPSHOT release on Stable
  • Sleep mode now presents the proper server icon and text in grayscale rather than default icon and not formatted
  • Sleep mode wake up message support for languages that don’t use the Latin Alphabet
  • Switched Betacraft to handle alpha/beta/classic versions due to not being available from Mojang (IPv4 only due to DNS issues with their site)
  • Fix startup monitoring and arguments for many alpha/beta/classic versions
  • Adjust user join/leave tracking to handle [Something]PlayerName: format that certain mods use

ampinstmgr Changes

  • ampinstmgr upgradeall skips Docker image updates and marks all instances for update prior to restarting ADS - Fixes some instances not getting updated randomly
  • ampinstmgr validateInstance fixes for version checks and release streams
  • ampinstmgr reconfigure no longer deactivates an instance or resets settings (e.g. OIDC getting disabled)

getamp Changes

  • Add Docker dependency to prevent hard shutdown on Docker updates (obtain by running getamp update on existing installs)
  • PhotonOS fixes courtesy of rtfmoz2
  • Prerequisite package install ordering courtesy of rtfmoz2
  • Remove tput as a hard requirement

Further Fixes

  • Generic templates that only track on UserId/SessionId (as opposed to Username) now detects subsequent users
  • First time setup tutorial no longer recommends managing a new instance from a target
  • Podman instances with mounts in read only mode failed to start due to incorrect syntax
  • Starting instances on boot will continue starting instances after one fails instead of stopping the entire startup sequence
  • Add a check for network status on container instances to avoid starting AMP before the network stack is fully loaded

Known Issues

  • Existing backup tasks are removed erroneously