compiz (decor) - Warn: failed to bind pixmap to texture

Reported by Daniel van Vugt on 2012-02-10
70
This bug affects 14 people
Affects Status Importance Assigned to Milestone
Compiz
Medium
Sam Spilsbury
Compiz Core
Medium
Łukasz Zemczak
compiz (Ubuntu)
Undecided
Unassigned
Precise
Undecided
Unassigned

Bug Description

[Test Case]
1. Open a terminal and run: tail -f ~/.xsession-errors
2. Open/close lots of windows.
-> Observe the terminal output and verify that no "compiz (decor) - Warn: failed to bind pixmap to texture" messages on the terminal

[Regression Potential]
Broken window decorations in compiz

Original description:

Whenever I run compiz I get lots of these in the log:
compiz (decor) - Warn: failed to bind pixmap to texture

Either this indicates a bug that needs fixing, or this warning is lower priority than it sounds and should be removed...

On Fri, 10 Feb 2012, Daniel van Vugt wrote:

> Public bug reported:
>
> Whenever I run compiz I get lots of these in the log:
> compiz (decor) - Warn: failed to bind pixmap to texture
>
> Either this indicates a bug that needs fixing, or this warning is lower
> priority than it sounds and should be removed...
>

Indeed, its a synchronization issue between the decorator and the decor
plugin, I'll need to implement some kind of XSync barriers for decoration
updates since there's a race where a pixmap can be destroyed before its
bound.

> ** Affects: compiz-core
> Importance: Undecided
> Status: New
>
> --
> You received this bug notification because you are a member of Compiz
> Maintainers, which is the registrant for Compiz Core.
> https://bugs.launchpad.net/bugs/929989
>
> Title:
> compiz (decor) - Warn: failed to bind pixmap to texture
>
> Status in Compiz Core:
> New
>
> Bug description:
> Whenever I run compiz I get lots of these in the log:
> compiz (decor) - Warn: failed to bind pixmap to texture
>
> Either this indicates a bug that needs fixing, or this warning is
> lower priority than it sounds and should be removed...
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/compiz-core/+bug/929989/+subscriptions
>

Daniel van Vugt (vanvugt) wrote :

Sounds like the kind of graphics glitch I should be able to see... Is this related to the flashing white decorations bug 454218?

Daniel van Vugt (vanvugt) wrote :

On that note... why is *-window-decorator a separate program instead of a plugin? Sounds like there would be fewer issues if it wasn't in a separate process (like Gnome Shell AFAIK).

On Fri, 10 Feb 2012, Daniel van Vugt wrote:

> On that note... why is *-window-decorator a separate program instead of
> a plugin? Sounds like there would be fewer issues if it wasn't in a
> separate process (like Gnome Shell AFAIK).
>

Partly political reasons, partly performance reasons - generating the
decorations out of process has pretty huge benefits because you can
optimize the pixmap generation (eg instead of drawing on each frame window
you can generate one decoration and use a bit of protocol to paint it
correctly).

I explored this a lot more in
lp:~smspillaz/compiz-core/compiz-core.decorator but we never merged it

> --
> You received this bug notification because you are a member of Compiz
> Maintainers, which is the registrant for Compiz Core.
> https://bugs.launchpad.net/bugs/929989
>
> Title:
> compiz (decor) - Warn: failed to bind pixmap to texture
>
> Status in Compiz Core:
> New
>
> Bug description:
> Whenever I run compiz I get lots of these in the log:
> compiz (decor) - Warn: failed to bind pixmap to texture
>
> Either this indicates a bug that needs fixing, or this warning is
> lower priority than it sounds and should be removed...
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/compiz-core/+bug/929989/+subscriptions
>

Has there been any update on this??? I am also affected by 'failed to bind pixmap to texture'.

it happens quite frequently, and has for a couple of months now.

Haw Loeung (hloeung) wrote :

I'm also seeing this as well.

Changed in compiz-core:
status: New → Confirmed
Changed in compiz-core:
status: Confirmed → In Progress
assignee: nobody → Sam Spilsbury (smspillaz)
milestone: none → 0.9.8.0
Daniel van Vugt (vanvugt) wrote :

Fix committed into lp:compiz-core at revision 3131

Changed in compiz-core:
status: In Progress → Fix Committed

@Daniel

r3131 does not fix the problem, in fact (at least not with 'vanilla' compiz / no unity) it causes gtk-window-decorator to be very unstable.

I've filed a bug report here;

https://bugs.launchpad.net/compiz-core/+bug/996901

