Regression: D-Bus Plugin's introspection stuff needs rewrite for 0.9.x as methods don't show up in dbus-tool (list method, plugin-metadata and introspection are broken)

Bug #749084 reported by Johannes Postler
130
This bug affects 26 people
Affects Status Importance Assigned to Milestone
Compiz
Fix Released
Medium
Sami Jaktholm
Compiz Core
Confirmed
Undecided
Unassigned
compiz (Ubuntu)
Fix Released
Medium
Unassigned

Bug Description

Binary package hint: compiz

In the current version of compiz in Natty (beta 1), the dbus-plugin doesn't work. If inspected with d-feet, the org.freedesktop.compiz entry exists, but contains no methods and attributes. Compiz itself is working fine.

I'm using a new sandy bridge chipset with onboard intel graphics.
---
Architecture: amd64
CompizPlugins: No value set for `/apps/compiz-1/general/screen0/options/active_plugins'
CompositorRunning: compiz
DRM.card0.DP.1:
 status: disconnected
 enabled: disabled
 dpms: Off
 modes:
 edid-base64:
DRM.card0.DP.2:
 status: disconnected
 enabled: disabled
 dpms: Off
 modes:
 edid-base64:
DRM.card0.HDMI.A.1:
 status: connected
 enabled: enabled
 dpms: On
 modes: 1680x1050 1280x1024 1280x1024 1440x900 1280x960 1152x864 1024x768 1024x768 1024x768 832x624 800x600 800x600 800x600 800x600 640x480 640x480 640x480 640x480 720x400
 edid-base64: AP///////wAmzQlWAQEBATIUAQOBMB54Knj1plVImyYSUFS/74CBgHFPgUCzAJUAAQEBAQEBITmQMGIaJ0BosDYA2igRAAAcAAAA/wAxMTA0MDA1MDAxMzk2AAAA/QA3TB1RDwAKICAgICAgAAAA/ABQTEUyMjA3V1MKICAgAEY=
DRM.card0.HDMI.A.2:
 status: disconnected
 enabled: disabled
 dpms: Off
 modes:
 edid-base64:
DRM.card0.VGA.1:
 status: disconnected
 enabled: disabled
 dpms: Off
 modes:
 edid-base64:
DistUpgraded: Fresh install
DistroCodename: natty
DistroRelease: Ubuntu 11.04
DistroVariant: ubuntu
GraphicsCard:
 Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller [8086:0102] (rev 09) (prog-if 00 [VGA controller])
   Subsystem: Intel Corporation Device [8086:2002]
InstallationMedia: Ubuntu 11.04 "Natty Narwhal" - Beta amd64 (20110330)
InstallationMedia_: Ubuntu 11.04 "Natty Narwhal" - Beta amd64 (20110330)
Package: compiz 1:0.9.4+bzr20110407-0ubuntu2
PackageArchitecture: amd64
ProcEnviron:
 LANGUAGE=de_AT:en
 PATH=(custom, no user)
 LANG=de_AT.UTF-8
 SHELL=/bin/bash
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-2.6.38-8-generic root=UUID=19e7faaa-39f1-4991-8eaa-e45e12b9c72f ro quiet splash vt.handoff=7
ProcVersionSignature: Ubuntu 2.6.38-8.41-generic 2.6.38.2
ProcVersionSignature_: Ubuntu 2.6.38-8.41-generic 2.6.38.2
Renderer: Unknown
Tags: natty natty ubuntu compiz-0.9
Uname: Linux 2.6.38-8-generic x86_64
UpgradeStatus: No upgrade log present (probably fresh install)
UserGroups:

dmi.bios.date: 03/01/2011
dmi.bios.vendor: Intel Corp.
dmi.bios.version: BLH6710H.86A.0105.2011.0301.1654
dmi.board.asset.tag: To be filled by O.E.M.
dmi.board.name: DH67BL
dmi.board.vendor: Intel Corporation
dmi.board.version: AAG10189-204
dmi.chassis.type: 3
dmi.modalias: dmi:bvnIntelCorp.:bvrBLH6710H.86A.0105.2011.0301.1654:bd03/01/2011:svn:pn:pvr:rvnIntelCorporation:rnDH67BL:rvrAAG10189-204:cvn:ct3:cvr:
version.compiz: compiz 1:0.9.4+bzr20110407-0ubuntu2
version.ia32-libs: ia32-libs N/A
version.libdrm2: libdrm2 2.4.23-1ubuntu6
version.libgl1-mesa-dri: libgl1-mesa-dri 7.10.1-0ubuntu3
version.libgl1-mesa-dri-experimental: libgl1-mesa-dri-experimental N/A
version.libgl1-mesa-glx: libgl1-mesa-glx 7.10.1-0ubuntu3
version.xserver-xorg: xserver-xorg 1:7.6+4ubuntu3
version.xserver-xorg-video-ati: xserver-xorg-video-ati 1:6.14.0-0ubuntu4
version.xserver-xorg-video-intel: xserver-xorg-video-intel 2:2.14.0-4ubuntu6
version.xserver-xorg-video-nouveau: xserver-xorg-video-nouveau 1:0.0.16+git20110107+b795ca6e-0ubuntu6

==============================================================
Update regarding the state of the dbus plugin in Compiz 0.9.10
==============================================================

Following works:

- fetch current settings
- modify settings
- activate and deactivate actions.

Now, following things don't work:

- the list method (a list of option object paths for a plugin)
- plugin metadata
- introspection

Most of the broken features are not essential for this plugin to be useful.

The list method is the most important but not essential since the object paths are always constructed with same pattern: /org/freedesktop/compiz/*plugin*/screen0/*option_name*. You don't need the list method to find the object path.

Plugin metadata is not that useful unless you are building a compiz setting editor and don't want to use python and compizconfig. Introspection is just a nice addition - not critical to the usage of dbus plugin.

Patches by the community are still welcome.

Related branches

Revision history for this message
Johannes Postler (josi) wrote :
Revision history for this message
Johannes Postler (josi) wrote : BootDmesg.txt

apport information

tags: added: apport-collected compiz-0.9 natty ubuntu
description: updated
Revision history for this message
Johannes Postler (josi) wrote : CurrentDmesg.txt

apport information

Revision history for this message
Johannes Postler (josi) wrote : Dependencies.txt

apport information

Revision history for this message
Johannes Postler (josi) wrote : GconfCompiz.txt

apport information

Revision history for this message
Johannes Postler (josi) wrote : Lspci.txt

apport information

Revision history for this message
Johannes Postler (josi) wrote : Lsusb.txt

apport information

Revision history for this message
Johannes Postler (josi) wrote : ProcCpuinfo.txt

apport information

Revision history for this message
Johannes Postler (josi) wrote : ProcInterrupts.txt

apport information

Revision history for this message
Johannes Postler (josi) wrote : ProcModules.txt

apport information

Revision history for this message
Johannes Postler (josi) wrote : UdevDb.txt

apport information

Revision history for this message
Johannes Postler (josi) wrote : UdevLog.txt

apport information

Revision history for this message
Johannes Postler (josi) wrote : UnitySupportTest.txt

apport information

Revision history for this message
Johannes Postler (josi) wrote : XorgLog.txt

apport information

Revision history for this message
Johannes Postler (josi) wrote : XorgLogOld.txt

apport information

Revision history for this message
Johannes Postler (josi) wrote : Xrandr.txt

apport information

Revision history for this message
Johannes Postler (josi) wrote : peripherals.txt

apport information

Revision history for this message
Johannes Postler (josi) wrote : xdpyinfo.txt

apport information

Revision history for this message
Johannes Postler (josi) wrote : xinput.txt

apport information

Revision history for this message
marmuta (marmuta) wrote : Re: Dbus-Plugin of compiz not working

Same here, I used to set screen brightness with something like

dbus-send --print-reply --dest=org.freedesktop.compiz /org/freedesktop/compiz-1/obs/screen0/brightness_values org.freedesktop.compiz.set array:int32:80

that has no effect now.
Also the examples at http://wiki.compiz.org/Plugins/Dbus have no effect or error out.

For example

$ python compiz-send.py vpswitch
Traceback (most recent call last):
  File "compiz-send.py", line 82, in <module>
    print '\n'.join(obj.list())
  File "/usr/lib/pymodules/python2.7/dbus/proxies.py", line 68, in __call__
    return self._proxy_method(*args, **keywords)
  File "/usr/lib/pymodules/python2.7/dbus/proxies.py", line 140, in __call__
    **keywords)
  File "/usr/lib/pymodules/python2.7/dbus/connection.py", line 630, in call_blocking
    message, timeout)
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.UnknownMethod: Method "list" with signature "" on interface "org.freedesktop.compiz" doesn't exist

Revision history for this message
pauljohn32 (pauljohn32) wrote :

I would have said this bug is so serious that the release of Natty should have been blocked by it. A non-functioning window manager is a BIG thing, not ignorable.

Revision history for this message
Sam Spilsbury (smspillaz) wrote : Re: [Compiz] [Bug 749084] Re: Dbus-Plugin of compiz not working

The API was updated. You need to s/allscreens/screen0/ . Also a lot of
the list and introspection stuff is not yet implemented since there
was no time to do it in the rewrite. This is an area for which
somebody could contribute if they are interested.

On Sun, May 1, 2011 at 11:59 PM, pauljohn32 <email address hidden> wrote:
> I would have said this bug is so serious that the release of Natty
> should have been blocked by it.  A non-functioning window manager is a
> BIG thing, not ignorable.
>
> --
> You received this bug notification because you are a member of compiz
> packagers, which is subscribed to compiz in Ubuntu.
> https://bugs.launchpad.net/bugs/749084
>
> Title:
>  Dbus-Plugin of compiz not working
>
> _______________________________________________
> Mailing list: https://launchpad.net/~compiz
> Post to     : <email address hidden>
> Unsubscribe : https://launchpad.net/~compiz
> More help   : https://help.launchpad.net/ListHelp
>

--
Sam Spilsbury

Revision history for this message
Mario Kemper (Romario) (mario-kemper) wrote : Re: Dbus-Plugin of compiz not working

I don't believe it is enough to s/allscreens/screen0/. As Johannes wrote, if you inspect the bus with a dbus-tool, the org.freedesktop.compiz entry exists, but contains no methods and attributes.

Revision history for this message
UndiFineD (k.dejong) wrote :

still problematic, any updates ?
helps to turn on and of dbus in compiz to reset the wm

Revision history for this message
Sam Spilsbury (smspillaz) wrote : Re: [Compiz] [Bug 749084] Re: Dbus-Plugin of compiz not working

It is enough. The introspection stuff has not been rewritten for 0.9.x
since I had no time to do it, that's why methods don't show up in
dbus-tool

On Thu, May 12, 2011 at 12:45 AM, Mario Kemper (Romario)
<email address hidden> wrote:
> I don't believe it is enough to s/allscreens/screen0/. As Johannes
> wrote, if you inspect the bus with a dbus-tool, the
> org.freedesktop.compiz entry exists, but contains no methods and
> attributes.
>
> --
> You received this bug notification because you are a member of compiz
> packagers, which is subscribed to compiz in Ubuntu.
> https://bugs.launchpad.net/bugs/749084
>
> Title:
>  Dbus-Plugin of compiz not working
>
> _______________________________________________
> Mailing list: https://launchpad.net/~compiz
> Post to     : <email address hidden>
> Unsubscribe : https://launchpad.net/~compiz
> More help   : https://help.launchpad.net/ListHelp
>

--
Sam Spilsbury

Revision history for this message
marmuta (marmuta) wrote : Re: Dbus-Plugin of compiz not working

I was always using screen0 and
dbus-send --print-reply --dest=org.freedesktop.compiz /org/freedesktop/compiz/obs/screen0/brightness_values org.freedesktop.compiz.set array:int32:80
doesn't work. If no introspection, Is there any up-to-date documentation or working examples?

Revision history for this message
Matthieu Baerts (matttbe) wrote :
Download full text (4.0 KiB)

Same problem for me if I try to enable Compiz plugins by using DBus!
This is how to reproduce my bug: simply launch this command:
   $ dbus-send --type=method_call --dest=org.freedesktop.compiz /org/freedesktop/compiz/core/screen0/active_plugins org.freedesktop.compiz.set array:string:'dbus','decoration','place'

And compiz says:
 > compiz (core) - Warn: Can't set Value with type 12 to option "active_plugins" with type 11

I think I use the right command because this is the example written in the code there: http://git.compiz.org/compiz/core/tree/plugins/dbus/src/dbus.cpp (I've replaced 'allscreens' by 'screen0')
Or do I use a wrong command?
Compiz gives me the same error if I use this function (in C):

    dbus_g_proxy_call_no_reply (proxy,
       "set",
       G_TYPE_STRV,
       plugins, // type= **gchar
       G_TYPE_INVALID)

Note that I've no problem to receive the list in C or with this command:
   $ dbus-send --type=method_call --print-reply --dest=org.freedesktop.compiz /org/freedesktop/compiz/core/screen0/active_plugins org.freedesktop.compiz.get

PS: please have a look to these commands and the output messages:
   $ dbus-send --type=method_call --print-reply --dest=org.freedesktop.compiz /org/freedesktop/compiz/core/screen0/active_plugins org.freedesktop.compiz.get
   method return sender=:1.36 -> dest=:1.138 reply_serial=2
   array [
      string "core"
      string "ccp"
      string "bailer"
      string "crashhandler"
      string "detection"
      string "composite"
      string "opengl"
      string "copytex"
      string "imgjpeg"
      string "compiztoolbox"
      string "decor"
      string "firepaint"
      string "gnomecompat"
      string "mousepoll"
      string "place"
      string "text"
      string "grid"
      string "water"
      string "dbus"
      string "imgsvg"
      string "commands"
      string "move"
      string "regex"
      string "resize"
      string "imgpng"
      string "wall"
      string "vpswitch"
      string "ring"
      string "blur"
      string "thumbnail"
      string "session"
      string "animation"
      string "animationaddon"
      string "loginout"
      string "obs"
      string "wobbly"
      string "fade"
      string "expo"
      string "workarounds"
      string "ezoom"
      string "scale"
      string "scaleaddon"
      string "widget"
   ]

   $ dbus-send --type=method_call --print-reply --dest=org.freedesktop.compiz /org/freedesktop/compiz/core/screen0/active_plugins org.freedesktop.compiz.set array:string:'dbus','decoration','place'
   method return sender=:1.36 -> dest=:1.139 reply_serial=2

   $ dbus-send --type=method_call --print-reply --dest=org.freedesktop.compiz /org/freedesktop/compiz/core/screen0/active_plugins org.freedesktop.compiz.get
   method return sender=:1.36 -> dest=:1.140 reply_serial=2
   array [
      string "core"
      string "ccp"
      string "bailer"
      string "crashhandler"
      string "detection"
      string "composite"
      string "opengl"
      string "copytex"
      string "imgjpeg"
      string "compiztoolbox"
      string "decor"
      string "firepaint"
      string "gnomecompat"
      str...

Read more...

Revision history for this message
Alvaro Leal (Effenberg0x0) (effenberg0x0) wrote :

There was no update do this? The error persists for me on Oneiric:
Method "list" with signature "" on interface "org.freedesktop.compiz" doesn't exist

Revision history for this message
jhfhlkjlj (fdsuufijjejejejej-deactivatedaccount) wrote :

I'm guessing that this is also going to affect 12.04, but could someone please confirm that it is indeed still missing in the Pangolin? Thanks.

Changed in compiz (Ubuntu):
importance: Undecided → Medium
status: New → Incomplete
Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for compiz (Ubuntu) because there has been no activity for 60 days.]

Changed in compiz (Ubuntu):
status: Incomplete → Expired
Revision history for this message
Pablo Zubieta (pabloferz+) wrote :

I can confirm it is still missing on Precise Pangolin. I guess no one have looked into it yet

Changed in compiz (Ubuntu):
status: Expired → Confirmed
Changed in compiz-core:
status: New → Confirmed
Revision history for this message
Murat Uenalan (muenalan) wrote :

Confirmed on Precise Pangolin. qdbusviewer says org.freedesktop.compiz is there.

$ dbus-send --print-reply --type=method_call --dest=org.freedesktop.compiz /org/freedesktop/compiz/vpscreen/screen0 org.freedesktop.compiz.list
Error org.freedesktop.DBus.Error.UnknownMethod: Method "list" with signature "" on interface "org.freedesktop.compiz" doesn't exist

$ compiz-send.py vpswitch
Traceback (most recent call last):
  File "/home/murat/bin/compiz-send.py", line 82, in <module>
    print '\n'.join(obj.list())
  File "/usr/lib/python2.7/dist-packages/dbus/proxies.py", line 70, in __call__
    return self._proxy_method(*args, **keywords)
  File "/usr/lib/python2.7/dist-packages/dbus/proxies.py", line 145, in __call__
    **keywords)
  File "/usr/lib/python2.7/dist-packages/dbus/connection.py", line 651, in call_blocking
    message, timeout)
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.UnknownMethod: Method "list" with signature "" on interface "org.freedesktop.compiz" doesn't exist

Revision history for this message
marko (markoschuetz) wrote :

I have this problem on an up-to-date oneiric as of today. Still no fix.

Revision history for this message
Péter Trombitás (trombipeti) wrote :

Precise here and loads of error messages.
I think it should be _very_ important to get the whole dbus backend work, because Unity looks great and is very good to use, but since things don't work under the hood, users can run into problems.
I doubt I could help as I know only some basic python, but if I can, please let me know, I'd like to have this problem fixed asap.

Revision history for this message
David Giard (swe3tdave-deactivatedaccount) wrote :

i had this problem trying to use http://code.google.com/p/pycompiz/
with 13.04. It works when replacing allscreens with screen0.

MC Return (mc-return)
Changed in compiz:
importance: Undecided → High
milestone: none → 0.9.10.0
Revision history for this message
MC Return (mc-return) wrote : Re: Regression: D-Bus Plugin stopped working, introspection stuff needs rewrite for 0.9.x as methods don't show up in dbus-tool

My 5 cent:

If we break functionality of a plugin and we know it is not working anymore at all or just producing errors (like currently dbus, td, session for example) what is the point of shipping it ?
Either we should fix it or not ship it to the user, otherwise this just has the potential to frustrate the user !

It is quite a shame that this bug is *Reported on 2011-04-03* but still we ship this completely broken plugin that is just plain useless for everyone... :(

summary: - Dbus-Plugin of compiz not working
+ Regression: D-Bus Plugin stopped working, introspection stuff needs
+ rewrite for 0.9.x as methods don't show up in dbus-tool
Revision history for this message
Sami Jaktholm (sjakthol) wrote :

I wouldn't say that dbus plugin is completely broken and plain useless for everyone as I've been able to
- fetch current settings
- modify settings
- activate and deactivate actions.

Now, following things doesn't work:
- the list method (a list of option object paths for a plugin)
- plugin metadata
- introspection

Most of the broken features are not essential for this plugin to be useful.

The list method is the most important but not essential since the object paths are always constructed with same pattern: /org/freedesktop/compiz/*plugin*/screen0/*option_name*. You don't need the list method to find the object path.

Plugin metadata is not that useful unless you are building a compiz setting editor and don't want to use python and compizconfig. Introspection is just a nice addition - not critical to the usage of dbus plugin.

These should, of course, be fixed but the situation is not so bad this bug implies.

Revision history for this message
MC Return (mc-return) wrote :

Sami, sorry for my misinterpretation then.
I did not know that so much is still possible.

Thanks for enlightening me.
I will reduce the priority of this bug.

Changed in compiz:
importance: High → Medium
description: updated
Revision history for this message
MC Return (mc-return) wrote :

Sami, I've updated the bug description. Thanks 4 checking that out. +1

MC Return (mc-return)
description: updated
Changed in compiz:
importance: Medium → Low
summary: - Regression: D-Bus Plugin stopped working, introspection stuff needs
- rewrite for 0.9.x as methods don't show up in dbus-tool
+ Regression: D-Bus Plugin's introspection stuff needs rewrite for 0.9.x
+ as methods don't show up in dbus-tool (list method, plugin-metadata and
+ introspection are broken)
Sami Jaktholm (sjakthol)
Changed in compiz:
status: New → In Progress
assignee: nobody → Sami Jaktholm (sjakthol)
Revision history for this message
MC Return (mc-return) wrote :

Huge thanks go to Sami, as he is the one finally attacking this "old-school" regression.
+1 for your work on this.

Most methods seems to show up again \o/, see here:

 http://uppix.com/f-D_Feet_D_Bus_deb51d5b87100134a82.png

MC Return (mc-return)
Changed in compiz:
importance: Low → Medium
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :

Fix committed into lp:compiz at revision None, scheduled for release in compiz, milestone 0.9.10.0

Changed in compiz:
status: In Progress → Fix Committed
Stephen M. Webb (bregma)
Changed in compiz:
status: Fix Committed → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (70.8 KiB)

This bug was fixed in the package compiz - 1:0.9.10+13.10.20130822-0ubuntu1

---------------
compiz (1:0.9.10+13.10.20130822-0ubuntu1) saucy; urgency=low

  [ Sam Spilsbury ]
  * Bump version to 0.9.10

  [ Łukasz 'sil2100' Zemczak ]
  * Remove debian/patches/unity_support_test.patch:
    - Running the support test from compiz has bad side effects, from now
      on we run it from Xsession.d
  * Automatic snapshot from revision 3644

  [ Iven Hsu ]
  * Opacify: Only dim the windows above the active window.(LP:
    #1189374). (LP: #1189374)
  * KWD: Fix compile errors with KDE 4.11. The KWin developers made
    kdecorationbridge.h private. See:
    http://lists.freedesktop.org/archives/compiz/2013-March/003479.html
    (LP: #1193792). (LP: #1193792)

  [ Nikolay Martynov ]
  * When static switcher is enabled and has an option to show
    application icon turned on the icons are expected to be ~1/3 of a
    thumbnail (48px). Instead they are displayed in 512px size and
    completely cover everything. This change addresses this issue. See
    LP #1173914. (LP: #1173914, #1186426)

  [ BryanFRitt ]
  * Fixed the non-working Annotate 'Clear' Button. Moved this option's
    CCSM position upwards to keep the button shortcuts together. (LP:
    #1202907). (LP: #1202907)

  [ Mehrdad Afshari ]
  * Added "move window to previous monitor" feature to compiz Put
    plugin. (LP: #1178581)

  [ Hu Kang ]
  * gtk-window-decorator: destroy action menu when any of the (close,
    min, max) buttons on the title bar is pressed. (LP: #1101648)
  * Remove redundant src/logmessage/include/core/logmessage.h (LP:
    #1067246). (LP: #1067246)

  [ Steve Langasek ]
  * Fix for bug #763148 (with added test cases): when the desktop is
    resized, windows should stay on their original workspace. (LP:
    #763148)

  [ Brandon Schaefer ]
  * Unrevert 3728, fix failing tests. Change the behaviour of
    undecorating windows. Previously when a window was undecorated, we
    would shift it back to an appropriate position according to its
    gravity member. That behaviour was problematic because in the
    StaticGravity case the window has to just stay in the same place.
    But then if you had a window with StaticGravity which then did get a
    decoration and later removed it, it would be placed as though it was
    decorated and appear to be in the wrong place. The correct behaviour
    is to place all windows as though they have decorations, and then
    when decorations are removed, to move the window back to the corner
    as indicated in its gravity and then expand its size to cover the
    obscured regions no longer hidden because the decorations went away.
    (LP: #1165343).   1. Completely remove decorOffsetMove and other
    related code from      decor.cpp. Put the logic to handle the
    window->input () - window->border ()      placement offset inside of
    setWindowFrameExtents instead. Now the window      will always be
    offset from its original non-decorated position to the new
         decorated position, rather than having to guess between
    decoration sizes.   2. Make saveGeometry and restoreGeometry work
    relative to window->border ()      a...

Changed in compiz (Ubuntu):
status: Confirmed → Fix Released
Revision history for this message
Murat Uenalan (muenalan) wrote :

Three years later, I am just amazed how professional this was handled, and finally fixed. Thanks to all contributors.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.