Forwarded: https://gitlab.com/dogtail/dogtail/-/merge_requests/59

commit c80b35033f28ba628694a031e022b9ef94bc6cbd
Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date:   Thu Mar 5 20:59:27 2026 +0100

    utils.run: Also ignore gi.repository.GLib.GError exceptions
    
    As seen in some CI logs:
    
    https://ci.debian.net/packages/d/dogtail/testing/ppc64el/69243745/
    
    806s ======================================================================
    806s ERROR: test_custom_actions_table_cell (test_procedural.TestActions.test_custom_actions_table_cell)
    806s ----------------------------------------------------------------------
    806s Traceback (most recent call last):
    806s   File "/tmp/autopkgtest-lxc.rqlxm3x_/downtmp/autopkgtest_tmp/tests/test_procedural.py", line 21, in setUp
    806s     self.pid = run('gtk3-demo')
    806s                ~~~^^^^^^^^^^^^^
    806s   File "/usr/lib/python3/dist-packages/dogtail/procedural.py", line 507, in run
    806s     pid = utilsRun(application + " " + arguments, appName=appName)
    806s   File "/usr/lib/python3/dist-packages/dogtail/utils.py", line 131, in run
    806s     if child.name == appName:
    806s        ^^^^^^^^^^
    806s gi.repository.GLib.GError: atspi_error: The application no longer exists (0)
    
    we may get gi.repository.GLib.GError exceptions if while waiting for
    gtk3-demo to start, some applications stops (thus making getting child.name
    fail). We can ignore that exception, just like we ignore AttributeError.

diff --git a/dogtail/utils.py b/dogtail/utils.py
index d6b2658..8737aa3 100644
--- a/dogtail/utils.py
+++ b/dogtail/utils.py
@@ -139,6 +139,8 @@ def run(string, timeout=config.runTimeout, interval=config.runInterval, desktop=
                                 return pid
             except AttributeError:  # pragma: no cover
                 pass
+            except gi.repository.GLib.GError:  # pragma: no cover
+                pass
 
             doDelay(interval)
 
