[ML] Fix rare page crash when deleting anomaly detection job (#88622)

This commit is contained in:
James Gowdy 2021-01-19 11:27:19 +00:00 committed by GitHub
parent 1f4ee91908
commit b00fe2a4e7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -15,7 +15,15 @@ function formatData(txt) {
return numeral(txt).format(DATA_FORMAT);
}
export function formatValues([key, value]) {
export function formatValues(obj) {
if (!obj) {
// catch case that formatValues is called without a value.
// caused by very rare race condition when loading jobs list after deleting a job.
return ['', ''];
}
const [key, value] = obj;
// time
switch (key) {
case 'finished_time':
@ -28,8 +36,7 @@ export function formatValues([key, value]) {
case 'latest_empty_bucket_timestamp':
case 'latest_sparse_bucket_timestamp':
case 'latest_bucket_timestamp':
value = timeFormatter(value);
break;
return [key, timeFormatter(value)];
// data
case 'established_model_memory':
@ -38,8 +45,7 @@ export function formatValues([key, value]) {
case 'model_bytes_exceeded':
case 'model_bytes_memory_limit':
case 'peak_model_bytes':
value = formatData(value);
break;
return [key, formatData(value)];
// numbers
case 'processed_record_count':
@ -57,8 +63,7 @@ export function formatValues([key, value]) {
case 'total_partition_field_count':
case 'bucket_allocation_failures_count':
case 'search_count':
value = toLocaleString(value);
break;
return [key, toLocaleString(value)];
// numbers rounded to 3 decimal places
case 'average_search_time_per_bucket_ms':
@ -69,13 +74,14 @@ export function formatValues([key, value]) {
case 'average_bucket_processing_time_ms':
case 'exponential_average_bucket_processing_time_ms':
case 'exponential_average_bucket_processing_time_per_hour_ms':
value = typeof value === 'number' ? roundToDecimalPlace(value, 3).toLocaleString() : value;
break;
return [
key,
typeof value === 'number' ? roundToDecimalPlace(value, 3).toLocaleString() : value,
];
default:
break;
return [key, value];
}
return [key, value];
}
// utility function to filter child object and arrays out of the supplied object.