I actually get way more 'failed to bind pixmap to texture' with r3131 and window decorations are pretty much unusable.

cheerz

Daniel van Vugt (vanvugt) wrote :

Fix reverted in r3132. Apparently it was causing instability in some cases (bug 996901)

Changed in compiz-core:
status: Fix Committed → In Progress
Daniel van Vugt (vanvugt) wrote :

Fix committed into lp:compiz-core at revision 3137

Changed in compiz-core:
status: In Progress → Fix Committed
Changed in compiz:
status: New → Fix Committed
assignee: nobody → Sam Spilsbury (smspillaz)
milestone: none → 0.9.8.0
Changed in compiz-core:
milestone: 0.9.8.0 → none
Changed in compiz-core:
status: Fix Committed → In Progress
assignee: Sam Spilsbury (smspillaz) → Łukasz Zemczak (sil2100)
milestone: none → 0.9.7.10
Daniel van Vugt (vanvugt) wrote :

Fix committed into lp:compiz-core/0.9.7 at revision 3103

Changed in compiz-core:
status: In Progress → Fix Committed
Changed in compiz:
importance: Undecided → Medium
Changed in compiz-core:
importance: Undecided → Medium
Changed in compiz (Ubuntu):
status: New → Fix Committed
description: updated
description: updated
Miklos Juhasz (mjuhasz) wrote :

This patch causes gtk-window-decorator to be unstable.
I ma running Ubuntu 12.04 (Precise) and I built and tested compiz (1:0.9.7.8-0ubuntu1.1) in the precise-proposed wait queue and narrowed down the patch causing the instability to this one. This patch was cherry-picked for the SRU.

With this patch gtk-window-decorator crashes and leaves me without window decorations. The error in .xsession-errors:

The program 'gtk-window-decorator' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadWindow (invalid Window parameter)'.
  (Details: serial 5433 error_code 3 request_code 20 minor_code 0)
  (Note to programmers: normally, X errors are reported asynchronously;
   that is, you will receive the error a while after causing it.
   To debug your program, run it with the --sync command line
   option to change this behavior. You can then get a meaningful
   backtrace from your debugger if you break on the gdk_x_error() function.)

The easiest way to reproduce it is using IntelliJ (a Java IDE). Hitting Ctrl+N opens up a small window, and closing it by hitting Esc immediately triggers the gtk-window-decorator crash. I attached a screenshot of IntelliJ with the small popup in the middle.

Daniel van Vugt (vanvugt) wrote :

Thanks Miklos. Please try to capture a stack of gtk-window-decorator crashing:

1. Kill gtk-window-decorator if it's not dead already.
2. Run: gdb /usr/bin/gtk-window-decorator
3. (gdb) run --replace
4. Trigger the crash.
5. Go back to gdb.
6. (gdb) bt
7. Copy and paste the stack info it shows you into a NEW bug.

Hello Daniel, or anyone else affected,

Accepted compiz into precise-proposed. The package will build now and be available at http://launchpad.net/ubuntu/+source/compiz/1:0.9.7.8-0ubuntu1.1 in a few hours and then in the -proposed repository. Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you please change the bug tag from verification-needed to verification-done. If it does not, change the tag to verification-failed. In either case details of your testing will help us make a better decision. Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in compiz (Ubuntu Precise):
status: New → Fix Committed
tags: added: verification-needed
Launchpad Janitor (janitor) wrote :
Download full text (7.6 KiB)

This bug was fixed in the package compiz - 1:0.9.8+bzr3249-0ubuntu1

