diff options
author | Arne Juul <arnej@yahoo-inc.com> | 2018-06-12 12:50:28 +0200 |
---|---|---|
committer | Arne Juul <arnej@yahoo-inc.com> | 2018-06-12 13:51:45 +0200 |
commit | 016e584f0ad5a071e13d75eb8ad5ddb46b8c54f5 (patch) | |
tree | 869d4e4a4c4b8a9f9ef691b2980009017dece9e6 /eval | |
parent | 22796dddd3dc025018093783328ac87535ffecd9 (diff) |
use LOG_ABORT not just abort()
* abort() has the unfortunate effect that nothing is seen in the log,
just an event (which is usually not displayed); so ops people don't
see that the program is crashing at all.
* LOG_ABORT("message") will log an error with the message (and the file
and line) before calling abort(), so it's easy to see what happened.
* add or move <vespa/log/log.h> include and LOG_SETUP lines before
LOG_ABORT is used (or included).
Diffstat (limited to 'eval')
8 files changed, 30 insertions, 10 deletions
diff --git a/eval/src/vespa/eval/eval/aggr.cpp b/eval/src/vespa/eval/eval/aggr.cpp index f6f04cde6be..8aacac64041 100644 --- a/eval/src/vespa/eval/eval/aggr.cpp +++ b/eval/src/vespa/eval/eval/aggr.cpp @@ -3,6 +3,9 @@ #include "aggr.h" #include <vespa/vespalib/util/stash.h> +#include <vespa/log/log.h> +LOG_SETUP(".eval.eval.aggr"); + namespace vespalib { namespace eval { @@ -117,7 +120,7 @@ Aggregator::create(Aggr aggr, Stash &stash) case Aggr::MAX: return stash.create<Max>(); case Aggr::MIN: return stash.create<Min>(); } - abort(); + LOG_ABORT("should not be reached"); } } // namespace vespalib::eval diff --git a/eval/src/vespa/eval/eval/basic_nodes.h b/eval/src/vespa/eval/eval/basic_nodes.h index ebf65178b99..e6caf052367 100644 --- a/eval/src/vespa/eval/eval/basic_nodes.h +++ b/eval/src/vespa/eval/eval/basic_nodes.h @@ -2,6 +2,7 @@ #pragma once +#include <vespa/log/log.h> #include <vespa/vespalib/stllike/string.h> #include <vespa/vespalib/util/stringfmt.h> #include <vespa/vespalib/util/string_hash.h> @@ -80,7 +81,7 @@ const T *as(const Node &node) { return dynamic_cast<const T *>(&node); } struct Leaf : public Node { size_t num_children() const override { return 0; } const Node &get_child(size_t) const override { - abort(); + LOG_ABORT("should not be reached"); } void detach_children(NodeHandler &) override {} }; diff --git a/eval/src/vespa/eval/eval/llvm/compiled_function.cpp b/eval/src/vespa/eval/eval/llvm/compiled_function.cpp index a696f16f849..4c911ee6e44 100644 --- a/eval/src/vespa/eval/eval/llvm/compiled_function.cpp +++ b/eval/src/vespa/eval/eval/llvm/compiled_function.cpp @@ -10,6 +10,9 @@ #include <vespa/vespalib/util/benchmark_timer.h> #include <vespa/vespalib/util/approx.h> +#include <vespa/log/log.h> +LOG_SETUP(".eval.eval.llvm.compiled_function"); + namespace vespalib { namespace eval { @@ -113,7 +116,7 @@ CompiledFunction::estimate_cost_us(const std::vector<double> ¶ms, double bud auto baseline = [&](){empty(params[0], params[1], params[2], params[3], params[4]);}; return BenchmarkTimer::benchmark(actual, baseline, budget) * 1000.0 * 1000.0; } - abort(); + LOG_ABORT("should not be reached"); } Function::Issues diff --git a/eval/src/vespa/eval/eval/tensor_function.cpp b/eval/src/vespa/eval/eval/tensor_function.cpp index 3f79ac848ce..10e589c832c 100644 --- a/eval/src/vespa/eval/eval/tensor_function.cpp +++ b/eval/src/vespa/eval/eval/tensor_function.cpp @@ -9,6 +9,9 @@ #include "visit_stuff.h" #include <vespa/vespalib/objects/objectdumper.h> +#include <vespa/log/log.h> +LOG_SETUP(".eval.eval.tensor_function"); + namespace vespalib { namespace eval { @@ -292,7 +295,7 @@ If::compile_self(Stash &) const { // 'if' is handled directly by compile_tensor_function to enable // lazy-evaluation of true/false sub-expressions. - abort(); + LOG_ABORT("should not be reached"); } void diff --git a/eval/src/vespa/eval/tensor/dense/dense_add_dimension_optimizer.cpp b/eval/src/vespa/eval/tensor/dense/dense_add_dimension_optimizer.cpp index 9baaa596d9f..cd874186e46 100644 --- a/eval/src/vespa/eval/tensor/dense/dense_add_dimension_optimizer.cpp +++ b/eval/src/vespa/eval/tensor/dense/dense_add_dimension_optimizer.cpp @@ -6,6 +6,9 @@ #include <vespa/eval/eval/operation.h> #include <vespa/eval/eval/value.h> +#include <vespa/log/log.h> +LOG_SETUP(".eval.tensor.dense.add_dimension_optimizer"); + namespace vespalib::tensor { using eval::ValueType; diff --git a/eval/src/vespa/eval/tensor/serialization/typed_binary_format.cpp b/eval/src/vespa/eval/tensor/serialization/typed_binary_format.cpp index 5db4f0aeb12..fe35ce4c831 100644 --- a/eval/src/vespa/eval/tensor/serialization/typed_binary_format.cpp +++ b/eval/src/vespa/eval/tensor/serialization/typed_binary_format.cpp @@ -10,6 +10,9 @@ #include <vespa/eval/eval/simple_tensor.h> #include <vespa/eval/tensor/wrapped_simple_tensor.h> +#include <vespa/log/log.h> +LOG_SETUP(".eval.tensor.serialization.typed_binary_format"); + using vespalib::nbostream; namespace vespalib { @@ -48,7 +51,7 @@ TypedBinaryFormat::deserialize(nbostream &stream) stream.adjustReadPos(read_pos - stream.rp()); return std::make_unique<WrappedSimpleTensor>(eval::SimpleTensor::decode(stream)); } - abort(); + LOG_ABORT("should not be reached"); } diff --git a/eval/src/vespa/eval/tensor/sparse/direct_sparse_tensor_builder.h b/eval/src/vespa/eval/tensor/sparse/direct_sparse_tensor_builder.h index 9ec98b2c11d..341e443b218 100644 --- a/eval/src/vespa/eval/tensor/sparse/direct_sparse_tensor_builder.h +++ b/eval/src/vespa/eval/tensor/sparse/direct_sparse_tensor_builder.h @@ -2,6 +2,7 @@ #pragma once +#include <vespa/log/log.h> #include <vespa/eval/tensor/direct_tensor_builder.h> #include "sparse_tensor.h" #include "sparse_tensor_address_builder.h" @@ -105,7 +106,7 @@ public: void insertCell(SparseTensorAddressRef address, double value) { // This address should not already exist and a new cell should be inserted. - insertCell(address, value, [](double, double) -> double { abort(); }); + insertCell(address, value, [](double, double) -> double { LOG_ABORT("should not be reached"); }); } template <class Function> @@ -116,7 +117,7 @@ public: void insertCell(SparseTensorAddressBuilder &address, double value) { // This address should not already exist and a new cell should be inserted. - insertCell(address.getAddressRef(), value, [](double, double) -> double { abort(); }); + insertCell(address.getAddressRef(), value, [](double, double) -> double { LOG_ABORT("should not be reached"); }); } eval::ValueType &fast_type() { return _type; } diff --git a/eval/src/vespa/eval/tensor/wrapped_simple_tensor.cpp b/eval/src/vespa/eval/tensor/wrapped_simple_tensor.cpp index 463105b7c1f..84ed393823e 100644 --- a/eval/src/vespa/eval/tensor/wrapped_simple_tensor.cpp +++ b/eval/src/vespa/eval/tensor/wrapped_simple_tensor.cpp @@ -7,6 +7,9 @@ #include <vespa/eval/eval/tensor_spec.h> #include <vespa/vespalib/util/stringfmt.h> +#include <vespa/log/log.h> +LOG_SETUP(".eval.tensor.wrapped_simple_tensor"); + namespace vespalib::tensor { bool @@ -59,21 +62,21 @@ WrappedSimpleTensor::clone() const Tensor::UP WrappedSimpleTensor::apply(const CellFunction &) const { - abort(); + LOG_ABORT("should not be reached"); return Tensor::UP(); } Tensor::UP WrappedSimpleTensor::join(join_fun_t, const Tensor &) const { - abort(); + LOG_ABORT("should not be reached"); return Tensor::UP(); } Tensor::UP WrappedSimpleTensor::reduce(join_fun_t, const std::vector<vespalib::string> &) const { - abort(); + LOG_ABORT("should not be reached"); return Tensor::UP(); } |