diff options
author | Stelios Fragkakis <52996999+stelfrag@users.noreply.github.com> | 2022-10-14 07:52:07 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-14 07:52:07 +0300 |
commit | fc52535a16cc25be155747f644ff5268492f459d (patch) | |
tree | 97e5a28f5b232ab460ae1d25e37a0aab31df2e6a /database | |
parent | 87cb78191fd95ca52d3d6b0a4212f6c9f7591ec5 (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
Diffstat (limited to 'database')
-rwxr-xr-x | database/engine/rrdengineapi.c | 3 |
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); |