Bug 500843

Summary: "Power Management settings could not be loaded" after update to 6.3.1.1 (Assertion failed: "bus_info" in file ddc_packet_io.c at line 266)
Product: [Plasma] plasmashell Reporter: JJ <web>
Component: Power management & brightnessAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED UPSTREAM    
Severity: normal CC: cptncosmo, jared, martin+kde, nate, nicolas.fella, rockowitz, victorsouzaleal, zhaierfang0208
Priority: NOR    
Version First Reported In: 6.3.1   
Target Milestone: 1.0   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed In: ddcutil 2.2.1
Sentry Crash Report:
Attachments: The error message displayed opening Power Management in settings.
powerdevil systemd status

Description JJ 2025-02-27 22:59:25 UTC
Created attachment 178960 [details]
The error message displayed opening Power Management in settings.

SUMMARY
After a recent update (checking my package manager: 6.3.1.1, though I could have been updating it from 6.2.x) my Power Management settings are all messed up. The immediate effect is that:
1) my battery indicator applet disappears from the dock
2) my laptop increase/decrease screen brightness keys do not work
3) opening "Power Management" in settings displays a screen saying "Power Management settings could not be loaded" "The Power Management service appears not to be running."

This is the same behavior as found here: https://old.reddit.com/r/kde/comments/1iov47k/. However, I do not know what "Klassy" is or have it installed, and I am on Arch Linux, not Fedora.

STEPS TO REPRODUCE
Unreproducible. Even triggering the bug is not consistent. My indicator comes back on reboot, but disappears later, and I have not quite figured out what triggers it yet.

I'd be grateful for any advice in debugging and tracking this down... currently I have to run `acpi -i` in the terminal every so often to make sure my laptop does not crash.

OBSERVED RESULT
Discussed in Summary.

EXPECTED RESULT
The battery service to function normally.

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: 6.12.16-1-lts (Arch Linux)
KDE Plasma Version: 6.3.1
KDE Frameworks Version: 6.11.0
Qt Version: 6.8.2

ADDITIONAL INFORMATION
Comment 1 Nicolas Fella 2025-02-28 11:31:41 UTC
Please show the output of running "systemctl --user status plasma-powerdevil.service" while it's broken
Comment 2 Victor 2025-02-28 12:26:29 UTC
Created attachment 178975 [details]
powerdevil systemd status

I'm having the same problem with it, but in my case it's on the Desktop, whenever my screen comes back from sleep, Powerdevil stops working.
Comment 3 Nate Graham 2025-02-28 17:00:47 UTC
Let's let JJ respond before debugging further to make sure that both of you are hitting the same issue (Viktor's issue is an assert in DDC code).
Comment 4 Victor 2025-02-28 17:50:52 UTC
(In reply to Nate Graham from comment #3)
> Let's let JJ respond before debugging further to make sure that both of you
> are hitting the same issue (Viktor's issue is an assert in DDC code).

Yes, sorry, it's the first time I've sent a report and I found it a bit confusing, do you think I should do a separate report?
Comment 5 Nate Graham 2025-02-28 20:21:57 UTC
If JJ has the same assert in DDC that you have, then there's no need since your issue is the same. If not, then yeah, make a new bug report for your issue.
Comment 6 Victor 2025-02-28 20:26:56 UTC
I did some tests and it seems that this is related to a modified EDID so that I can force the use of pixel format RGB.

I undid the changes and so far I haven't had the error again.
Comment 7 Victor 2025-02-28 20:49:56 UTC
(In reply to Victor from comment #6)
> I did some tests and it seems that this is related to a modified EDID so
> that I can force the use of pixel format RGB.
> 
> I undid the changes and so far I haven't had the error again.

Nah, just happened again :( i'll wait for JJ and then open a new bug report if needed 

Thanks
Comment 8 JJ 2025-02-28 22:59:34 UTC
I rebooted shortly after reporting, and have not run into it again since - I'll update here when it next occurs.
Comment 9 19484 2025-03-02 01:35:40 UTC
Restoring default fonts can avoid crashes I suspect and font settings related
Comment 10 JJ 2025-03-13 03:20:33 UTC
I have (finally) re-triggered this bug. It has something to do with external monitors. The output of `systemctl --user status plasma-powerdevil.service` is below:

```bash
○ plasma-powerdevil.service - Powerdevil
     Loaded: loaded (/usr/lib/systemd/user/plasma-powerdevil.service; static)
     Active: inactive (dead) since Wed 2025-03-12 20:16:08 PDT; 2min 52s ago
   Duration: 3d 1h 29min 3.794s
 Invocation: e01035822b3544d19a9d159ddab777d0
    Process: 1203 ExecStart=/usr/lib/org_kde_powerdevil (code=killed, signal=TERM)
   Main PID: 1203 (code=killed, signal=TERM)
   Mem peak: 13.3M (swap: 7.1M)
        CPU: 1min 1.696s

Mar 12 20:16:08 arch org_kde_powerdevil[1203]: [346881] Emitting DDCA_Display_Status_Event[264544.462:  DDCA_EVENT_DISPLAY_CONNECTED, card1-HDMI-A-1, dref: DDCA_Display_Ref[11], io_path:/dev/i2c-1, ddc working: true]
Mar 12 20:16:08 arch org_kde_powerdevil[1203]: [346881] libddcutil callback thread 0x7ab908014220 started
Mar 12 20:16:08 arch org_kde_powerdevil[1203]: [346881] Started 1 event callback thread(s)
Mar 12 20:16:08 arch org_kde_powerdevil[1203]: [346882] (ddc_open_display) Delay before rechecking attribute status: Slept for 1000 millisec
Mar 12 20:16:08 arch org_kde_powerdevil[1203]: [346882] Assertion failed: "bus_info" in file ddc_packet_io.c at line 266
Mar 12 20:16:08 arch org_kde_powerdevil[1203]: QtDBus: cannot relay signals from parent QObject(0x653488af7ab0 "") unless they are emitted in the object's thread QThread(0x653488a4f080 "Qt mainThread"). Current thread is QThread(0x653488bc3118 "").
Mar 12 20:16:08 arch org_kde_powerdevil[1203]: QSocketNotifier: Socket notifiers cannot be enabled or disabled from another thread
Mar 12 20:16:08 arch org_kde_powerdevil[1203]: [346882] Watch thread terminated.
Mar 12 20:16:08 arch org_kde_powerdevil[1203]: QMutex: destroying locked mutex
Mar 12 20:16:08 arch systemd[951]: plasma-powerdevil.service: Consumed 1min 1.696s CPU time, 13.3M memory peak, 7.1M memory swap peak.
```
Comment 11 Victor 2025-03-13 11:45:21 UTC
Yea it looks like we share the same error "assertion failed"
Comment 12 Nate Graham 2025-03-13 18:12:09 UTC
this should be fixed in ddcutil 2.2.1; please try again once that reaches your distro!
Comment 13 Nate Graham 2025-05-27 17:56:19 UTC
*** Bug 503966 has been marked as a duplicate of this bug. ***
Comment 14 Nate Graham 2025-05-27 17:56:45 UTC
*** Bug 504861 has been marked as a duplicate of this bug. ***
Comment 15 Sanfod Rockowitz 2025-06-01 19:10:32 UTC
As described in the discussion of bug 843861, libddcutil macros wrapping an assertion did not call call __assert_fail().  Apparently as a result, powerdevil failed with status success and did not restart.  This has been fixed in libddcutil branch 2.2.1-dev.  Also, the function in question has been modified to return a status code instead of asserting failure in the situation in question, so the (ultimately) invoking API function should complete with an error status indicating the display in question has been disconnected.