-
Bug
-
Resolution: Done-Errata
-
Normal
-
rhel-10.1
-
None
-
gnome-ponytail-daemon-0.0.11-5.el10
-
No
-
Important
-
OtherQA
-
1
-
rhel-display-window-mgmt
-
ssg_display
-
15
-
17
-
8
-
Dev ack
-
False
-
False
-
-
None
-
Display WM #2/2025
-
Pass
-
RegressionOnly
-
Unspecified
-
Unspecified
-
Unspecified
-
None
What were you trying to do that didn't work?
Our automated testing of graphical RHEL installations using a specialized automation tool, Anabot (that internally uses dogtail/ponytail), often fails (under specific circumstances), with the following traceback:
Exception ignored in atexit callback: <bound method Ponytail.disconnect of <ponytail.ponytail.Ponytail object at 0x7f181224b380>> Traceback (most recent call last): File "/usr/lib/python3.12/site-packages/ponytail/ponytail.py", line 227, in disconnect self.event_controller.Disconnect(dbus_interface=self.event_controller_iface) File "/usr/lib64/python3.12/site-packages/dbus/proxies.py", line 141, in __call__ return self._connection.call_blocking(self._named_service, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib64/python3.12/site-packages/dbus/connection.py", line 634, in call_blocking reply_message = self.send_message_with_reply_and_block( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dbus.exceptions.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name is not activatable Traceback (most recent call last): File "/opt/launcher.py", line 6, in <module> sys.exit(anabot.launcher.main(*sys.argv)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/anabot/launcher.py", line 196, in main run_test("/var/run/anabot/final-recipe.xml", appname=app_name, children_required=min_children) File "/opt/anabot/runtime/run_test.py", line 57, in run_test handle_step(doc.getRootElement(), application, None) File "/opt/anabot/runtime/default.py", line 55, in handle_step result = handler(element, app_node, local_node) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/anabot/runtime/installation/__init__.py", line 15, in installation_handler default_handler(element, app_node, local_node) File "/opt/anabot/runtime/default.py", line 95, in default_handler handle_step(child, app_node, local_node) File "/opt/anabot/runtime/default.py", line 55, in handle_step result = handler(element, app_node, local_node) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/anabot/runtime/installation/hub/__init__.py", line 59, in hub_handler default_handler(element, app_node, local_node, waitfunc=wait_for_animation_end) File "/opt/anabot/runtime/default.py", line 95, in default_handler handle_step(child, app_node, local_node) File "/opt/anabot/runtime/default.py", line 55, in handle_step result = handler(element, app_node, local_node) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/anabot/runtime/installation/hub/partitioning/__init__.py", line 44, in base_handler default_handler(element, app_node, partitioning_panel) File "/opt/anabot/runtime/default.py", line 95, in default_handler handle_step(child, app_node, local_node) File "/opt/anabot/runtime/default.py", line 55, in handle_step result = handler(element, app_node, local_node) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/anabot/runtime/installation/hub/partitioning/advanced/__init__.py", line 60, in base_handler default_handler(element, app_node, advanced_panel) File "/opt/anabot/runtime/default.py", line 95, in default_handler handle_step(child, app_node, local_node) File "/opt/anabot/runtime/default.py", line 55, in handle_step result = handler(element, app_node, local_node) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/anabot/runtime/installation/hub/partitioning/luks_dialog/__init__.py", line 84, in luks_password_handler luks_password_manipulate(element, app_node, local_node, False) File "/opt/anabot/runtime/installation/hub/partitioning/luks_dialog/__init__.py", line 71, in luks_password_manipulate pw_entry.click() File "/opt/lib/python3.12/site-packages/dogtail/tree.py", line 751, in click rawinput.click(clickX, clickY, button, window_id=self.window_id) File "/opt/lib/python3.12/site-packages/dogtail/rawinput.py", line 171, in click ponytail_check_connection(window_id) File "/opt/lib/python3.12/site-packages/dogtail/rawinput.py", line 127, in ponytail_check_connection ponytail.disconnect() File "/usr/lib/python3.12/site-packages/ponytail/ponytail.py", line 227, in disconnect self.event_controller.Disconnect(dbus_interface=self.event_controller_iface) File "/usr/lib64/python3.12/site-packages/dbus/proxies.py", line 141, in __call__ return self._connection.call_blocking(self._named_service, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib64/python3.12/site-packages/dbus/connection.py", line 634, in call_blocking reply_message = self.send_message_with_reply_and_block( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NoReply: Remote peer disconnected
The affected tests relate to LUKS password setting (although we saw DBus-related exceptions in other cases, namely after clicking on Reboot button at the end of installation) and the failure occurs when Anabot clicks in the password field. It doesn't happen every time, but the occurrence rate high (about 90%).
Unfortunately I couldn't find a simpler and more direct reproducer than by using Anabot, but hopefully the attached D-Bus traffic captures (both for when the exception occurs and for a successful pass through the problematic spot) and core dumps will be useful for investigation.
Some background related to Anabot: It connects to the running installation (anaconda) and controls it using dogtail, the installations run in RDP mode by default. Also, due to RHEL-64694, there's a dummy service using xfreerdp to locally connect to gnome-kiosk via RDP, since dogtail cannot work properly without an existing monitor under Wayland - and in RDP mode, there's no monitor unless a client connects.
I can create a modified boot ISO for an easier reproduction of the bug if it helps anyhow.
I don't know if the component to blame is gnome-ponytail-daemon, but it's where the traces lead to at least in the tracebacks. Please reassign the bug to a different component if needed.
What is the impact of this issue to you?
We cannot test some of Anaconda-related GUI test cases in an automated way.
Please provide the package NVR for which the bug is seen:
gnome-ponytail-daemon-0.0.11-3.el10 (used together with dogtail from upstream git repository - DOGTAIL_1_0_2 / d890d872b642bc94ecd96330223f5588b08b14ad), but the same applies also for the most up-to-date versions (gnome-ponytail-daemon-0.0.11-4.el10, DOGTAIL_1_0_5 / d46d9f4c04b55b3ad7b5ee1c86938beb5b0ac8b1)
How reproducible is this bug?:
90 %?
Steps to reproduce
- Run RHEL-10 installation with Anabot using the attached Anabot recipe (that restarts the system if the exception doesn't occur). The necessary kernel command line parameters are the following:
inst.updates=http://location/of/anabot.img inst.rdp inst.rdp.password=password inst.rdp.username=username anabot=http://location/of/anabot-recipe.xml inst.lang=en_US
It's also useful to add inst.sshd, so that you can ssh to the installation environment. - Observe output of journalctl -fu anabot in the console or via ssh.
Expected results
no tracebacks, dogtail/gnome-ponytail-daemon works without any crashes and enables the client program (Anabot) to control the required application
Actual results
dogtail, or more precisely the application using dogtail (Anabot) fails with a traceback related to a D-Bus issue
- links to
-
RHBA-2025:150356
gnome-ponytail-daemon update
- mentioned on