(_ error)
| 102 | } |
| 103 | |
| 104 | func (w *moduleService) stop(_ error) error { |
| 105 | var err error |
| 106 | if w.service.State() == services.Running { |
| 107 | // Only wait for other modules, if underlying service is still running. |
| 108 | w.waitForModulesToStop() |
| 109 | |
| 110 | level.Debug(w.logger).Log("msg", "stopping", "module", w.name) |
| 111 | |
| 112 | err = services.StopAndAwaitTerminated(context.Background(), w.service) |
| 113 | } else { |
| 114 | err = w.service.FailureCase() |
| 115 | } |
| 116 | |
| 117 | if err != nil && err != ErrStopProcess { |
| 118 | level.Warn(w.logger).Log("msg", "module failed with error", "module", w.name, "err", err) |
| 119 | } else { |
| 120 | level.Info(w.logger).Log("msg", "module stopped", "module", w.name) |
| 121 | } |
| 122 | return err |
| 123 | } |
| 124 | |
| 125 | func (w *moduleService) waitForModulesToStop() { |
| 126 | // wait until all stopDeps have stopped |
nothing calls this directly
no test coverage detected