diff options
Diffstat (limited to 'database/engine/rrdengineapi.c')
-rwxr-xr-x | database/engine/rrdengineapi.c | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/database/engine/rrdengineapi.c b/database/engine/rrdengineapi.c index c6b1fa2dd..318a933f1 100755 --- a/database/engine/rrdengineapi.c +++ b/database/engine/rrdengineapi.c @@ -534,7 +534,8 @@ static void rrdeng_store_metric_append_point(STORAGE_COLLECT_HANDLE *collection_ timing_step(TIMING_STEP_DBENGINE_MRG_UPDATE); } -static void store_metric_next_error_log(struct rrdeng_collect_handle *handle, usec_t point_in_time_ut, const char *msg) { +static void store_metric_next_error_log(struct rrdeng_collect_handle *handle __maybe_unused, usec_t point_in_time_ut __maybe_unused, const char *msg __maybe_unused) { +#ifdef NETDATA_INTERNAL_CHECKS time_t point_in_time_s = (time_t)(point_in_time_ut / USEC_PER_SEC); char uuid[UUID_STR_LEN + 1]; uuid_unparse(*mrg_metric_uuid(main_mrg, handle->metric), uuid); @@ -562,6 +563,9 @@ static void store_metric_next_error_log(struct rrdeng_collect_handle *handle, us ); buffer_free(wb); +#else + ; +#endif } void rrdeng_store_metric_next(STORAGE_COLLECT_HANDLE *collection_handle, @@ -808,12 +812,14 @@ static bool rrdeng_load_page_next(struct storage_engine_query_handle *rrddim_han if (unlikely(handle->now_s > rrddim_handle->end_time_s)) return false; - size_t entries; + size_t entries = 0; handle->page = pg_cache_lookup_next(ctx, handle->pdc, handle->now_s, handle->dt_s, &entries); - if (unlikely(!handle->page)) - return false; - internal_fatal(pgc_page_data(handle->page) == DBENGINE_EMPTY_PAGE, "Empty page returned"); + internal_fatal(handle->page && (pgc_page_data(handle->page) == DBENGINE_EMPTY_PAGE || !entries), + "A page was returned, but it is empty - pg_cache_lookup_next() should be handling this case"); + + if (unlikely(!handle->page || pgc_page_data(handle->page) == DBENGINE_EMPTY_PAGE || !entries)) + return false; time_t page_start_time_s = pgc_page_start_time_s(handle->page); time_t page_end_time_s = pgc_page_end_time_s(handle->page); @@ -1002,12 +1008,12 @@ bool rrdeng_metric_retention_by_uuid(STORAGE_INSTANCE *db_instance, uuid_t *dim_ return true; } -size_t rrdeng_disk_space_max(STORAGE_INSTANCE *db_instance) { +uint64_t rrdeng_disk_space_max(STORAGE_INSTANCE *db_instance) { struct rrdengine_instance *ctx = (struct rrdengine_instance *)db_instance; return ctx->config.max_disk_space; } -size_t rrdeng_disk_space_used(STORAGE_INSTANCE *db_instance) { +uint64_t rrdeng_disk_space_used(STORAGE_INSTANCE *db_instance) { struct rrdengine_instance *ctx = (struct rrdengine_instance *)db_instance; return __atomic_load_n(&ctx->atomic.current_disk_space, __ATOMIC_RELAXED); } |