xpra icon
Bug tracker and wiki

Opened 2 weeks ago

Closed 2 weeks ago

#2822 closed defect (fixed)

gtk3 > 3.24.10 crash during opengl probing

Reported by: Antoine Martin Owned by: Antoine Martin
Priority: major Milestone: 4.1
Component: android Version: 3.0.x
Keywords: Cc:

Description

We had to revert the upgrade from 3.24.10 to 3.24.14: r25870.

We also cannot upgrade to gtk 3.24.20 as the bug is still present in this version.
So the moduleset update included in r26824 (+r26825) causes the opengl crash to occur again.

We need to bisect it and then patch it + submit upstream.

Sadly, the GTK diffstat is absolutely humongus:

bash-3.2$ diff -urN gtk+-3.24.10 gtk+-3.24.11/| wc -l
  278974
bash-3.2$ diff -urN gtk+-3.24.11 gtk+-3.24.12/| wc -l
  532742
bash-3.2$ diff -urN gtk+-3.24.12 gtk+-3.24.13/| wc -l
  914936
bash-3.2$ diff -urN gtk+-3.24.13 gtk+-3.24.14/| wc -l
 1284698
  • 3.24.10 OK
  • 3.24.11 OK

Attachments (1)

report.txt (77.9 KB) - added by Antoine Martin 2 weeks ago.
macos crash report

Download all attachments as: .zip

Change History (5)

comment:1 Changed 2 weeks ago by Antoine Martin

Status: newassigned
  • 3.24.12 OK
  • 3.24.13 build fails:
      CC       gdkglobals-quartz.lo
    /Users/macos/gtk/source/gtk+-3.24.20/gdk/quartz/gdkdnd-quartz.c:24:10: fatal error: 'gdkquartz-gtk-only.h' file not found
    #include "gdkquartz-gtk-only.h"
    
  • 3.24.14 bad

So somewhere between:

comment:2 Changed 2 weeks ago by Antoine Martin

bash-3.2$ git bisect new fab213a5f93c5624ed62a949ea6f93c8f2a3a591
You need to start by "git bisect start"
Do you want me to do it for you [Y/n]? y
bash-3.2$ git bisect old 075dcc142aa525778268165095de019b736f3efa
Bisecting: 123 revisions left to test after this (roughly 7 steps)
[40264c7ab30d307996799e0ed70ce6a7d6ba1d31] ci: Add libXtst-devel

But then we hit lots of failures to build when using these git checkouts, those don't happen with the release snapshots! Why?
ie:

  CC       libgtk_3_la-gtkdbusgenerated.lo
make[3]: *** No rule to make target '/Users/macos/gtk/source/gtk+-3.24.20/gtk/gtkresources.c', needed by 'libgtk_3_la-gtkresources.lo'.  Stop.
make[3]: *** Waiting for unfinished jobs....

What's the trick?

comment:3 Changed 2 weeks ago by Antoine Martin

Bisection "fixed" by just adding the missing files from the working archives:

cp ../pkgs/gtk-bug/gtk+-3.24.14/gtk/gtktypebuiltins.c ../gtk+-3.24.20/gtk/
cp ../pkgs/gtk-bug/gtk+-3.24.14/gtk/gtkresources.c ../gtk+-3.24.20/gtk/
cp ../pkgs/gtk-bug/gtk+-3.24.14/gtk/gtkmarshalers.c ../gtk+-3.24.20/gtk/
cp ../pkgs/gtk-bug/gtk+-3.24.14/gtk/gtkprivatetypebuiltins.c ../gtk+-3.24.20/gtk/

Then just skip building "demos" etc

And the problem commit is (large) https://gitlab.gnome.org/GNOME/gtk/commit/f0002ad37250cd851463e9bc9fde83f393cd12bd, which was merged here: https://gitlab.gnome.org/GNOME/gtk/commit/ef72fe750adca51590b8c94a2e6c56cac32c2173.

Reverting this commit on top of 3.24.20 does work.

Changed 2 weeks ago by Antoine Martin

Attachment: report.txt added

macos crash report

comment:4 Changed 2 weeks ago by Antoine Martin

Resolution: fixed
Status: assignedclosed

Solved by reverting the faulty patch in r26837.

Asked upstream about a better solution: https://gitlab.gnome.org/GNOME/gtk/-/issues/1737#note_852144

Note: See TracTickets for help on using tickets.