Window stacking order messed up for dialogs/overlays

Bug #1171314 reported by Julian Edwards
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Compiz
Fix Released
High
Sam Spilsbury
compiz (Ubuntu)
Fix Released
High
Unassigned

Bug Description

I am seeing this bug where right click dialogs, menus, notifications etc are popping up behind other windows. See the screenshot as an example.

It mostly doesn't happen until I start Amarok, which is a QT app, but that doesn't always make it happen either.

ProblemType: Bug
DistroRelease: Ubuntu 13.04
Package: xorg 1:7.7+1ubuntu4
ProcVersionSignature: Ubuntu 3.8.0-18.28-generic 3.8.6
Uname: Linux 3.8.0-18-generic x86_64
NonfreeKernelModules: nvidia
.proc.driver.nvidia.gpus.0: Error: [Errno 21] Is a directory: '/proc/driver/nvidia/gpus/0'
.proc.driver.nvidia.gpus.1: Error: [Errno 21] Is a directory: '/proc/driver/nvidia/gpus/1'
.proc.driver.nvidia.registry: Binary: ""
.proc.driver.nvidia.version:
 NVRM version: NVIDIA UNIX x86_64 Kernel Module 304.88 Wed Mar 27 14:26:46 PDT 2013
 GCC version: gcc version 4.7.3 (Ubuntu/Linaro 4.7.2-23ubuntu2)
.tmp.unity.support.test.0:

ApportVersion: 2.9.2-0ubuntu8
Architecture: amd64
CompizPlugins: [core,bailer,detection,composite,opengl,compiztoolbox,decor,grid,move,regex,animation,kdecompat,gnomecompat,mousepoll,put,mblur,wall,resize,vpswitch,workarounds,resizeinfo,place,imgpng,unitymtgrabhandles,snap,notification,session,expo,ezoom,staticswitcher,fade,scale,showdesktop,unityshell,opacify]
CompositorRunning: compiz
CompositorUnredirectDriverBlacklist: '(nouveau|Intel).*Mesa 8.0'
CompositorUnredirectFSW: true
Date: Mon Apr 22 15:52:33 2013
DistUpgraded: 2013-04-04 18:29:02,697 DEBUG enabling apt cron job
DistroCodename: raring
DistroVariant: ubuntu
ExtraDebuggingInterest: Yes
GraphicsCard:
 NVIDIA Corporation C77 [nForce 750a SLI] [10de:084d] (rev a2) (prog-if 00 [VGA controller])
   Subsystem: ASUSTeK Computer Inc. M3N72-D mGPU [1043:82e8]
 NVIDIA Corporation G92 [GeForce 9800 GT] [10de:0614] (rev a2) (prog-if 00 [VGA controller])
MachineType: System manufacturer System Product Name
MarkForUpload: True
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-3.8.0-18-generic root=UUID=38c98076-521e-408e-af6a-2e8e00de0f05 ro
SourcePackage: xorg
Symptom: display
UpgradeStatus: Upgraded to raring on 2013-04-04 (17 days ago)
dmi.bios.date: 05/28/2008
dmi.bios.vendor: Phoenix Technologies, LTD
dmi.bios.version: ASUS M3N72-D ACPI BIOS Revision 0202
dmi.board.name: M3N72-D
dmi.board.vendor: ASUSTeK Computer INC.
dmi.board.version: 1.XX
dmi.chassis.asset.tag: 123456789000
dmi.chassis.type: 3
dmi.chassis.vendor: Chassis Manufacture
dmi.chassis.version: Chassis Version
dmi.modalias: dmi:bvnPhoenixTechnologies,LTD:bvrASUSM3N72-DACPIBIOSRevision0202:bd05/28/2008:svnSystemmanufacturer:pnSystemProductName:pvrSystemVersion:rvnASUSTeKComputerINC.:rnM3N72-D:rvr1.XX:cvnChassisManufacture:ct3:cvrChassisVersion:
dmi.product.name: System Product Name
dmi.product.version: System Version
dmi.sys.vendor: System manufacturer
version.compiz: compiz 1:0.9.9~daily13.04.18.1~13.04-0ubuntu1
version.ia32-libs: ia32-libs N/A
version.libdrm2: libdrm2 2.4.43-0ubuntu1
version.libgl1-mesa-dri: libgl1-mesa-dri 9.1.1-0ubuntu3
version.libgl1-mesa-dri-experimental: libgl1-mesa-dri-experimental N/A
version.libgl1-mesa-glx: libgl1-mesa-glx 9.1.1-0ubuntu3
version.nvidia-graphics-drivers: nvidia-graphics-drivers N/A
version.xserver-xorg-core: xserver-xorg-core 2:1.13.3-0ubuntu6
version.xserver-xorg-input-evdev: xserver-xorg-input-evdev 1:2.7.3-0ubuntu2b2
version.xserver-xorg-video-ati: xserver-xorg-video-ati 1:7.1.0-0ubuntu2
version.xserver-xorg-video-intel: xserver-xorg-video-intel N/A
version.xserver-xorg-video-nouveau: xserver-xorg-video-nouveau 1:1.0.7-0ubuntu1
xserver.bootTime: Mon Apr 22 08:56:13 2013
xserver.configfile: /etc/X11/xorg.conf
xserver.errors:

