icaclient windows "dancing" when decorated

Bug #1083186 reported by David Barth
30
This bug affects 4 people
Affects Status Importance Assigned to Milestone
Compiz
Invalid
Medium
Christopher Townsend
Unity
Fix Released
Medium
Christopher Townsend
5.0
Fix Released
Medium
Christopher Townsend
6.0
Fix Released
Medium
Christopher Townsend
compiz (Ubuntu)
Invalid
Undecided
Unassigned
Precise
Won't Fix
Undecided
Unassigned
unity (Ubuntu)
Fix Released
Undecided
Christopher Townsend
Precise
Fix Released
Undecided
Unassigned

Bug Description

[Test Case]

1. Download testcase.py (attached to comment no. 3)
2. Run with `python testcase.py`
3. Wait for the window to restore itself
   -> Make sure there are no decorations on the restored window

[Regression Potential]

No real regression potential - in really really impossible conditions is the lack of window decorations for selected, standard windows.

Original description:

ICAclient applications, ie reomte windows applications displayed by the Citrix icaclient program display a strange behavior when running with Unity 12.10. When the windows are re-parented and decorated with a border, they move by themselves like they were "dancing" around window moves.

Pre-requisites:
- install the icaclient packages from http://www.citrix.com/downloads/citrix-receiver/receivers-by-platform/receiver-for-linux-121.html
- create an account on the Citrix Cloud demo site: http://demo.citrixcloud.net/Citrix/XenApp/loading.htm

To reproduce:
1. open the Financial Dashboards (Excel), at http://demo.citrixcloud.net/Citrix/XenApp/site/default.aspx?CTX_CurrentFolder=%5cFinancial%20Solutions
2. If the application starts in windowed mode, but undecorated, do maximize it with the windows controls at the top right of the window
3. Once maximized, un-maximize the window with the Unity controls at the top left on the menu bar
4. Verify that the window is now un-maximized *and* decorated with a Unity border
5. Grab the window by its decoration and move it around in successive drag and drops

Expected result:
- the window should move and stay at the position where it has been dropped

What happens instead:
- the window starts dancing and oscillate around the position where it has been dropped

Ref: https://help.ubuntu.com/community/CitrixICAClientHowTo#Citrix_ICA_Client_12.1_on_Ubuntu_11.10_32-bit

Related branches

Revision history for this message
David Barth (dbarth) wrote :

xev log of the xevents observed during the "dance"

Revision history for this message
David Barth (dbarth) wrote :

ICAclient is already displaying the (remote) native decorations, so it seems that the main issue is with Compiz putting back a border around the window where it should not.

Maybe the WM hint that prevents the application from being decorated gets lost during the maximize / unmaximize sequence, and results in this problem.

David Barth (dbarth)
Changed in compiz:
assignee: nobody → David Barth (dbarth)
importance: Undecided → Medium
status: New → Confirmed
Revision history for this message
David Barth (dbarth) wrote :

This is the testcase I wrote and showed to Daniel last week

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

I tried testcase.py in 13.04 and do not see the behavior seen in this bug. There is no window decoration after the un-maximize. I wonder if this is now fixed indirectly?

That said, I can reproduce it in 12.10.

I'm going to see if I can track down what changed that fixes this in 13.04.

Changed in compiz:
assignee: David Barth (dbarth) → Christopher Townsend (townsend)
Revision history for this message
Christopher Townsend (townsend) wrote :

I also tried this in 12.04 (in a VirtualBox instance) and it does not reproduce this issue with the latest updates, so this seems to only affect 12.10.

Revision history for this message
David Barth (dbarth) wrote :

I suppose you run 12.10 natively, ie with unity-3d and Compiz. Whereas 12.04 in a VM will default to unity-2d which is using another window manager (not compiz) which does not exhibit the issue.

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

@David,

I installed the 3d acceleration in Virtualbox and /usr/lib/nux/unity_support_test -p indicated that unity-3d was indeed running in the 12.04 client. I do have a machine that I can install 12.04 on natively just to make sure. I will report that result later.

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

I'm getting mixed results on 12.04. I'm using a Vbox instance w/ 3d enabled.

