@cryptotaxi247 / netdata-1 / commits / 6f126a883

prevent invalid compression ratio values

Costa Tsaousis (ktsaou) committed Jun 1, 2016 at 10:23 UTC 6f126a88387c8614bd891479271c6e0c46cdfa2f
1 file changed +7 -5
src/plugin_proc.c
+7 -5
@@ -351,17 +351,19 @@ void *proc_main(void *ptr)
351 }
352 else rrdset_next(stcompression);
353
354 - unsigned long long gcontent_size = global_statistics.content_size;
354 + // since we don't lock here to read the global statistics
355 + // read the smaller value first
356 unsigned long long gcompressed_content_size = global_statistics.compressed_content_size;
357 + unsigned long long gcontent_size = global_statistics.content_size;
358
357 - unsigned long long content_size = gcontent_size - old_content_size;
359 unsigned long long compressed_content_size = gcompressed_content_size - old_compressed_content_size;
360 + unsigned long long content_size = gcontent_size - old_content_size;
361
360 - old_content_size = gcontent_size;
362 old_compressed_content_size = gcompressed_content_size;
363 + old_content_size = gcontent_size;
364
363 - if(content_size)
364 - compression_ratio = (content_size - compressed_content_size) * 100 * 1000 / content_size;
365 + if(content_size && content_size >= compressed_content_size)
366 + compression_ratio = ((content_size - compressed_content_size) * 100 * 1000) / content_size;
367
368 if(compression_ratio != -1)
369 rrddim_set(stcompression, "savings", compression_ratio);