libgtk2 2.24.0 break Lotus Notes user interface

Bug #723458 reported by Søren Holm
70
This bug affects 14 people
Affects Status Importance Assigned to Milestone
GTK+
Unknown
High
gtk+2.0 (Ubuntu)
Triaged
Low
Unassigned

Bug Description

I'm running Lotus Notes at work, but on natty most parts of the application is rendered useless. The reason is a change in libgtk2 that destroys Lotus Notes' ability to draw its own gui.

Since Lotus Notes is a closed source application I am very limited in my search for the cause, but I have bisected libgtk2 and found the following commit to be the bad guy :

c282958fb4bb25c736c682735002d15c50cb44d0 is the first bad commit
commit c282958fb4bb25c736c682735002d15c50cb44d0
Author: Matthias Clasen <email address hidden>
Date: Tue Dec 14 22:24:09 2010 -0500

    Optimize gdk_window_set_shape_combine_region

    When setting no shape on an unshaped window, nothing changes,
    so return early instead of recomputing lots of visibility
    information.

    Pointed out by Owen Taylor in bug 637156.

:040000 040000 ef945a068fc514b34877c2beeab6185d433e8892 a96cac159dce4190a93c1a853e90635f7405bdf6 M gdk

ProblemType: Bug
DistroRelease: Ubuntu 11.04
Package: libgtk2.0-0 2.24.0-0ubuntu3
Uname: Linux 2.6.38-rc5-sgh20110219 i686
Architecture: i386
Date: Wed Feb 23 00:18:48 2011
InstallationMedia: Kubuntu 11.04 "Natty Narwhal" - Alpha i386 (20110202)
ProcEnviron:
 LANGUAGE=
 PATH=(custom, user)
 LANG=da_DK.UTF-8
 SHELL=/bin/bash
SourcePackage: gtk+2.0

Revision history for this message
Søren Holm (sgh) wrote :
Revision history for this message
Søren Holm (sgh) wrote :

The complete bisect log looks like this :

git bisect start
# bad: [0b3710d762decd49547d17d8decb316c4eca0968] Fix doc format problems
git bisect bad 0b3710d762decd49547d17d8decb316c4eca0968
# good: [0200763126d07c6f852cf09854f2d98f0befc73f] Fix header inclusions for !srcdir builds
git bisect good 0200763126d07c6f852cf09854f2d98f0befc73f
# bad: [3bdd56c92802fa24b4769492611c327aa128e281] Add some forgotten accessors for GdkDragContext
git bisect bad 3bdd56c92802fa24b4769492611c327aa128e281
# good: [df08bc43ec91cfacc5c8b91e8cd57d9f5a87c162] gdk: Add XSetting for "gtk-cursor-blink-timeout"
git bisect good df08bc43ec91cfacc5c8b91e8cd57d9f5a87c162
# good: [b91b0ebbd7fb873228708b9fc4d56ecbf4f8fb28] tests: Remove unused variable
git bisect good b91b0ebbd7fb873228708b9fc4d56ecbf4f8fb28
# good: [6e2573fd76fbcafcca3d70e1739bc8fead709d50] gtk_combo_box_get_active_text(): Fix my docs typo.
git bisect good 6e2573fd76fbcafcca3d70e1739bc8fead709d50
# good: [64f2460b7baad65cff8441df72e7acfa461c6043] Deprecate gtk_widget_reset_shapes
git bisect good 64f2460b7baad65cff8441df72e7acfa461c6043
# bad: [53ff5679f7331bc61fdea387e36513b63129894c] Fixed gtk_entry_set_icon_tooltip_text & markup to not crash
git bisect bad 53ff5679f7331bc61fdea387e36513b63129894c
# bad: [c282958fb4bb25c736c682735002d15c50cb44d0] Optimize gdk_window_set_shape_combine_region
git bisect bad c282958fb4bb25c736c682735002d15c50cb44d0

Revision history for this message
Søren Holm (sgh) wrote :

I can add, that reverting the change on top of 2.24.0 fixes the issue. So I guess that it will be the case for the current version in natty too.

Revision history for this message
Søren Holm (sgh) wrote :
Revision history for this message
Sebastien Bacher (seb128) wrote :

Thank you for your work on that, let's see what the gtk guys have to say but the patch was a performance improvements for the other softwares using GTK and lotus should rather be updated to deal with it than adding back the old slow way

