Add an error handling logic of stod

Very rarely this error comes in host power cycle stress tests:
intel-obmc cpusensor[234]: terminate called after throwing an instance of 'std::invalid_argument'
intel-obmc cpusensor[234]:   what():  stod
intel-obmc systemd[1]: xyz.openbmc_project.cpusensor.service: Main process exited, code=killed, status=6/ABRT
intel-obmc systemd[1]: xyz.openbmc_project.cpusensor.service: Failed with result 'signal'.

To handle this case gracefully, this commit adds an exceptional error
handling logic.

Tested: CPU sensor service worked well.

Change-Id: Id65b9b6ee65386f81e966eca1d13586248d2af07
Signed-off-by: Jae Hyun Yoo <jae.hyun.yoo@linux.intel.com>
1 file changed
tree: 23b20960a449525c65a37a0b83f59cf73823c8e2
  1. cmake/
  2. include/
  3. service_files/
  4. src/
  5. tests/
  6. .clang-format
  7. .clang-ignore
  8. .gitignore
  9. cmake-format.json
  10. CMakeLists.txt
  11. Jenkinsfile
  12. LICENSE
  13. MAINTAINERS
  14. README.md
README.md

dbus-sensors

dbus-sensors is a collection of sensor applications that provide the xyz.openbmc_project.Sensor collection of interfaces. They read sensor values from hwmon, d-bus, or direct driver access to provide readings. Some advance non-sensor features such as fan presence, pwm control, and automatic cpu detection (x86) are also supported.

key features

  • runtime re-configurable from d-bus (entity-manager or the like)

  • isolated: each sensor type is isolated into its own daemon, so a bug in one sensor is unlikely to affect another, and single sensor modifications are possible

  • async single-threaded: uses sdbusplus/asio bindings

  • multiple data inputs: hwmon, d-bus, direct driver access