user [email protected]
usertags 1148127 python3.15
tags 1148127 patch
thanks

Hi!

While rebuilding the python related packages against the Python 3.15rc2
version I ran into this FTBFS, although in arm64 [1].

The error is the same:

9/10 at-spi2-core:direct-connection FAIL             2.05s   killed by signal 6 
SIGABRT

But in my case, this was not intermittent, by running an emulated arm64
VM in my local machine, I could reproduce this problem consistently.

The issue is that the dbus connection needs to be warmed up, otherwise
it fails.

I've created a patch to do a connection and disconnection before
starting the test, to solve this problem. This patch should probably be
sent upstream.

Happy hacking,

[1]: https://debusine.debian.net/debian/r-python-python3.15/artifact/4746439/

--
"Can you imagine what I would do if I could do all I can?" -- Sun Tzu
Saludos /\/\ /\ >< `/
Description: Fix baseline race in direct connection test
 The background accessibility registry daemon connects to the application
 asynchronously shortly after startup. Perform an initial warmup connection
 and settle delay before sampling baseline pidfds so background connections
 stabilize.
Author: Maximiliano Curia <[email protected]>
Forwarded: no
---
--- a/tests/at-spi2-atk/test-direct-connection.c
+++ b/tests/at-spi2-atk/test-direct-connection.c
@@ -218,6 +218,29 @@ test_direct_connection_is_released (void
       goto out;
     }
 
+  /* Perform an initial connection and disconnection (warmup) to let any
+     background registration and connection setup settle. */
+  direct_connection = open_direct_connection (application_address, &error);
+  if (!direct_connection)
+    {
+      g_test_fail_printf ("Failed to open direct connection: %s", error->message);
+      goto out;
+    }
+
+  if (!query_direct_connection (direct_connection, &error))
+    {
+      g_test_fail_printf ("Failed to query direct connection: %s", error->message);
+      goto out;
+    }
+
+  if (!g_dbus_connection_close_sync (direct_connection, NULL, &error))
+    {
+      g_test_fail_printf ("Failed to close direct connection: %s", error->message);
+      goto out;
+    }
+  g_clear_object (&direct_connection);
+  g_usleep (100 * 1000);
+
   baseline = count_pidfds (app_pid);
   direct_connection = open_direct_connection (application_address, &error);
   if (!direct_connection)

Reply via email to