coolify/app/Jobs
Andras Bacsai ed979f42ef Fix SSH multiplexing contention for concurrent scheduled tasks (#6736)
When multiple scheduled tasks or database backups run concurrently on
the same server, they compete for the same SSH multiplexed connection
socket, causing race conditions and SSH exit code 255 errors.

This fix adds a `disableMultiplexing` parameter to bypass SSH
multiplexing for jobs that may run concurrently:

- Add `disableMultiplexing` param to `generateSshCommand()`
- Add `disableMultiplexing` param to `instant_remote_process()`
- Update `ScheduledTaskJob` to use `disableMultiplexing: true`
- Update `DatabaseBackupJob` to use `disableMultiplexing: true`
- Add debug logging to track execution without multiplexing
- Add unit tests for the new parameter

Each backup and scheduled task now gets an isolated SSH connection,
preventing contention on the shared multiplexed socket.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-05 09:54:30 +01:00
..
ApplicationDeploymentJob.php Fix Nixpacks null environment variable parsing error 2025-12-04 15:10:39 +01:00
ApplicationPullRequestUpdateJob.php Merge branch 'next' into feat/update-applicationpullrequestupdatejob-documentation 2025-10-15 00:59:02 +02:00
CheckAndStartSentinelJob.php fix: add timeout to sentinel process checks for improved reliability 2025-01-10 13:03:47 +01:00
CheckForUpdatesJob.php Fix: Version downgrade prevention - validate cache and add running version checks 2025-11-28 16:05:41 +01:00
CheckHelperImageJob.php Fix: Prevent version downgrades and centralize CDN configuration (#7383) 2025-11-28 15:20:33 +01:00
CheckTraefikVersionForServerJob.php Add real-time UI updates after Traefik version check 2025-12-03 09:56:04 +01:00
CheckTraefikVersionJob.php refactor: send immediate Traefik version notifications instead of delayed aggregation 2025-11-18 14:54:21 +01:00
CleanupHelperContainersJob.php fix(deployment): prevent base deployments from being killed when PRs close (#7113) 2025-11-09 14:41:35 +01:00
CleanupInstanceStuffsJob.php feat(email): implement email change request and verification process 2025-08-18 14:54:08 +02:00
CleanupStaleMultiplexedConnections.php Revert "rector: arrrrr" 2025-01-07 15:31:43 +01:00
CoolifyTask.php feat: streamline S3 restore with single-step flow and improved UI consistency 2025-11-17 10:05:18 +01:00
DatabaseBackupJob.php Fix SSH multiplexing contention for concurrent scheduled tasks (#6736) 2025-12-05 09:54:30 +01:00
DeleteResourceJob.php Merge branch 'next' into shadow/fix-docker-time-command 2025-11-28 10:25:42 +01:00
DockerCleanupJob.php fix(docker): volumes get delete when stopping a service if Delete Unused Volumes is activated (#6317) 2025-08-04 21:15:56 +02:00
GithubAppPermissionJob.php Revert "rector: arrrrr" 2025-01-07 15:31:43 +01:00
PullChangelog.php refactor(jobs): pull github changelogs from cdn instead of github 2025-09-01 16:13:55 +02:00
PullTemplatesFromCDN.php refactor(templates): update service template file handling to use dynamic file name from constants 2025-08-12 10:06:19 +02:00
PushServerUpdateJob.php Fix container status display: preserve "Restarting" for applications and sub-resources 2025-12-03 08:23:35 +01:00
RegenerateSslCertJob.php refactor: replace direct SslCertificate queries with server relationship methods for consistency 2025-10-09 17:00:05 +02:00
RestartProxyJob.php Fix container name conflict during proxy restart 2025-12-03 16:30:27 +01:00
ScheduledJobManager.php feat(jobs): improve scheduled tasks with retry logic and queue cleanup 2025-11-10 11:11:18 +01:00
ScheduledTaskJob.php Fix SSH multiplexing contention for concurrent scheduled tasks (#6736) 2025-12-05 09:54:30 +01:00
SendMessageToDiscordJob.php Revert "rector: arrrrr" 2025-01-07 15:31:43 +01:00
SendMessageToPushoverJob.php Revert "rector: arrrrr" 2025-01-07 15:31:43 +01:00
SendMessageToSlackJob.php feat(slack): Show message title in notification previews (#5063) 2025-02-11 16:31:37 +01:00
SendMessageToTelegramJob.php Revert "rector: arrrrr" 2025-01-07 15:31:43 +01:00
SendWebhookJob.php feat: implement actual webhook delivery with Ray debugging 2025-10-10 18:07:04 +02:00
ServerCheckJob.php fix(jobs): update middleware to use expireAfter for WithoutOverlapping in multiple job classes 2025-07-01 10:50:27 +02:00
ServerCleanupMux.php Revert "rector: arrrrr" 2025-01-07 15:31:43 +01:00
ServerConnectionCheckJob.php fix: improve error logging and handling in ServerConnectionCheckJob for Hetzner server status 2025-10-10 10:12:59 +02:00
ServerFilesFromServerJob.php fix: make sure important jobs/actions are running on high prio queue 2024-11-22 11:16:01 +01:00
ServerLimitCheckJob.php Revert "rector: arrrrr" 2025-01-07 15:31:43 +01:00
ServerManagerJob.php Merge branch 'next' into macau-v1 2025-12-04 15:07:36 +01:00
ServerPatchCheckJob.php fix(jobs): update middleware to use expireAfter for WithoutOverlapping in multiple job classes 2025-07-01 10:50:27 +02:00
ServerStorageCheckJob.php fix(horizon): add silenced jobs 2025-07-12 14:44:32 +02:00
ServerStorageSaveJob.php fix: make sure important jobs/actions are running on high prio queue 2024-11-22 11:16:01 +01:00
StripeProcessJob.php feat(stripe): enhance subscription handling and verification process 2025-09-23 11:00:38 +02:00
SubscriptionInvoiceFailedJob.php refactor(stripe-jobs): comment out internal notification calls and add subscription status verification before sending failure notifications 2025-09-13 19:35:32 +02:00
UpdateCoolifyJob.php Revert "rector: arrrrr" 2025-01-07 15:31:43 +01:00
UpdateStripeCustomerEmailJob.php feat(email): implement email change request and verification process 2025-08-18 14:54:08 +02:00
ValidateAndInstallServerJob.php fix: resolve Docker validation race conditions and sudo prefix bug 2025-11-27 09:04:42 +01:00
VerifyStripeSubscriptionStatusJob.php fix(subscription-job): enhance retry logic for VerifyStripeSubscriptionStatusJob 2025-09-23 18:17:52 +02:00
VolumeCloneJob.php feat: remote server volume cloning 2025-01-13 11:13:15 +01:00