Don't accidentally reset a server's state when starting it after a system reboot; closes pterodactyl/panel#2695
This commit is contained in:
parent
488ef9de54
commit
ffb6bd72ef
11
cmd/root.go
11
cmd/root.go
|
@ -250,13 +250,12 @@ func rootCmdRun(*cobra.Command, []string) {
|
||||||
if err := s.Environment.Attach(); err != nil {
|
if err := s.Environment.Attach(); err != nil {
|
||||||
s.Log().WithField("error", errors.WithStackIf(err)).Warn("failed to attach to running server environment")
|
s.Log().WithField("error", errors.WithStackIf(err)).Warn("failed to attach to running server environment")
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
return
|
// At this point we've determined that the server should indeed be in an offline state, so we'll
|
||||||
|
// make a call to set that state just to ensure we don't ever accidentally end up with some invalid
|
||||||
|
// state being tracked.
|
||||||
|
s.Environment.SetState(environment.ProcessOfflineState)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Addresses potentially invalid data in the stored file that can cause Wings to lose
|
|
||||||
// track of what the actual server state is.
|
|
||||||
s.Environment.SetState(environment.ProcessOfflineState)
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -15,15 +15,14 @@ import (
|
||||||
// Attach to the instance and then automatically emit an event whenever the resource usage for the
|
// Attach to the instance and then automatically emit an event whenever the resource usage for the
|
||||||
// server process changes.
|
// server process changes.
|
||||||
func (e *Environment) pollResources(ctx context.Context) error {
|
func (e *Environment) pollResources(ctx context.Context) error {
|
||||||
l := log.WithField("container_id", e.Id)
|
|
||||||
|
|
||||||
l.Debug("starting resource polling for container")
|
|
||||||
defer l.Debug("stopped resource polling for container")
|
|
||||||
|
|
||||||
if e.st.Load() == environment.ProcessOfflineState {
|
if e.st.Load() == environment.ProcessOfflineState {
|
||||||
return errors.New("cannot enable resource polling on a stopped server")
|
return errors.New("cannot enable resource polling on a stopped server")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
l := log.WithField("container_id", e.Id)
|
||||||
|
l.Debug("starting resource polling for container")
|
||||||
|
defer l.Debug("stopped resource polling for container")
|
||||||
|
|
||||||
stats, err := e.client.ContainerStats(context.Background(), e.Id, true)
|
stats, err := e.client.ContainerStats(context.Background(), e.Id, true)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return errors.WithStackIf(err)
|
return errors.WithStackIf(err)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user