xserver.logfile: /var/log/Xorg.0.log
xserver.outputs:

xserver.version: 2:1.13.3-0ubuntu6

Related branches

Revision history for this message
Julian Edwards (julian-edwards) wrote :
Revision history for this message
Julian Edwards (julian-edwards) wrote :

Screenshot showing problem.

Timo Aaltonen (tjaalton)
affects: xorg (Ubuntu) → compiz (Ubuntu)
Stephen M. Webb (bregma)
Changed in unity (Ubuntu):
importance: Undecided → High
status: New → Triaged
Changed in compiz (Ubuntu):
status: New → Triaged
importance: Undecided → High
Changed in compiz:
status: New → Triaged
importance: Undecided → High
milestone: none → 0.9.10.0
Revision history for this message
Julian Edwards (julian-edwards) wrote :

Is anyone looking at this?

Revision history for this message
Christopher Townsend (townsend) wrote :

Hi Julian,

This is on my list to work on for Saucy.

Thanks!

Changed in compiz:
assignee: nobody → Christopher Townsend (townsend)
Revision history for this message
Julian Edwards (julian-edwards) wrote : Re: [Bug 1171314] Re: Window stacking order messed up for dialogs/overlays

On Wednesday 12 Jun 2013 14:33:45 you wrote:
> This is on my list to work on for Saucy.

\o/

Thanks!

Revision history for this message
Sam Spilsbury (smspillaz) wrote :

Everybody loves a stacking bug.

Chris, these are particularly difficult to work out - feel free to ping me once you get started on this so I can give you a hand.

Revision history for this message
Sam Spilsbury (smspillaz) wrote :

@Julian: Just to get us started - can you run compiz --replace --debug ccp &, reproduce the bug and then post the output somewhere. Also let us know if it happens with more than just right-click or dropdown menus.

Revision history for this message
Julian Edwards (julian-edwards) wrote :

On 23/06/13 01:12, Sam Spilsbury wrote:
> @Julian: Just to get us started - can you run compiz --replace --debug
> ccp &, reproduce the bug and then post the output somewhere. Also let us
> know if it happens with more than just right-click or dropdown menus.
>

Yup, I'll do that shortly.

It also affects the notifications and other overlays like that.

Revision history for this message
Julian Edwards (julian-edwards) wrote :
Download full text (20.6 KiB)

There's a ton of output but here is the end of it. BTW This is trivial
to reproduce. I just start Amarok and it happens immediately.

compiz (core) - Debug: pending request:
compiz (core) - Debug: - event serial: 22022
compiz (core) - Debug: - event window 0x1000099
compiz (core) - Debug: - x: 688 y: 24 width: 597 height: 976 border:
127926273, sibling: 0x7c00001
compiz (core) - Debug: pending request:
compiz (core) - Debug: - event serial: 22024
compiz (core) - Debug: - event window 0x100009c
compiz (core) - Debug: - x: 56 y: 24 width: 597 height: 820 border:
121634818, sibling: 0x7400004
compiz (core) - Debug: pending request:
compiz (core) - Debug: - event serial: 22026
compiz (core) - Debug: - event window 0x100009f
compiz (core) - Debug: - x: 2649 y: 163 width: 1169 height: 909 border:
16777228, sibling: 0x100000d
compiz (core) - Debug: pending request:
compiz (core) - Debug: - event serial: 22028
compiz (core) - Debug: - event window 0x10000a5
compiz (core) - Debug: - x: 764 y: 1243 width: 1104 height: 1142 border:
81789219, sibling: 0x4e00129
compiz (core) - Debug: pending request:
compiz (core) - Debug: - event serial: 22030
compiz (core) - Debug: - event window 0x10000a8
compiz (core) - Debug: - x: 1277 y: 42 width: 597 height: 1097 border:
54537505, sibling: 0x3403009
compiz (core) - Debug: pending request:
compiz (core) - Debug: - event serial: 22032
compiz (core) - Debug: - event window 0x10000a2
compiz (core) - Debug: - x: 2249 y: 24 width: 1171 height: 909 border:
117440515, sibling: 0x10000a8
compiz (core) - Debug: received event:
compiz (core) - Debug: - event serial: 22020
compiz (core) - Debug: - event window 0x1000093
compiz (core) - Debug: - x: 1975 y: 24 width: 284 height: 758 border: 0,
sibling: 0x0
compiz (core) - Debug: received event:
compiz (core) - Debug: - event serial: 22022
compiz (core) - Debug: - event window 0x1000099
compiz (core) - Debug: - x: 688 y: 24 width: 597 height: 976 border:
127926273, sibling: 0x7c00001
compiz (core) - Debug: received event:
compiz (core) - Debug: - event serial: 22024
compiz (core) - Debug: - event window 0x100009c
compiz (core) - Debug: - x: 56 y: 24 width: 597 height: 820 border:
121634818, sibling: 0x7400004
compiz (core) - Debug: received event:
compiz (core) - Debug: - event serial: 22026
compiz (core) - Debug: - event window 0x100009f
compiz (core) - Debug: - x: 2649 y: 163 width: 1169 height: 909 border:
16777228, sibling: 0x100000d
compiz (core) - Debug: received event:
compiz (core) - Debug: - event serial: 22028
compiz (core) - Debug: - event window 0x10000a5
compiz (core) - Debug: - x: 764 y: 1243 width: 1104 height: 1142 border:
81789219, sibling: 0x4e00129
compiz (core) - Debug: received event:
compiz (core) - Debug: - event serial: 22030
compiz (core) - Debug: - event window 0x10000a8
compiz (core) - Debug: - x: 1277 y: 42 width: 597 height: 1097 border:
54537505, sibling: 0x3403009
compiz (core) - Debug: received event:
compiz (core) - Debug: - event serial: 22032
compiz (core) - Debug: - event window 0x10000a2
compiz (core) - Debug: - x: 2249 y: 24 width: 1171 height: 909 border:
117440515, sibling: 0x10000a8
compiz (core) - Debug: pending request:
compiz (core) ...

