Details
-
Regression
-
Status: Resolved
-
Critical
-
Resolution: Fixed
-
None
-
None
Description
There is some code in jmetric:
ScaledHistogramMetric::ScaledHistogramMetric(const char *name, const char *desc, StatisticMeasure units, const std::vector<__uint64> &bucketLimits, double limitsToMeasurementUnitsScaleFactor, const MetricMetaData &_metaData) : HistogramMetric{name, desc, units, bucketLimits, metaData}
Note it is incorrectly passing metaData rather than _metaData to the base class constructor.
It would be better if all the parameters to the constructors have leading underscores (so it is consistent with (most) of the rest of the platform) and help avoid potential problems like this.
Found by running the test under valgrind which reported the following:
.........==201723== Conditional jump or move depends on uninitialised value(s) ==201723== at 0x3837A7: std::_Vector_base<hpccMetrics::MetricMetaDataItem, std::allocator<hpccMetrics::MetricMetaDataItem> >::_M_allocate(unsigned long) (stl_vector.h:343) ==201723== by 0x382D7F: std::_Vector_base<hpccMetrics::MetricMetaDataItem, std::allocator<hpccMetrics::MetricMetaDataItem> >::_M_create_storage(unsigned long) (stl_vector.h:358) ==201723== by 0x3809A3: std::_Vector_base<hpccMetrics::MetricMetaDataItem, std::allocator<hpccMetrics::MetricMetaDataItem> >::_Vector_base(unsigned long, std::allocator<hpccMetrics::MetricMetaDataItem> const&) (stl_vector.h:302) ==201723== by 0x37E221: std::vector<hpccMetrics::MetricMetaDataItem, std::allocator<hpccMetrics::MetricMetaDataItem> >::vector(std::vector<hpccMetrics::MetricMetaDataItem, std::allocator<hpccMetrics::MetricMetaDataItem> > const&) (stl_vector.h:552) ==201723== by 0x375659: hpccMetrics::MetricBase::MetricBase(char const*, char const*, hpccMetrics::MetricType, StatisticMeasure, std::vector<hpccMetrics::MetricMetaDataItem, std::allocator<hpccMetrics::MetricMetaDataItem> > const&) (jmetrics.hpp:136) ==201723== by 0x8F09A37: hpccMetrics::HistogramMetric::HistogramMetric(char const*, char const*, StatisticMeasure, std::vector<unsigned long long, std::allocator<unsigned long long> > const&, std::vector<hpccMetrics::MetricMetaDataItem, std::allocator<hpccMetrics::MetricMetaDataItem> > const&) (jmetrics.cpp:32) ==201723== by 0x8F0A3C6: hpccMetrics::ScaledHistogramMetric::ScaledHistogramMetric(char const*, char const*, StatisticMeasure, std::vector<unsigned long long, std::allocator<unsigned long long> > const&, double, std::vector<hpccMetrics::MetricMetaDataItem, std::allocator<hpccMetrics::MetricMetaDataItem> > const&) (jmetrics.cpp:90)