$ /usr/lib/nux/unity_support_test - p
OpenGL vendor string: Humper
OpenGL renderer string: Chromium
OpenGL version string: 2.1 Chromium 1.9

Not software rendered: yes
Not blacklisted: yes
GLX fbconfig: yes
GLX texture from pixmap: yes
GL npot or rect textures: yes
GL vertex program: yes
GL fragment program: yes
GL vertex buffer object: yes
GL framebuffer object: yes
GL version is 1.4+: yes

Unity 3D supported: yes

The issue does not occur here.

I also have a physical machine with 12.04 installed with the latest updates:

$ /usr/lib/nux/unity_support_test - p
OpenGL vendor string: Tungsten Graphics, Inc
OpenGL renderer string: Mesa DRI Intel(R) Ivybridge Mobile
OpenGL version string: 3.0 Mesa 8.0.4

Not software rendered: yes
Not blacklisted: yes
GLX fbconfig: yes
GLX texture from pixmap: yes
GL npot or rect textures: yes
GL vertex program: yes
GL fragment program: yes
GL vertex buffer object: yes
GL framebuffer object: yes
GL version is 1.4+: yes

Unity 3D supported: yes

The issue *does* occur on this machine.

Lastly, my results for the 13.04 test may not be valid because for some reason, the machine is running in software rendering mode. It's a pretty recent machine, so it's puzzling why this occurring.

Revision history for this message
David Barth (dbarth) wrote :

@chris: thanks for re-testing the issue. This confirms my own findings.

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in compiz (Ubuntu):
status: New → Confirmed
Revision history for this message
Christopher Townsend (townsend) wrote :

I have found if I restart compiz without the unityshell plugin, but start all the other normal plugins, then the issue does not reproduce. Still need to investigate this, but it may point to that Unity is doing something here that is causing this issue.

David Barth also mentioned that this may be caused by the Glib main loop in Compiz which seems to cause some delays & races, so I'll need to investigate further as well.

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

Update:

I have a machine that was running 12.10 natively (ie, not in a VM) and it reproduced this issue every time using the testcase.py file attached to this bug. I recently upgraded this machine to 13.04 and it no longer reproduces the issue. I think at this point we can be quite certain that this issue has been fixed in 13.04 and it's just a matter of finding *what* fixed it and seeing if it can be SRU'd. Easier said than done:)

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

I have found the commit that fixes this issue in 13.04.

The issue is actually in Unity and this is the commit: http://bazaar.launchpad.net/~unity-team/unity/trunk/revision/2901

This is a rather large commit and I'm quite sure it can't be SRU'd as a whole to 12.10 and 12.04. However, I'm going to try to see if there is a subset of this commit that can fix this issue and hopefully that is SRUable.

Meanwhile, I'm going to close the Compiz bugs as Invalid and open new Unity related ones.

Stay tuned!

Changed in compiz:
status: Confirmed → Invalid
Changed in compiz (Ubuntu):
status: Confirmed → Invalid
Changed in unity:
status: New → Confirmed
Changed in unity (Ubuntu):
status: New → Confirmed
Changed in unity:
importance: Undecided → Medium
assignee: nobody → Christopher Townsend (townsend)
Changed in unity:
milestone: none → 7.0.0
status: Confirmed → Fix Committed
Changed in unity (Ubuntu):
assignee: nobody → Christopher Townsend (townsend)
Changed in unity (Ubuntu):
status: Confirmed → Fix Released
Revision history for this message
Christopher Townsend (townsend) wrote :

I have a test branch for 12.10 that works and have linked that branch to this bug. I'm working on adding a test for this and also working on getting the backport into 12.04 as well.

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

I now have a branch linked for Unity 5.0. My next steps are to get a test case in for each branch and then submit a merge proposal. Once the MP is approved, then I will nominate this for SRU in both Precise and Quantal.

Stephen M. Webb (bregma)
Changed in unity:
status: Fix Committed → Fix Released
description: updated
description: updated
Revision history for this message
Adam Stokes (adam-stokes) wrote :

Hello,

Could I get a status update on where the SRU's stand for both Precise and Quantal?

Thank you,
Adam

Revision history for this message
Dave Chiluk (chiluk) wrote :

@SRU team