Revision history for this message
Sam Spilsbury (smspillaz) wrote :

Hey Julian,

I did some investigation into this this week and have something which may or may not fix your problem. At the moment, Amarok just sigabrt's for me close to startup (it attempts to configure a window that doesn't exist and does a whole bunch of other bad stuff).

Incidentally, it does quite a few things that exercise the window tracking and reparenting system in compiz at startup, and I found a condition that *shoudn't* happen (external ReparentNotify events being delivered before the CreateNotify for the window frame being created) which can cause a window to be added to the list twice. In the attached branch I've just hardened that bit of the code a little more and added a small test to poke the relevant side-effect of that condition happening which could cause the same window to be added to the stack twice (and thus messing up further stacking operations).

Unfortunately, I can't confirm that it fixes *this* bug, primarily because I can't get Amarok to run for more than three seconds in Ubuntu Saucy. Can you build this branch (or wait a day and I'll build a ppa) to see if it fixes your problem?

Thanks.

Revision history for this message
Sam Spilsbury (smspillaz) wrote :

Well ... There was going to be a branch here. But thanks to some corruption in my bazaar branch, its all gone now T_T. I'll have to rewrite it again later tonight.

Revision history for this message
Julian Edwards (julian-edwards) wrote :

On 26/06/13 03:01, Sam Spilsbury wrote:
> Unfortunately, I can't confirm that it fixes *this* bug, primarily
> because I can't get Amarok to run for more than three seconds in Ubuntu
> Saucy. Can you build this branch (or wait a day and I'll build a ppa) to
> see if it fixes your problem?

Perhaps you can try in raring?

> Well ... There was going to be a branch here. But thanks to some
> corruption in my bazaar branch, its all gone now T_T. I'll have to
> rewrite it again later tonight.

Ok I'll wait :)

I don't run saucy though, it needs to run on raring.

Cheers.

Revision history for this message
Sam Spilsbury (smspillaz) wrote :

I've created a ppa here: https://code.launchpad.net/~smspillaz/+archive/compiz-fix-1171314
Should be up and running in the new few hours.

Changed in compiz:
assignee: Christopher Townsend (townsend) → Sam Spilsbury (smspillaz)
Revision history for this message
Julian Edwards (julian-edwards) wrote :

On 26/06/13 21:01, Sam Spilsbury wrote:
> I've created a ppa here: https://code.launchpad.net/~smspillaz/+archive/compiz-fix-1171314
> Should be up and running in the new few hours.

Heya,

The one in there is older than the one in the archive. I can downgrade
of course, but I thought I'd check first ...

Cheers.

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

@Julian:
I do not think that downgrading will work :(

@Sam: Info, regarding the PPA:
Like with compiz-dev, the versioning seems to be wrong, so it won't install.
Forcing it to install results in:
 gnome-control-center (1:3.6.3-0ubuntu24.1) breaks compiz (<< 1:0.9.8+bzr330) and is installed.
  Version of compiz to be configured is 0.9.10-0~3748~raring1.

I think the 0.9.10* should be 1:0.9.10, but I am no apt/dpkg/PPA pro...

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

@Julian: Seems Sam fixed the PPA. Please retest if your bug is fixed now. :)

@Sam: Thanks a lot for fixing the PPA. Updating works perfectly now. +1

Changed in compiz:
status: Triaged → In Progress
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: Triaged → Fix Released
Changed in unity:
importance: Undecided → High
status: New → Triaged
no longer affects: unity (Ubuntu)
no longer affects: unity
To post a comment you must log in.