Changed in gtk+2.0 (Ubuntu):
importance: Undecided → Low
status: New → Triaged
Revision history for this message
Søren Holm (sgh) wrote :

I agree, but I guess it's hard to get it changed in lotus.

Changed in gtk:
importance: Unknown → High
status: Unknown → New
Changed in gtk:
status: New → Incomplete
Revision history for this message
davidyu (yuyich) wrote :

I have the same problem.

Revision history for this message
Søren Holm (sgh) wrote :

Nice to know that I am not alone :) Do you have some it-department to talk you regarding this issue. I have tried calling and writing IBM.

The best solution would be to have IBM correct Lotus Notes. If it fails I thinks that we should revert those two lines of code for Ubuntu - the gtk-guys does not seem fond of that since it is an optimization. Problably it really is Lotus Notes behaving bad, but the fact that it breaks the guid should rule over correctness in this case I think.

What do you think? Has there ever been similar issues regarding commercial software packages in Ubuntu ?

Revision history for this message
Søren Holm (sgh) wrote : Re: [Bug 723458] [NEW] libgtk2 2.24.0 break Lotus Notes user interface

Could we revert the problematic change for natty ?

Revision history for this message
Sebastien Bacher (seb128) wrote :

not likely, it would lead to a slower gtk for all application only to workaround a closed source product being buggy, if you have issues with lotus you should contact them to let them now they should fix their code

Revision history for this message
Søren Holm (sgh) wrote :

I have published a hack here :

https://github.com/sgh/lotus-notes_gtk2.23.3

Revision history for this message
Tulasidhar Dronamraju (tulasidhard) wrote :

The hack works.. Thanks .. (I am on debian testing)

Revision history for this message
Søren Holm (sgh) wrote :

Great that your have it working also.

Revision history for this message
Gastón del Rivero (gaston-delrivero) wrote :

Now that Natty has been released I can confirm that this bug affects me too. Anyway, the hack works for me too. Thanks for that Søren. I think Notes developers should consider fixing this issue, but being more realistic, I hope they realise they need to fix their code :)

Revision history for this message
Søren Holm (sgh) wrote :

Great. Unfortunately I think that the misbehaviour of notes on gtk 2.2.23 is actually the cause of notes being soooo sloooow on linux. The Windows-version does not use gtk afaik. Yes the Notes-folks should indeed fix their code. I have tried calling ibm in the hope of telling them about the problem, but getting through to them is not easy.

Revision history for this message
Eduardo Otubo (otubo) wrote :

Same bug here. The hack Søren Holm published worked fine for me. Thanks!

Revision history for this message
Mauro (mauroma) wrote :

Same bug for me also! And Holm's hack is working great! (natty 32bit)
Thanks a lot!

Revision history for this message
Dave Hay (david-hay) wrote :

Soren's patch worked for me, using Notes 8.5.3 CD4 on Ubuntu 11.04 on a Thinkpad W500.

Have blogged it here: -

http://portal2portal.blogspot.com/2011/05/ubuntu-linux-1104-natty-narwhal-and-ibm.html

giving full credit to Soren, in case others don't reach this site.

Thanks, Soren, great job :-)

Revision history for this message
Søren Holm (sgh) wrote :

Thanks guys.

Could you pleas try to push your respective it-organizations to have them push ibm to get this fixed in Lotus Notes.

I suspect the reason why Lotus Notes is so slow might be relared to wrong use of gtk.

Revision history for this message
Gytis Raciukaitis (noxxious) wrote :

Hi Soren,

do you have any technical proof on the wrong usage of GTK+ in Lotus Notes ? I work for IBM and I could raise an internal defect regarding this as our internal Ubuntu users are also being hit by this. Lotus of course supports only LTS releases and having to push a breakage fix that is due to some new upstream GTK+ features is rather hard to do, but if we can build a case that this is would give a performance boost and actually is an incorrect usage on their part could increase the priority - Lotus guys are very much aware of performance of Lotus Notes.

Thanks.

Revision history for this message
Søren Holm (sgh) wrote :

Gytis, I it so great that you are here.

I do not have any proof, but given that the bad commit in gtk c282958fb4bb25c736c682735002d15c50cb44d0 realy just is an optimization, the usage of the affected funtion must be somewhat wrong - or at least missunderstood.

All other gtk-applications just as fine after as before the change. The change is quite small.

diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c
index c550aea..c4e8744 100644
--- a/gdk/gdkwindow.c
+++ b/gdk/gdkwindow.c
@@ -8640,6 +8640,9 @@ gdk_window_shape_combine_region (GdkWindow *window,
   if (GDK_WINDOW_DESTROYED (window))
     return;

+ if (!private->shaped && shape_region == NULL)
+ return;
+
   private->shaped = (shape_region != NULL);

   if (private->shape)

Revision history for this message
Gastón del Rivero (gaston-delrivero) wrote :

guys see what I just found on the ibm forum for the open client for debian community:

"as far as I understood from the last OCDC call Jose is working on a kind of ibm-lotus-notes-fixes or ...-compat package. We already had something like this in the early Jaunty days ...
Btw. this Notes issue also seems to exist on newer Fedora releases - so we are not alone "

that was written by a german architect who works for IBM, and, considering the amount of posts he has, and the fact that he's always trying to help (not sure if he's part of the developers team or something) he has the right information. so we can consider this is moving forward :)

here is the link:

http://ibmforums.ibm.com/forums/message.jspa?messageID=1962164&tstart=0

Revision history for this message
Søren Holm (sgh) wrote :

Sounds great, but the link is bad ı think. Could you paste the correct one please?

Revision history for this message
Gastón del Rivero (gaston-delrivero) wrote : Re: [Bug 723458] Re: libgtk2 2.24.0 break Lotus Notes user interface

no, the link is to ibm intranet, so if you are not logged in then you won't
be able to see it.

On 10 May 2011 13:05, Søren Holm <email address hidden> wrote:

> Sounds great, but the link is bad ı think. Could you paste the correct
> one please?
>
> --
> You received this bug notification because you are a direct subscriber
> of the bug.
> https://bugs.launchpad.net/bugs/723458
>
> Title:
> libgtk2 2.24.0 break Lotus Notes user interface
>
> Status in GTK+ GUI Toolkit:
> Incomplete
> Status in “gtk+2.0” package in Ubuntu:
> Triaged
>
> Bug description:
> I'm running Lotus Notes at work, but on natty most parts of the
> application is rendered useless. The reason is a change in libgtk2
> that destroys Lotus Notes' ability to draw its own gui.
>
> Since Lotus Notes is a closed source application I am very limited in
> my search for the cause, but I have bisected libgtk2 and found the
> following commit to be the bad guy :
>
> c282958fb4bb25c736c682735002d15c50cb44d0 is the first bad commit
> commit c282958fb4bb25c736c682735002d15c50cb44d0
> Author: Matthias Clasen <email address hidden>
> Date: Tue Dec 14 22:24:09 2010 -0500
>
> Optimize gdk_window_set_shape_combine_region
>
> When setting no shape on an unshaped window, nothing changes,
> so return early instead of recomputing lots of visibility
> information.
>
> Pointed out by Owen Taylor in bug 637156.
>
> :040000 040000 ef945a068fc514b34877c2beeab6185d433e8892
> a96cac159dce4190a93c1a853e90635f7405bdf6 M gdk
>
> ProblemType: Bug
> DistroRelease: Ubuntu 11.04
> Package: libgtk2.0-0 2.24.0-0ubuntu3
> Uname: Linux 2.6.38-rc5-sgh20110219 i686
> Architecture: i386
> Date: Wed Feb 23 00:18:48 2011
> InstallationMedia: Kubuntu 11.04 "Natty Narwhal" - Alpha i386 (20110202)
> ProcEnviron:
> LANGUAGE=
> PATH=(custom, user)
> LANG=da_DK.UTF-8
> SHELL=/bin/bash
> SourcePackage: gtk+2.0
>
> To unsubscribe from this bug, go to:
> https://bugs.launchpad.net/gtk/+bug/723458/+subscribe
>

--
Gastón del Rivero

Revision history for this message
Gastón del Rivero (gaston-delrivero) wrote :

hmm the link is to the IBM intranet, so if you're not an IBM employee you won't be able to see it, sorry. what's your contact method?

Revision history for this message
Søren Holm (sgh) wrote :

Contact method? Do you want my direct contact info?

Revision history for this message
Gytis Raciukaitis (noxxious) wrote :

Soren,

sorry for the late reply I have reported this to our internal bug trackers and hope this will be relayed to Lotus team.

The contact for the above is:
Name: Frank Heimes
Email: <email address hidden>

Revision history for this message
Søren Holm (sgh) wrote :

Great, thanks.

Revision history for this message
Søren Holm (sgh) wrote :

