(_ error)
| 78 | } |
| 79 | |
| 80 | func (w *moduleService) stop(_ error) error { |
| 81 | var err error |
| 82 | if w.service.State() == services.Running { |
| 83 | // Only wait for other modules, if underlying service is still running. |
| 84 | w.waitForModulesToStop() |
| 85 | |
| 86 | level.Debug(w.logger).Log("msg", "stopping", "module", w.name) |
| 87 | |
| 88 | err = services.StopAndAwaitTerminated(context.Background(), w.service) |
| 89 | } else { |
| 90 | err = w.service.FailureCase() |
| 91 | } |
| 92 | |
| 93 | if err != nil && err != ErrStopProcess { |
| 94 | level.Warn(w.logger).Log("msg", "module failed with error", "module", w.name, "err", err) |
| 95 | } else { |
| 96 | level.Info(w.logger).Log("msg", "module stopped", "module", w.name) |
| 97 | } |
| 98 | return err |
| 99 | } |
| 100 | |
| 101 | func (w *moduleService) waitForModulesToStop() { |
| 102 | // wait until all stopDeps have stopped |
nothing calls this directly
no test coverage detected