Code

Merged branch 'master' of git://git.tokkee.org/sysdb.
[sysdb.git] / src / core / store.c
index ea30da90116d9925cd148e39f7577e346503ba42..eb58ad83b1ba2cd36b5fba803e42313758ea3d38 100644 (file)
@@ -850,6 +850,8 @@ sdb_store_fetch_timeseries(const char *hostname, const char *metric,
 
        sdb_timeseries_t *ts;
 
 
        sdb_timeseries_t *ts;
 
+       int status = 0;
+
        if ((! hostname) || (! metric) || (! opts) || (! buf))
                return -1;
 
        if ((! hostname) || (! metric) || (! opts) || (! buf))
                return -1;
 
@@ -876,6 +878,7 @@ sdb_store_fetch_timeseries(const char *hostname, const char *metric,
                sdb_log(SDB_LOG_ERR, "store: Failed to fetch time-series '%s/%s' "
                                "- no data-store configured for the stored metric",
                                hostname, metric);
                sdb_log(SDB_LOG_ERR, "store: Failed to fetch time-series '%s/%s' "
                                "- no data-store configured for the stored metric",
                                hostname, metric);
+               sdb_object_deref(SDB_OBJ(m));
                pthread_rwlock_unlock(&host_lock);
                return -1;
        }
                pthread_rwlock_unlock(&host_lock);
                return -1;
        }
@@ -893,13 +896,14 @@ sdb_store_fetch_timeseries(const char *hostname, const char *metric,
                        sdb_log(SDB_LOG_ERR, "store: Failed to fetch time-series '%s/%s' "
                                        "- %s fetcher callback returned no data for '%s'",
                                        hostname, metric, type, id);
                        sdb_log(SDB_LOG_ERR, "store: Failed to fetch time-series '%s/%s' "
                                        "- %s fetcher callback returned no data for '%s'",
                                        hostname, metric, type, id);
-                       return -1;
+                       status = -1;
                }
        }
 
        ts_tojson(ts, buf);
                }
        }
 
        ts_tojson(ts, buf);
+       sdb_object_deref(SDB_OBJ(m));
        sdb_timeseries_destroy(ts);
        sdb_timeseries_destroy(ts);
-       return 0;
+       return status;
 } /* sdb_store_fetch_timeseries */
 
 int
 } /* sdb_store_fetch_timeseries */
 
 int