Revert "sensor: remove exception in error path"

This reverts commit 379b11316d55b114bdb1bfc5a49839b09ade9038, bringing
it back into line with expected ASIO callback behavior, as documented in
Ic3a36027fa95a77469439b296a1497634cfe030f. The reverted commit was based
on a misunderstanding of the ASIO error handling path.

Tested: With accompanying sdbusplus change, was able to override sensor
value only when ValidationUnsecure mode was enabled, and proper error
response was returned:

root@openbmc:~# busctl set-property xyz.openbmc_project.IpmbSensor \
  /xyz/openbmc_project/sensors/temperature/SSB_Temp \
  xyz.openbmc_project.Sensor.Value Value d 52
Failed to set property Value on interface xyz.openbmc_project.Sensor.Value: Not allowed to set property value.
root@openbmc:~# busctl set-property xyz.openbmc_project.SpecialMode \
  /xyz/openbmc_project/security/special_mode \
  xyz.openbmc_project.Security.SpecialMode SpecialMode s \
  xyz.openbmc_project.Control.Security.SpecialMode.Modes.ValidationUnsecure
root@openbmc:~# busctl set-property xyz.openbmc_project.IpmbSensor \
  /xyz/openbmc_project/sensors/temperature/SSB_Temp \
  xyz.openbmc_project.Sensor.Value Value d 52
root@openbmc:~#

Change-Id: I05c41318954d5d1549752c5ef2c227f3f22a45d3
Signed-off-by: Jonathan Doman <jonathan.doman@intel.com>
1 file changed
tree: 33b56082d2fc1027a2b9bf2404ccc5e9f52aa87d
  1. include/
  2. service_files/
  3. src/
  4. subprojects/
  5. tests/
  6. .clang-format
  7. .clang-ignore
  8. .clang-tidy
  9. .gitignore
  10. Jenkinsfile
  11. LICENSE
  12. MAINTAINERS
  13. meson.build
  14. meson_options.txt
  15. OWNERS
  16. 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

sensor documentation