FedeDP / Clightd

A linux bus interface that lets you change screen brightness, compute captured webcam frames brightness and change screen temperature.
GNU General Public License v3.0
82 stars 10 forks source link

Failed to add object vtable on path #86

Closed TheHardew closed 2 years ago

TheHardew commented 2 years ago

5.6-664fb26

I have 2 monitors, up to today everything used to work correctly, today after an nvidia update I started having major problems, ddc wouldn't work at all, 1 monitor, after boot, would be locked in to a non-native resolution (xrandr didn't show the native option, it's fixed after replugging the display cable), finally I managed to get it almost all working, but now I'm having this error with clightd:

Registered 'Als' sensor plugin.
Registered 'Camera' sensor plugin.
Registered 'Custom' sensor plugin.
Registered 'YoctoLight' sensor plugin.
Registered 'Drm' gamma plugin.
Registered 'Wl' gamma plugin.
Registered 'Xorg' gamma plugin.
Registered 'Drm' dpms plugin.
Registered 'Wl' dpms plugin.
Registered 'Xorg' dpms plugin.
Registered 'Fb' screen plugin.
Registered 'Wl' screen plugin.
Registered 'Xorg' screen plugin.
[default]|BACKLIGHT2|: Failed to add object vtable on path '/org/clightd/clightd/Backlight2/#ASPbuf7MxH/d': -22

Setting the brightness with ddcutil works, only clightd has problems with dbus.

Sadly I have no idea how you could reproduce that. I think -22 is -EINVAL, "One of the required parameters is NULL or invalid. A reserved D-Bus interface was passed as the interface parameter.". I don't know why it works for one monitor and not the other?

Not sure what else to add, if you need anything else, let me know.

FedeDP commented 2 years ago

Hi! Thanks for opening this issue! I think that the monitor id ("#ASPbuf7MxH/d") has some chars that are not allowed in an object path (most probably "/" and "#"). I will fix it asap ;)

FedeDP commented 2 years ago

Should be fixed now! Let me know :)

TheHardew commented 2 years ago

Works great, thank you so much!

I'm a little confused though, because it used to work for such a long time. I had also upgraded today from clightd 5.4 to 5.5, I guess that was a regression?

FedeDP commented 2 years ago

Nope. It was indeed a new feature (new Backlight2 api exposed by clightd) that exports each monitor as a dbus object path. I forgot to properly validate monitors' serial numbers(used to create the dbus object paths) though!