mirror of
https://github.com/ClusterCockpit/cc-backend
synced 2026-07-22 06:50:38 +02:00
fix: set NodeProvider before metricstore Init so checkpoint load sees it
This commit is contained in:
@@ -368,12 +368,15 @@ func runServer(ctx context.Context) error {
|
|||||||
mscfg := ccconf.GetPackageConfig("metric-store")
|
mscfg := ccconf.GetPackageConfig("metric-store")
|
||||||
if mscfg != nil {
|
if mscfg != nil {
|
||||||
metrics := metricstore.BuildMetricList()
|
metrics := metricstore.BuildMetricList()
|
||||||
|
// The NodeProvider MUST be set before Init: the checkpoint load inside
|
||||||
|
// Init consults it to load the full history for nodes with running
|
||||||
|
// jobs. InitMetrics is sync.Once-guarded, so the second call inside
|
||||||
|
// Init is a no-op. The repository is injected as NodeProvider to
|
||||||
|
// break the import cycle.
|
||||||
|
metricstore.InitMetrics(metrics)
|
||||||
|
metricstore.GetMemoryStore().SetNodeProvider(repository.GetJobRepository())
|
||||||
metricstore.Init(mscfg, metrics, &wg)
|
metricstore.Init(mscfg, metrics, &wg)
|
||||||
|
|
||||||
// Inject repository as NodeProvider to break import cycle
|
|
||||||
ms := metricstore.GetMemoryStore()
|
|
||||||
jobRepo := repository.GetJobRepository()
|
|
||||||
ms.SetNodeProvider(jobRepo)
|
|
||||||
metricstore.MetricStoreHandle = &metricstore.InternalMetricStore{}
|
metricstore.MetricStoreHandle = &metricstore.InternalMetricStore{}
|
||||||
haveMetricstore = true
|
haveMetricstore = true
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user