pterodactyl / panel

Pterodactyl® is a free, open-source game server management panel built with PHP, React, and Go. Designed with security in mind, Pterodactyl runs all game servers in isolated Docker containers while exposing a beautiful and intuitive UI to end users.
https://pterodactyl.io
Other
6.81k stars 1.74k forks source link

Backup limit exception on scheduled backups #4713

Closed UndercoverNL closed 6 months ago

UndercoverNL commented 1 year ago

Current Behavior

When creating a schedule with a backup task, when the backup limit is reached, the panel will still try to peform the InitiateBackupService, which will result in a TooManyBackupsException. Which causes the complete panel error logs to be spammed with Too Many Backups Exceptions when this happens frequently and with a lot of servers:

#35 {main}, 2023-03-01 00:02:05)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 42S22): SQLSTATE[42S22]: Column not found: 1054 Unknown column 'uuid' in 'field list' (SQL: insert into `failed_jobs` (`uuid`, `connection`, `queue`, `payload`, `exception`, `failed_at`) values (8a75dd2a-f62f-45a2-9497-8bc56b435dfe, redis, standard, {\"uuid\":\"8a75dd2a-f62f-45a2-9497-8bc56b435dfe\",\"timeout\":null,\"id\":\"4ZLELqo0InOvN11Ujd9Hw9dwn6580XQL\",\"backoff\":null,\"displayName\":\"Pterodactyl\\\\Jobs\\\\Schedule\\\\RunTaskJob\",\"maxTries\":null,\"failOnTimeout\":false,\"maxExceptions\":null,\"retryUntil\":null,\"job\":\"Illuminate\\\\Queue\\\\CallQueuedHandler@call\",\"data\":{\"command\":\"O:36:\\\"Pterodactyl\\\\Jobs\\\\Schedule\\\\RunTaskJob\\\":4:{s:4:\\\"task\\\";O:45:\\\"Illuminate\\\\Contracts\\\\Database\\\\ModelIdentifier\\\":5:{s:5:\\\"class\\\";s:23:\\\"Pterodactyl\\\\Models\\\\Task\\\";s:2:\\\"id\\\";i:510;s:9:\\\"relations\\\";a:2:{i:0;s:8:\\\"schedule\\\";i:1;s:14:\\\"schedule.tasks\\\";}s:10:\\\"connection\\\";s:5:\\\"mysql\\\";s:15:\\\"collectionClass\\\";N;}s:9:\\\"manualRun\\\";b:0;s:5:\\\"queue\\\";s:8:\\\"standard\\\";s:5:\\\"delay\\\";i:0;}\",\"commandName\":\"Pterodactyl\\\\Jobs\\\\Schedule\\\\RunTaskJob\"},\"attempts\":2}, Pterodactyl\\Exceptions\\Service\\Backup\\TooManyBackupsException: Cannot create a new backup, this server has reached its limit of 3 backups. in app/Services/Backups/InitiateBackupService.php:95

Expected Behavior

To not be logging an exception when the backup limit has been reached when creating scheduled backups.

Steps to Reproduce

Create a schedule with a backup task

Panel Version

1.11.3

Wings Version

any

Games and/or Eggs Affected

No response

Docker Image

No response

Error Logs

#35 {main}, 2023-03-01 00:02:05)) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 42S22): SQLSTATE[42S22]: Column not found: 1054 Unknown column 'uuid' in 'field list' (SQL: insert into `failed_jobs` (`uuid`, `connection`, `queue`, `payload`, `exception`, `failed_at`) values (8a75dd2a-f62f-45a2-9497-8bc56b435dfe, redis, standard, {\"uuid\":\"8a75dd2a-f62f-45a2-9497-8bc56b435dfe\",\"timeout\":null,\"id\":\"4ZLELqo0InOvN11Ujd9Hw9dwn6580XQL\",\"backoff\":null,\"displayName\":\"Pterodactyl\\\\Jobs\\\\Schedule\\\\RunTaskJob\",\"maxTries\":null,\"failOnTimeout\":false,\"maxExceptions\":null,\"retryUntil\":null,\"job\":\"Illuminate\\\\Queue\\\\CallQueuedHandler@call\",\"data\":{\"command\":\"O:36:\\\"Pterodactyl\\\\Jobs\\\\Schedule\\\\RunTaskJob\\\":4:{s:4:\\\"task\\\";O:45:\\\"Illuminate\\\\Contracts\\\\Database\\\\ModelIdentifier\\\":5:{s:5:\\\"class\\\";s:23:\\\"Pterodactyl\\\\Models\\\\Task\\\";s:2:\\\"id\\\";i:510;s:9:\\\"relations\\\";a:2:{i:0;s:8:\\\"schedule\\\";i:1;s:14:\\\"schedule.tasks\\\";}s:10:\\\"connection\\\";s:5:\\\"mysql\\\";s:15:\\\"collectionClass\\\";N;}s:9:\\\"manualRun\\\";b:0;s:5:\\\"queue\\\";s:8:\\\"standard\\\";s:5:\\\"delay\\\";i:0;}\",\"commandName\":\"Pterodactyl\\\\Jobs\\\\Schedule\\\\RunTaskJob\"},\"attempts\":2}, Pterodactyl\\Exceptions\\Service\\Backup\\TooManyBackupsException: Cannot create a new backup, this server has reached its limit of 3 backups. in app/Services/Backups/InitiateBackupService.php:95

Is there an existing issue for this?

Boy132 commented 1 year ago

Can't reproduce that.

Also, please upload your logs to pteropaste.com so they are easier to read. (e.g. tail -n 150 /var/www/pterodactyl/storage/logs/laravel-$(date +%F).log | nc pteropaste.com 99)