mirror of
https://github.com/tiennm99/coolify.git
synced 2026-04-17 17:21:04 +00:00
Fix ineffective restartInitiated guard with proper debouncing
The guard was setting and immediately resetting the flag in the same synchronous execution, providing no actual protection. Now the flag stays true until proxy reaches a stable state (running/exited/error) via WebSocket notification, with additional client-side guard. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -67,7 +67,7 @@ class Navbar extends Component
|
||||
try {
|
||||
$this->authorize('manageProxy', $this->server);
|
||||
|
||||
// Prevent duplicate restart messages (e.g., from double-click or re-render)
|
||||
// Prevent duplicate restart calls
|
||||
if ($this->restartInitiated) {
|
||||
return;
|
||||
}
|
||||
@@ -75,10 +75,6 @@ class Navbar extends Component
|
||||
|
||||
// Always use background job for all servers
|
||||
RestartProxyJob::dispatch($this->server);
|
||||
// $this->dispatch('info', 'Proxy restart initiated.');
|
||||
|
||||
// Reset the flag after a short delay to allow future restarts
|
||||
$this->restartInitiated = false;
|
||||
|
||||
} catch (\Throwable $e) {
|
||||
$this->restartInitiated = false;
|
||||
@@ -147,6 +143,11 @@ class Navbar extends Component
|
||||
$this->dispatch('activityMonitor', $event['activityId']);
|
||||
}
|
||||
|
||||
// Reset restart flag when proxy reaches a stable state
|
||||
if (in_array($this->proxyStatus, ['running', 'exited', 'error'])) {
|
||||
$this->restartInitiated = false;
|
||||
}
|
||||
|
||||
// Skip notification if we already notified about this status (prevents duplicates)
|
||||
if ($this->lastNotifiedStatus === $this->proxyStatus) {
|
||||
return;
|
||||
|
||||
@@ -181,6 +181,7 @@
|
||||
}
|
||||
});
|
||||
$wire.$on('restartEvent', () => {
|
||||
if ($wire.restartInitiated) return;
|
||||
window.dispatchEvent(new CustomEvent('startproxy'))
|
||||
$wire.$call('restart');
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user