summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStelios Fragkakis <52996999+stelfrag@users.noreply.github.com>2022-10-14 07:52:07 +0300
committerGitHub <noreply@github.com>2022-10-14 07:52:07 +0300
commitfc52535a16cc25be155747f644ff5268492f459d (patch)
tree97e5a28f5b232ab460ae1d25e37a0aab31df2e6a
parent87cb78191fd95ca52d3d6b0a4212f6c9f7591ec5 (diff)
Fix crash on child reconnect and lost metrics (#13821)
Increase page_index reference count on metric_get Don't free the db_metric_handle
-rwxr-xr-xdatabase/engine/rrdengineapi.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/database/engine/rrdengineapi.c b/database/engine/rrdengineapi.c
index 535d729a67..d9adb8e301 100755
--- a/database/engine/rrdengineapi.c
+++ b/database/engine/rrdengineapi.c
@@ -124,8 +124,6 @@ void rrdeng_metric_release(STORAGE_METRIC_HANDLE *db_metric_handle) {
page_index->alignment = NULL;
}
uv_rwlock_rdunlock(&pg_cache->metrics_index.lock);
-
- freez(db_metric_handle);
}
STORAGE_METRIC_HANDLE *rrdeng_metric_get(STORAGE_INSTANCE *db_instance, uuid_t *uuid, STORAGE_METRICS_GROUP *smg) {
@@ -170,6 +168,7 @@ STORAGE_METRIC_HANDLE *rrdeng_metric_create(STORAGE_INSTANCE *db_instance, uuid_
page_index->prev = pg_cache->metrics_index.last_page_index;
pg_cache->metrics_index.last_page_index = page_index;
page_index->alignment = pa;
+ page_index->refcount = 1;
if(pa)
pa->refcount++;
uv_rwlock_wrunlock(&pg_cache->metrics_index.lock);