It looks like unity 5 SRU 4 for precise has been in the unity teams ppa for some time, but has stalled getting into precise-proposed https://launchpad.net/unity/+milestone/5.20.0.

Can we get some action on this?

Revision history for this message
Dave Chiluk (chiluk) wrote :

Looks like it was uploaded today for anyone that is curious. Shouldn't be long now.
https://launchpad.net/ubuntu/precise/+queue?queue_state=1&queue_text=unity

Revision history for this message
Steve Langasek (vorlon) wrote : Please test proposed package

Hello David, or anyone else affected,

Accepted unity into precise-proposed. The package will build now and be available at http://launchpad.net/ubuntu/+source/unity/5.20.0-0ubuntu1 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 add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and 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 unity (Ubuntu Precise):
status: New → Fix Committed
tags: added: verification-needed
Revision history for this message
Christopher Townsend (townsend) wrote :

The fix for this has caused a regression (see bug #1195730). I have a fix for the regression and still works for this bug.

I will be updating the other bug shortly with a branch to fix this.

tags: added: verification-failed
removed: verification-needed
Revision history for this message
Christopher Townsend (townsend) wrote :

Well, I thought I had a fix for the regression, but further testing proves otherwise:(

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

There are no plans to release this in Quantal, so removing those target entries.

no longer affects: unity (Ubuntu Quantal)
no longer affects: compiz (Ubuntu Quantal)
Revision history for this message
Christopher Townsend (townsend) wrote :

Even though the fix for this has caused the regression seen in bug #1195730, I think this fix should still be accepted. The regression is more of an annoyance and edge case while this fix is very important.

I will continue to debug the regression and hopefully have a fix for the next SRU.

Revision history for this message
Amr Ibrahim (amribrahim1987) wrote :

So, is this bug going to be tagged verification-done or going to be delayed till the regression is fixed?

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

Checking with the Stable Release team on how to proceed with this...

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

Ok, SRU team is going to include the fix for the regression and re-upload a new version. Thanks to Infinity for doing this!

Revision history for this message
Adam Conrad (adconrad) wrote :

Hello David, or anyone else affected,

Accepted unity into precise-proposed. The package will build now and be available at http://launchpad.net/ubuntu/+source/unity/5.20.0-0ubuntu2 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 add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and 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
tags: added: verification-done
removed: verification-needed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package unity - 5.20.0-0ubuntu2

---------------
unity (5.20.0-0ubuntu2) precise; urgency=low

  * Check to see if the window is supposed to have decorations instead
    of the window actually being decorated when Undecorate() is called.
    This fixes a regression from the previous SRU where windows opened
    maximized upon login could have extra decorations (LP: #1195730)

unity (5.20.0-0ubuntu1) precise; urgency=low

  * New upstream release.
    - ResultRendererTile: fix a crash if row.renderer<TextureContainer*>()
      is null (LP: #926658)
    - Fix unity launcher vanishes when switching to mirrored displays
      (LP: #991637)
    - Fix window decorations being drawn when they should not be.
      This fixes icaclient window "dancing" (LP: #1083186) and
      hides decoration in a test case with Steam (LP: #1122478)
    - [multimonitor] Dash - Opening dash or HUD on one screen removes panel
      shadow on the other (LP: #892718)
    - Press Alt+F1, panel’s shadow dissapear (LP: #942965)
  * Cherry-pick a manual test for decorations fix
 -- Christopher Townsend <email address hidden> Mon, 08 Jul 2013 09:37:30 -0600

Changed in unity (Ubuntu Precise):
status: Fix Committed → Fix Released
Revision history for this message
Adam Conrad (adconrad) wrote : Update Released

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.

Revision history for this message
Dave Chiluk (chiluk) wrote :

There are still a number of bugs related to unity and icaclient, however this no longer seems reproducible. verification-redone for me as well..

Is there any chance of introducing a unity-lts-raring package instead of trying to fix this ancient version? That way the people who care can easily access a supported package.

Revision history for this message
Steve Langasek (vorlon) wrote :

The Precise Pangolin has reached end of life, so this bug will not be fixed for that release

Changed in compiz (Ubuntu Precise):
status: New → Won't Fix
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Related blueprints

Remote bug watches

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