Now that I have tested the updated debs containing my fix. Are there any news from within the Notes team? It would be nice have a guy from them to be directed to this report and reply.

Revision history for this message
Gastón del Rivero (gaston-delrivero) wrote :

Not that I know of, Søren.. Today I had my day off from the office, but tomorrow I will see if I can set up a brief chat meeting with anyone from the team, and then we'll see what comes out of this. I will keep you guys posted if I have any news.
Sent from my BlackBerry® wireless device

-----Original Message-----
From: Søren Holm <email address hidden>
Sender: <email address hidden>
Date: Mon, 23 May 2011 20:49:21
To: <email address hidden>
Reply-To: Bug 723458 <email address hidden>
Subject: [Bug 723458] Re: libgtk2 2.24.0 break Lotus Notes user interface

Now that I have tested the updated debs containing my fix. Are there any
news from within the Notes team? It would be nice have a guy from them
to be directed to this report and reply.

--
You received this bug notification because you are a direct subscriber
of the bug.
https://bugs.launchpad.net/bugs/723458

Title:
  libgtk2 2.24.0 break Lotus Notes user interface

Status in GTK+ GUI Toolkit:
  Incomplete
Status in “gtk+2.0” package in Ubuntu:
  Triaged

Bug description:
  I'm running Lotus Notes at work, but on natty most parts of the
  application is rendered useless. The reason is a change in libgtk2
  that destroys Lotus Notes' ability to draw its own gui.

  Since Lotus Notes is a closed source application I am very limited in
  my search for the cause, but I have bisected libgtk2 and found the
  following commit to be the bad guy :

  c282958fb4bb25c736c682735002d15c50cb44d0 is the first bad commit
  commit c282958fb4bb25c736c682735002d15c50cb44d0
  Author: Matthias Clasen <email address hidden>
  Date: Tue Dec 14 22:24:09 2010 -0500

      Optimize gdk_window_set_shape_combine_region

      When setting no shape on an unshaped window, nothing changes,
      so return early instead of recomputing lots of visibility
      information.

      Pointed out by Owen Taylor in bug 637156.

  :040000 040000 ef945a068fc514b34877c2beeab6185d433e8892
  a96cac159dce4190a93c1a853e90635f7405bdf6 M gdk

  ProblemType: Bug
  DistroRelease: Ubuntu 11.04
  Package: libgtk2.0-0 2.24.0-0ubuntu3
  Uname: Linux 2.6.38-rc5-sgh20110219 i686
  Architecture: i386
  Date: Wed Feb 23 00:18:48 2011
  InstallationMedia: Kubuntu 11.04 "Natty Narwhal" - Alpha i386 (20110202)
  ProcEnviron:
   LANGUAGE=
   PATH=(custom, user)
   LANG=da_DK.UTF-8
   SHELL=/bin/bash
  SourcePackage: gtk+2.0

To unsubscribe from this bug, go to:
https://bugs.launchpad.net/gtk/+bug/723458/+subscribe

Revision history for this message
Søren Holm (sgh) wrote :

On the https://bugzilla.gnome.org/show_bug.cgi?id=643020 the following happenend,

---------------------------------------------------------------------------------------------------------------------------------------------------------------------
Wen Long FENG 2011-06-16 06:18:16 UTC
Per my understanding, it is a bug involved by gtk code change.
Per the documentation of gdk_window_shape_combine_region, setting shape_region
to NULL should make the gdkwindow be opaque. But under the new code, the
function will do nothing when set shape_region as NULL.
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
Søren Holm [reporter] 2011-06-16 06:38:24 UTC
That is interresting news. I where just naive and trusted the commit message.
Thanks for that additional research. Maybe now the commit could be reverted?
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
Søren Holm [reporter] 2011-07-10 20:14:15 UTC
Is Wen Long Feng right about his thoughts? I can also see in the coe this :

 * If @shape_region is %NULL, the shape will be unset, so the whole
 * window will be opaque again. @offset_x and @offset_y are ignored
 * if @shape_region is %NULL.

So I guess he is right. Could someone please revert
208d717fefb7d1d1faa0dada132a290036b458d0 ?
---------------------------------------------------------------------------------------------------------------------------------------------------------------------

Apparently this is a bug in gtk. This tells me that we should all push to get commit 208d717fefb7d1d1faa0dada132a290036b458d0 reverted,

Changed in gtk:
status: Incomplete → Unknown
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.