This was observed intermittently on Fedora 36 using server build #2708.
Given this setup, running tl-setup on a system that misses some of the required dependencies (i.e. pkginsthelp will be used), you sometimes get one of the following effects right after the installation progress bar appears:
- The application crashes:
> Fatal Python error: Segmentation fault
- Pango spews out a bunch of warnings but the installation continues just fine:
> (tl-setup.py:2748): Pango-CRITICAL **: 13:27:23.043: pango_layout_is_wrapped: assertion 'layout != NULL' failed
> (tl-setup.py:2748): Pango-CRITICAL **: 13:27:23.043: pango_layout_is_ellipsized: assertion 'layout != NULL' failed
> /usr/lib/python3.10/site-packages/gi/overrides/Gtk.py:1689: Warning: g_object_ref: assertion 'G_IS_OBJECT (object)' failed
> return _Gtk_main(*args, **kwargs)
> (tl-setup.py:2748): Pango-CRITICAL **: 13:27:23.044: pango_layout_get_context: assertion 'layout != NULL' failed
- tl-setup simply locks up indefinitely without anything being written to either stout or /var/log/tlsetup.log
A fix is now in place, and I can no longer reproduce the crash/hang/warnings.
The issue was likely present on all distributions and has been there since 2012. Thus, reproducing this issue may be somewhat tricky for the tester since it requires at least a handful of stars to perfectly align. Though you may have some luck attempting to reproduce it as follows:
1. Deploy F36 server from our template
2. dnf install python3-gobject gtk3 librsvg2 xauth
3. Run #2708 installer over X forwarding
4. Continue running tl-setup, clicking on through until you hit the first page
where dependency installation takes place
5. Hopefully get hit by warnings, a crash, or a freeze right after the
installation progress bar is shown
If the problem is hard to reproduce, it may be enough just to check that my reasoning for pushing the UI code to the event queue is sufficient.
I noticed the same sequence of warnings when tl-setup was installing the first bunch of dependencies for the 4.14.0 server. This time on RHEL9.
Unfortunately, I was unable to reproduce the issue. However, the fix looks good, and I could not find any other GTK code being called from the threads. We basically only do GLib.idle_add() from the thread now.