---------------
compiz (1:0.9.8+bzr3249-0ubuntu1) quantal-proposed; urgency=low

  * New upstream snapshot.
    - Fall back to a refresh rate that is more likely to look correct; 60Hz.
      (LP: #1009338)
    - Benchmark plugin should consume its key binding, and not pass the key to
      the underlying window. (LP: #1009320)
    - Avoid needless STL operations leading to expensive heap operations.
      (LP: #1006335)
    - Fix a typo that was causing (LP: #1002606)
      (widthIncBorders/heightIncBorders)
    - Check if the window is decorated before trying to change its event window
      states (which won't exist if not decorated) (LP: #1007754)
    - Use the XDamage extension more efficiently (the way it was designed to be
      used). This dramatically reduces CPU usage, reduces wakeups, and
      increases frame rates. It also solves at least one observed performance
      bug (LP: #1007299) and probably several more.
    - Avoid constructing and destructing lots of strings on every single event,
      which was wasting lots of CPU (LP: #1005569)
    - md LINGUAS doesn't exist, it's mnk (Mandinka in ISO 639-3)
    - Move grid plugin to google test and don't depend on the plugin for the
      test (LP: #1005009)
    - Don't read plugin.Initialized and test the value. (LP: #1004848)
    - libcompizconfig's install () commands were still using the old includedir
      and libdir variables rather than their libcompizconfig_* variants.
      (LP: #1005176)
    - Execute the cmake files separately to ensure that DESTDIR is respected.
      (LP: #1005177)
    - Don't set_target_properties on a target that might not exist
      (LP: #1005008)
    - Don't allow windows which we weren't even tracking as decoratable to
      become decorated if they try and change their hints. (LP: #963794)
    - Change the mouse pointer while dragging windows in expo. Just like the
      ubuntu branches do. (LP: #987647)
    - Fix uninitialized memory use (LP: #1004338)
    - Fix uninitialized variable (LP: #1004335)
    - Delay unbinding of pixmaps until then next rebind (LP: #729979)
      (LP: #1002602)
    - Don't drop plugins from the list to try and load before you've even tried
      to load them. Doing so makes missing plugins silently ignored instead of
      an error message (LP: #1002715). It also means valid plugins in more
      unusual, but real locations in LD_LIBRARY_PATH will never get loaded
      (LP: #1002721).
    - If running test cases under a real X server, we don't care if Xvfb is
      missing (LP: #994841)
    - Don't assume pkg_check_modules always sets _PREFIX (LP: #993608)
    - Don't clear selections in ~PrivateScreen because it causes a race between
      the existing and the new compiz instances, breaking --replace and
      non-replace behaviour. (LP: #988684) (LP: #989545)
    - Always paint with infiniteRegion as the clip region if the window is
      transformed and always use the supplied region if painting with offset or
      on transformed screen. (LP: #987639)
    - Add synchronization primitives to the decoration protocol so that there
      isn't a r...

Read more...

Changed in compiz (Ubuntu):
status: Fix Committed → Fix Released
Daniel van Vugt (vanvugt) wrote :

Verification done. Looks good on quantal today.

tags: added: verification-done
removed: verification-needed
Miklos Juhasz (mjuhasz) wrote :

@Daniel:

I can easily crash the proposed compiz version on several machines on Precise but I can't get any stacktrace. This is what I get:

mjuhasz@desktop:~$ gdb /usr/bin/gtk-window-decorator
GNU gdb (Ubuntu/Linaro 7.4-2012.04-0ubuntu2) 7.4-2012.04
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://bugs.launchpad.net/gdb-linaro/>...
Reading symbols from /usr/bin/gtk-window-decorator...(no debugging symbols found)...done.
(gdb) run --replace
Starting program: /usr/bin/gtk-window-decorator --replace
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7fffef1a9700 (LWP 7631)]
[New Thread 0x7fffee9a8700 (LWP 7632)]

The program 'gtk-window-decorator' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadWindow (invalid Window parameter)'.
  (Details: serial 10112 error_code 3 request_code 20 minor_code 0)
  (Note to programmers: normally, X errors are reported asynchronously;
   that is, you will receive the error a while after causing it.
   To debug your program, run it with the --sync command line
   option to change this behavior. You can then get a meaningful
   backtrace from your debugger if you break on the gdk_x_error() function.)
[Thread 0x7fffee9a8700 (LWP 7632) exited]
[Thread 0x7fffef1a9700 (LWP 7631) exited]
[Inferior 1 (process 7628) exited with code 01]
(gdb)
(gdb) bt
No stack.
(gdb)

Daniel van Vugt (vanvugt) wrote :

Miklos, please log a new bug with the details.

Miklos Juhasz (mjuhasz) wrote :

Regression (Broken window decorations in compiz) reported here: LP: #1019337

tags: added: verification-failed
removed: verification-done
Daniel van Vugt (vanvugt) wrote :

Causing a regression does not mean this bug is not fixed. It is fixed.

tags: added: verification-done
removed: verification-failed
Miklos Juhasz (mjuhasz) wrote :

Yes, this bug is fixed, the warning is gone from the terminal. The warning however never bothered me but the constant crashes with the proposed package do.

I read in the linked guide: https://wiki.ubuntu.com/QATeam/PerformingSRUVerification
, that "If you encounter a regression in a package that has been uploaded to *-proposed, please:":
step 5: Set the verification-failed tag on the corresponding SRU bug report.

I'm sorry if I misunderstood something.

Miklos Juhasz (mjuhasz) wrote :

On the pending-sru page all bug links are green related to version 0.9.7.8-0ubuntu1.1. Will the package in -proposed be pushed into -updates with the regression I reported (LP: #1019337)? The window decorator is confirmed to crash with IntelliJ and PhpStorm as well and probably all JetBrains products since they share the same codebase. These are IDEs used in corporate environments where stability is a major concern.

Then mark one of the bugs verification-failed with a link to your bug. Then at
least it'll be clear there's an issue that needs to be evaluated.

Sebastien Bacher (seb128) wrote :

I've set bug #993608 as verification-failed to prevent the copy to -updates

tags: added: verification-failed
removed: verification-done
Sebastien Bacher (seb128) wrote :

@Daniel:
> Causing a regression does not mean this bug is not fixed. It is fixed.

right, but failing verification is the standard way to block a SRU to avoid it moving to -updates with a regression

@Mikklos: having a stacktrace of the segfault by running gtk-window-decorator --sync would be useful

Launchpad Janitor (janitor) wrote :

This bug was fixed in the package compiz - 1:0.9.7.8-0ubuntu1.1

---------------
compiz (1:0.9.7.8-0ubuntu1.1) precise-proposed; urgency=low

  [ Łukasz 'sil2100' Zemczak ]
  * Cherry-pick upstream patches:
    - CMake Error at FindCompiz.cmake:84 (include): include could not find load
      file: CompizDefaults (LP: #993608)
    - compiz (decor) - Warn: failed to bind pixmap to texture (LP: #929989)
    - gtk-window-decorator crashed with SIGFPE in
      _decor_blend_horz_border_picture() (LP: #963794)
    - [callgrind] compiz spends ~25% of its time constructing/destructing
      strings in PrivateScreen::handleActionEvent (LP: #1005569)
    - gtk-window-decorator crashed with SIGSEGV in meta_get_decoration_geometry
      (LP: #1007754)
    - composite refresh rate falls back to 50Hz, which is wrong in most cases
      (LP: #1009338)
    - [callgrind] compiz spends ~7% of its time inserting into and destructing
      the events list in PrivateScreen::processEvents() (LP: #1006335)

  [ Didier Roche ]
  * debian/control:
    - change Vcs-Bzr to point to precise branches
 -- Lukasz 'sil2100' Zemczak <email address hidden> Wed, 20 Jun 2012 15:02:31 +0100

Changed in compiz (Ubuntu Precise):
status: Fix Committed → Fix Released
Scott Kitterman (kitterman) wrote :

Had a bit of a race condition here. This will get reverted out of precise-
updates shortly.

Miklos Juhasz (mjuhasz) wrote :

@Sebastien:
> having a stacktrace of the segfault by running gtk-window-decorator --sync would be useful

Sure, no problem. See LP: #1019337

Sebastien Bacher (seb128) wrote :

thanks, not that you might need the libgtk dbg package to have the function resolution working

Miklos Juhasz (mjuhasz) wrote :

Stacktrace with the dbg packages installed.

funicorn (funicorn) wrote :

Funny thing. Why Ubuntu is always lying about their bugs? fix is commited ? of course not, I'm experiencing the same bug for al long time on the newest version of compiz.

Daniel van Vugt (vanvugt) wrote :

Committed means the fix is in code and has been accepted for future release. A fix is not available to users until it says Fix Released.
[https://wiki.ubuntu.com/Bugs/Status]

Hello Daniel, or anyone else affected,

Accepted compiz into precise-proposed. The package will build now and be available at http://launchpad.net/ubuntu/+source/compiz/1:0.9.7.8-0ubuntu1.3 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please change the bug tag from verification-needed to verification-done. If it does not, change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

tags: removed: verification-failed
tags: added: verification-needed
Miklos Juhasz (mjuhasz) wrote :

The proposed package fixed the issue.

tags: added: verification-done
removed: verification-needed
Adam Conrad (adconrad) wrote :

Hello Daniel, or anyone else affected,

Accepted compiz into precise-proposed. The package will build now and be available at http://launchpad.net/ubuntu/+source/compiz/1:0.9.7.8-0ubuntu1.4 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please change the bug tag from verification-needed to verification-done. If it does not, change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

tags: removed: verification-done
tags: added: verification-needed
Timo Jyrinki (timo-jyrinki) wrote :

Still fixed in 1.4, and no regressions spotted.

tags: added: verification-done
removed: verification-needed

The verification of this Stable Release Update has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regresssions.

Changed in compiz:
status: Fix Committed → Fix Released
Changed in compiz-core:
status: Fix Committed → Fix Released
Changed in compiz-core:
status: Fix Released → Fix Committed
Changed in compiz-core:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers