Skip to content

Commit 5a74217

Browse files
committed
FIX: loop in shutdown code rewritten to work properly
Signed-off-by: invario <67800603+invario@users.noreply.github.com>
1 parent e09b968 commit 5a74217

File tree

1 file changed

+25
-10
lines changed

1 file changed

+25
-10
lines changed

backend/networking/shutdown.go

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -61,31 +61,46 @@ func ShutdownDevice(device *core.Record) error {
6161

6262
for {
6363
select {
64-
case <-time.After(1 * time.Second):
65-
if time.Since(start) >= time.Duration(shutdownTimeout)*time.Second {
66-
if err := KillProcess(cmd.Process); err != nil {
67-
logger.Error.Println(err)
64+
case err := <-done:
65+
if err != nil {
66+
return fmt.Errorf("%s", stderr.String())
67+
} else {
68+
for {
69+
isOnline, err := PingDevice(device)
70+
if err != nil {
71+
logger.Error.Println(err)
72+
return err
73+
}
74+
if isOnline {
75+
if time.Since(start) >= time.Duration(shutdownTimeout)*time.Second {
76+
return fmt.Errorf("%s not offline after %d seconds", device.GetString("name"), shutdownTimeout)
77+
}
78+
}
79+
if !isOnline {
80+
return nil
81+
}
82+
time.Sleep(1 * time.Second)
6883
}
69-
return fmt.Errorf("%s not offline after %d seconds", device.GetString("name"), shutdownTimeout)
7084
}
85+
default:
7186
isOnline, err := PingDevice(device)
7287
if err != nil {
7388
logger.Error.Println(err)
7489
return err
7590
}
76-
if !isOnline {
91+
if time.Since(start) >= time.Duration(shutdownTimeout)*time.Second {
7792
if err := KillProcess(cmd.Process); err != nil {
7893
logger.Error.Println(err)
7994
}
80-
return nil
95+
return fmt.Errorf("%s not offline after %d seconds", device.GetString("name"), shutdownTimeout)
8196
}
82-
case err := <-done:
83-
if err != nil {
97+
if !isOnline {
8498
if err := KillProcess(cmd.Process); err != nil {
8599
logger.Error.Println(err)
86100
}
87-
return fmt.Errorf("%s", stderr.String())
101+
return nil
88102
}
103+
time.Sleep(1 * time.Second)
89104
}
90105
}
91106
}

0 commit comments

Comments
 (0)