commit | bf8b1dadc117e93c1c9e328c8f3f7236483ee7f7 | [log] [tgz] |
---|---|---|
author | Yong Li <yong.b.li@linux.intel.com> | Wed Apr 15 16:32:50 2020 +0800 |
committer | Yong Li <yong.b.li@linux.intel.com> | Fri Apr 17 13:43:30 2020 +0800 |
tree | aaeefc1a7af0ccf38e2846dae6e58bfb5fa919d2 | |
parent | 17aba776373e14851a04e6b9ac518622b117b2a1 [diff] |
psusensor: Check if the object is still valid in the callback functions There is a chance that the service will crash if the sensor threshold is changed. The root cause is that threshold changing will trigger the deletion of sensors object, when the callback handler is executed after objects destroyed, the variables of objects are invalid. Adding a weak_ptr in the callback functions to check if the object is destroyed already, only access the variables if it is valid. Tested: Change/query the PSU sensor threshold using ipmi commands to trigger the sensor re-creation, the threshold config is correct, and there is no any psusensor crash log. Signed-off-by: Yong Li <yong.b.li@linux.intel.com> Change-Id: Ib8169aeffde18eeaf1a2491d205a808ea15a27d9
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.
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