** Description changed:

+ Thank you @kevintate for the original bug report.
+ 
+ [Impact]
+ 
+ Currently there is an issue with the ac_on_power script where it thinks that 
USB-c ports with devices plugged in to them are plugged in to power. This is 
because the script does not check first if these usb-c ports are in sink or 
source mode first.
+ The solution is to check /sys/class/typec/* for the mode these usb ports are 
in, and ignore them if none of them are running in source mode.
+ 
+ [Test Plan]
+ 
+ On a device with a USB-c port (it does not matter if the port can be
+ used for powering the device or not) run the following test:
+ 
+ 1. Install the patched version of on_ac_power
+ 
+ 2. run: $ on_ac_power
+ 
+ 3. check the return value: $ echo $?
+ 
+ compare the return value with the actual state of the machine. If the
+ machine is not plugged in to power, you should expect 0 as the return
+ code.
+ 
+ If the machine is plugged in then the return code should be 1.
+ 
+ If you receive 255 as an return code then the script was unable to
+ determine the power profile of the machine and is related to the kernel
+ not exposing enough information to user space. Consumers of on_ac_power
+ generally consider such a return code as the machine being plugged in to
+ power.
+ 
+ [Where problems could occur]
+ 
+ * the script could still incorrectly return the state of power of the
+ machine, specially if the kernel incorrectly advertises a usbc port to
+ be in a different mode then it is in.
+ 
+ 
+ [Original Description]
  Good afternoon, folks.
  
  I believe I discovered a bug in the /usr/sbin/on_ac_power script. I have
  a Dell OptiPlex 5090 host that has an entry in /sys/class/power_supply
  for "ucsi-source-psy-USBC000:001". I believe this is the USB-C power
  delivery port on the front of the chassis. The issue I'm encountering is
  that /usr/sbin/on_ac_power is exiting with code 1 which states: (1
  (false) if not on AC power) when that isn't the case.
  
  This looks to be because of the ucsi-source-psy-USBC000:001 entry
  reporting the "online" status as 0, presumably because nothing is
  currently connected to that USB-C port.
  
  This causes /usr/sbin/on_ac_power to incorrectly report that the machine
  isn't connected to AC power and causes other utilities like unattended-
  upgrades to quit when using the default configuration since it believes
  the machine isn't connected to AC power.
  
  There is a workaround with unattended-upgrades where you can specify it
  to run regardless of if AC power is connected, but as more and more
  chassis implement power-delivery USB-C ports I foresee this becoming
  more of an issue.
  
  I'm not sure if it's anything to look into, but I figured I would share
  my findings. Please let me know if you have any questions or if I can
  provide any additional information, troubleshooting, or testing.
  
  Thanks!
  -Kevin

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1980991

Title:
  /usr/sbin/on_ac_power incorrectly reporting ac power status

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/powermgmt-base/+bug/1980991/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to