Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

libxklavier removal #5463

Merged
merged 5 commits into from
Jun 6, 2024
Merged

Conversation

jexposit
Copy link
Contributor

@jexposit jexposit commented Feb 8, 2024

RHEL 10 only! Please do not merge until the branch for RHEL 10 is created.


libxklavier is deprecated and X11 only. A Wayland alternative is required for RHEL 10.

While there is an ongoing conversation about enabling org.freedesktop.locale1 as a way to set the keyboard layout used by the compositor, not all compositors used by the different Fedora Spins support it.

This PR allows to use GNOME Kiosk's API to replace libxklavier in the environments were it is used.

@pep8speaks
Copy link

pep8speaks commented Feb 8, 2024

Hello @jexposit! Thanks for updating this PR. We checked the lines you've touched for PEP 8 issues, and found:

There are currently no PEP 8 issues detected in this Pull Request. Cheers! 🍻

Comment last updated at 2024-05-28 15:10:18 UTC

@jexposit
Copy link
Contributor Author

jexposit commented Feb 8, 2024

/build-image --boot.iso

@jexposit
Copy link
Contributor Author

jexposit commented Feb 8, 2024

/build-image --live

Copy link

github-actions bot commented Feb 8, 2024

Images built based on commit e0f19bc:

  • Live: failure

Download the images from the bottom of the job status page.

Copy link

github-actions bot commented Feb 8, 2024

Images built based on commit e0f19bc:

  • boot.iso: failure

Download the images from the bottom of the job status page.

@jkonecny12 jkonecny12 added rhel-10 and removed f40 labels Feb 8, 2024
@M4rtinK M4rtinK added the blocked Don't merge this pull request! label Feb 8, 2024
Copy link
Member

@jkonecny12 jkonecny12 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

First batch from my review. Not finish yet.

pyanaconda/ui/gui/gk_keyboard_manager.py Outdated Show resolved Hide resolved
pyanaconda/ui/gui/gk_keyboard_manager.py Outdated Show resolved Hide resolved
pyanaconda/ui/gui/gk_keyboard_manager.py Outdated Show resolved Hide resolved
pyanaconda/ui/gui/gk_keyboard_manager.py Outdated Show resolved Hide resolved
Copy link
Member

@jkonecny12 jkonecny12 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I really like this a lot! Thanks for this.

What I wonder is if we can reduce the C code logic to a bare minimum and change the widgets to just a set/get/signal code without doing the switching directly. Would it be doable?

pyanaconda/ui/gui/spokes/keyboard.py Outdated Show resolved Hide resolved
widgets/src/LayoutIndicator.c Outdated Show resolved Hide resolved
@jkonecny12
Copy link
Member

@jexposit feel free to ignore Live ISO use case because RHEL doesn't support Live ISO so we don't have to care about that here.

@M4rtinK
Copy link
Contributor

M4rtinK commented Feb 8, 2024

What I wonder is if we can reduce the C code logic to a bare minimum and change the widgets to just a set/get/signal code without doing the switching directly. Would it be doable?

That was something I was also thinking about originally, but then I realized it makes more sense for Jose to do it like this dues to his strong C background + its closer to how the widget worked originally.

The main issues could be with maintenance for use (with our GTK/C API knowledge level), but maybe it will be fine for the expected remaining GTK GUI lifetime ?

Edit: Though looking at the C code in detail, it uses the Gnome Kiosk API directly, so while perfectly fine for RHEL 10, this would have to be changed if we want to have keyboard switching working again in Fedora Live images with their different compositors.

Copy link
Contributor

@M4rtinK M4rtinK left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed with Jirkas observations (docs, string formatting, etc.) & otherwise looks good to me as well. :) Next I'll again download the boot.iso & Live image and try to see how it looks like in real live.

pyanaconda/ui/gui/gk_keyboard_manager.py Outdated Show resolved Hide resolved
pyanaconda/ui/gui/spokes/keyboard.py Outdated Show resolved Hide resolved
@M4rtinK
Copy link
Contributor

M4rtinK commented Feb 8, 2024

Looks like boot boot.iso and Live image generation fails due to some issues with the C widget compilation:

make[7]: Entering directory '/tmp/anaconda/widgets/src'
gdbus-codegen \
--interface-prefix org.gnome. \
--c-namespace Gk \
--generate-c-code gk-kiosk \
--output-directory . \
/usr/local/share/dbus/org.gnome.Kiosk.xml
Traceback (most recent call last):
  File "/usr/bin/gdbus-codegen", line 55, in <module>
    sys.exit(codegen_main.codegen_main())
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/share/glib-2.0/codegen/codegen_main.py", line 419, in codegen_main
    with open(fname, "rb") as f:
         ^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: '/usr/local/share/dbus/org.gnome.Kiosk.xml'

I see that file included in the PR, but it seems to be unable to locate it at build time ?

I don't see the new file listed in a makefile & in spec file, so it might not actually be shipped in the tarball & this is why its missing at build time.

@jexposit
Copy link
Contributor Author

jexposit commented Feb 9, 2024

/build-image --boot.iso

@jexposit
Copy link
Contributor Author

jexposit commented Feb 9, 2024

The unit test task is failing with error:

LayoutIndicator.c:31:10: fatal error: gk-kiosk.h: No such file or directory
   31 | #include "gk-kiosk.h"
      |          ^~~~~~~~~~~~
compilation terminated.

It looks like gdbus-codegen is not being invoked. However, when I run it locally, it is generating the right files in /tmp/anaconda/widgets/src.

Am I missing an extra step?

Copy link

github-actions bot commented Feb 9, 2024

Images built based on commit 72f4d07:

  • boot.iso: success

Download the images from the bottom of the job status page.

@M4rtinK
Copy link
Contributor

M4rtinK commented Feb 9, 2024

It looks like gdbus-codegen is not being invoked. However, when I run it locally, it is generating the right files in /tmp/anaconda/widgets/src.

Am I missing an extra step?

I'll try to reproduce the issues locally & see whats going on. :)

@M4rtinK
Copy link
Contributor

M4rtinK commented Feb 9, 2024

Weird, doing make -f ./Makefile.am container-rpms-scratch does build & I end up with successfully built RPM. So I tried to restart the failed unit tests, but now it seems to hit a merge conflict apparently ?

Run git config user.name github-actions
c949c03b27 Merge pull request #5464 from poncovka/master-session_bus
Auto-merging anaconda.py
CONFLICT (content): Merge conflict in anaconda.py
Auto-merging pyanaconda/display.py
CONFLICT (content): Merge conflict in pyanaconda/display.py
Rebasing (1/6)
error: could not apply 3baee6de49... Set up the default session bus
hint: Resolve all conflicts manually, mark them as resolved with
hint: "git add/rm <conflicted_files>", then run "git rebase --continue".
hint: You can instead skip this commit: run "git rebase --skip".
hint: To abort and get back to the state before "git rebase", run "git rebase --abort".
Could not apply 3baee6de49... Set up the default session bus
Error: Process completed with exit code 1.

@jexposit

@M4rtinK
Copy link
Contributor

M4rtinK commented Apr 30, 2024

/kickstart-test --skip-testtypes knownfailure,manual,skip-on-rhel,skip-on-rhel-10,gh576,gh640,gh804,gh1090,gh1104,gh1106,gh1105,gh1108,gh1109,gh1107,gh1110

1 similar comment
@M4rtinK
Copy link
Contributor

M4rtinK commented May 3, 2024

/kickstart-test --skip-testtypes knownfailure,manual,skip-on-rhel,skip-on-rhel-10,gh576,gh640,gh804,gh1090,gh1104,gh1106,gh1105,gh1108,gh1109,gh1107,gh1110

@M4rtinK
Copy link
Contributor

M4rtinK commented May 22, 2024

Rebased on latest RHEL 10 branch & dropped the adwaita-icon-theme and gnome-kiosk package rebuilds from the COPR. Lets see if everything still works with latest RHEL 10 repo.

@M4rtinK
Copy link
Contributor

M4rtinK commented May 22, 2024

/kickstart-test --testtype smoke

@M4rtinK
Copy link
Contributor

M4rtinK commented May 22, 2024

/kickstart-test --skip-testtypes knownfailure,manual,skip-on-rhel,skip-on-rhel-10,gh576,gh640,gh804,gh1090,gh1104,gh1106,gh1105,gh1108,gh1109,gh1107,gh1110

Copy link
Member

@jkonecny12 jkonecny12 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

Add a class wrapping GNOME Kiosk's input sources API that future commits
will use via the localization service to replace the X11 keyboard
management logic.

Resolves: RHEL-38399
@M4rtinK
Copy link
Contributor

M4rtinK commented May 27, 2024

Rebased PR on latest rhel-10 branch & added correct Jira references. Also dropped python-pam from the temporary COPR repo, as it should be finally in the RHEL 10 repos.

libxklavier is deprecated and X11-only. On RHEL, the GNOME Kiosk API can
be used instead to handle the keyboard configuration.

In order to make the code migration as simple as possible, keep the
XklWrapper class and update its implementation to use GNOME Kiosk's API
via the localization service.

Resolves: RHEL-38399
Invoke gdbus-codegen as part of the make build and makeupdates script to
generate C code from org.fedoraproject.Anaconda.Modules.Localization.xml.

Resolves: RHEL-38399
This C widget is the last place were libxklavier is used.

Use GNOME Kiosk's API via the localization service instead.

Resolves: RHEL-38399
@M4rtinK M4rtinK force-pushed the libxklavier-removal branch 2 times, most recently from 94d261b to bead3ba Compare May 27, 2024 17:20
Resolves: RHEL-38399
@M4rtinK
Copy link
Contributor

M4rtinK commented May 28, 2024

/kickstart-test --skip-testtypes knownfailure,manual,skip-on-rhel,skip-on-rhel-10,gh576,gh640,gh804,gh1090,gh1104,gh1106,gh1105,gh1108,gh1109,gh1107,gh1110

@M4rtinK
Copy link
Contributor

M4rtinK commented May 29, 2024

So in kickstart tests for this PR, I found one interesting failure twice:

In disklabel-gpt:

16:57:35,693 WARNING org.fedoraproject.Anaconda.Modules.Localization:Traceback (most recent call last):
16:57:35,693 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib/python3.12/site-packages/dasbus/server/handler.py", line 455, in _method_callback
16:57:35,693 WARNING org.fedoraproject.Anaconda.Modules.Localization:    result = self._handle_call(
16:57:35,693 WARNING org.fedoraproject.Anaconda.Modules.Localization:             ^^^^^^^^^^^^^^^^^^
16:57:35,693 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib/python3.12/site-packages/dasbus/server/handler.py", line 265, in _handle_call
16:57:35,693 WARNING org.fedoraproject.Anaconda.Modules.Localization:    return handler(*parameters, **additional_args)
16:57:35,693 WARNING org.fedoraproject.Anaconda.Modules.Localization:           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
16:57:35,693 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib64/python3.12/site-packages/pyanaconda/modules/localization/localization_interface.py", line 251, in GetCompositorSelectedLayout
16:57:35,693 WARNING org.fedoraproject.Anaconda.Modules.Localization:    return self.implementation.get_compositor_selected_layout()
16:57:35,693 WARNING org.fedoraproject.Anaconda.Modules.Localization:           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
16:57:35,693 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib64/python3.12/site-packages/pyanaconda/modules/localization/localization.py", line 338, in get_compositor_selected_layout
16:57:35,693 WARNING org.fedoraproject.Anaconda.Modules.Localization:    return self.compositor_keyboard_manager.get_compositor_selected_layout()
16:57:35,693 WARNING org.fedoraproject.Anaconda.Modules.Localization:           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
16:57:35,693 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib64/python3.12/site-packages/pyanaconda/modules/localization/localization.py", line 327, in compositor_keyboard_manager
16:57:35,693 WARNING org.fedoraproject.Anaconda.Modules.Localization:    self._compositor_keyboard_manager = GkKeyboardManager()
16:57:35,693 WARNING org.fedoraproject.Anaconda.Modules.Localization:                                        ^^^^^^^^^^^^^^^^^^^
16:57:35,693 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib64/python3.12/site-packages/pyanaconda/modules/localization/gk_keyboard_manager.py", line 33, in __init__
16:57:35,693 WARNING org.fedoraproject.Anaconda.Modules.Localization:    self._proxy.PropertiesChanged.connect(self._on_properties_changed)
16:57:35,693 WARNING org.fedoraproject.Anaconda.Modules.Localization:    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
16:57:35,693 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib/python3.12/site-packages/dasbus/client/proxy.py", line 161, in __getattr__
16:57:35,693 WARNING org.fedoraproject.Anaconda.Modules.Localization:    member = self._get_member(self._get_interface(name), name)
16:57:35,693 WARNING org.fedoraproject.Anaconda.Modules.Localization:                              ^^^^^^^^^^^^^^^^^^^^^^^^^
16:57:35,693 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib/python3.12/site-packages/dasbus/client/proxy.py", line 211, in _get_interface
16:57:35,693 WARNING org.fedoraproject.Anaconda.Modules.Localization:    self._handler.specification.members
16:57:35,693 WARNING org.fedoraproject.Anaconda.Modules.Localization:    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
16:57:35,693 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib/python3.12/site-packages/dasbus/client/handler.py", line 212, in specification
16:57:35,693 WARNING org.fedoraproject.Anaconda.Modules.Localization:    self._specification = self._get_specification()
16:57:35,693 WARNING org.fedoraproject.Anaconda.Modules.Localization:                          ^^^^^^^^^^^^^^^^^^^^^^^^^
16:57:35,693 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib/python3.12/site-packages/dasbus/client/handler.py", line 332, in _get_specification
16:57:35,693 WARNING org.fedoraproject.Anaconda.Modules.Localization:    xml = self._call_method(
16:57:35,693 WARNING org.fedoraproject.Anaconda.Modules.Localization:          ^^^^^^^^^^^^^^^^^^
16:57:35,693 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib/python3.12/site-packages/dasbus/client/handler.py", line 450, in _call_method
16:57:35,693 WARNING org.fedoraproject.Anaconda.Modules.Localization:    return self._get_method_reply(
16:57:35,693 WARNING org.fedoraproject.Anaconda.Modules.Localization:           ^^^^^^^^^^^^^^^^^^^^^^^
16:57:35,693 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib/python3.12/site-packages/dasbus/client/handler.py", line 483, in _get_method_reply
16:57:35,693 WARNING org.fedoraproject.Anaconda.Modules.Localization:    return self._handle_method_error(error)
16:57:35,693 WARNING org.fedoraproject.Anaconda.Modules.Localization:           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
16:57:35,693 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib/python3.12/site-packages/dasbus/client/handler.py", line 509, in _handle_method_error
16:57:35,693 WARNING org.fedoraproject.Anaconda.Modules.Localization:    raise exception from None
16:57:35,693 WARNING org.fedoraproject.Anaconda.Modules.Localization:dasbus.error.DBusError: The name is not activatable
16:57:35,697 WARNING org.fedoraproject.Anaconda.Modules.Localization:WARNING:dasbus.server.handler:The call org.fedoraproject.Anaconda.Modules.Localization.GetCompositorLayouts has failed with an exception:
16:57:35,697 WARNING org.fedoraproject.Anaconda.Modules.Localization:Traceback (most recent call last):
16:57:35,697 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib/python3.12/site-packages/dasbus/server/handler.py", line 455, in _method_callback
16:57:35,697 WARNING org.fedoraproject.Anaconda.Modules.Localization:    result = self._handle_call(
16:57:35,697 WARNING org.fedoraproject.Anaconda.Modules.Localization:             ^^^^^^^^^^^^^^^^^^
16:57:35,697 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib/python3.12/site-packages/dasbus/server/handler.py", line 265, in _handle_call
16:57:35,697 WARNING org.fedoraproject.Anaconda.Modules.Localization:    return handler(*parameters, **additional_args)
16:57:35,697 WARNING org.fedoraproject.Anaconda.Modules.Localization:           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
16:57:35,697 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib64/python3.12/site-packages/pyanaconda/modules/localization/localization_interface.py", line 279, in GetCompositorLayouts
16:57:35,697 WARNING org.fedoraproject.Anaconda.Modules.Localization:    return self.implementation.get_compositor_layouts()
16:57:35,697 WARNING org.fedoraproject.Anaconda.Modules.Localization:           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
16:57:35,697 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib64/python3.12/site-packages/pyanaconda/modules/localization/localization.py", line 347, in get_compositor_layouts
16:57:35,697 WARNING org.fedoraproject.Anaconda.Modules.Localization:    return self.compositor_keyboard_manager.get_compositor_layouts()
16:57:35,697 WARNING org.fedoraproject.Anaconda.Modules.Localization:           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
16:57:35,697 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib64/python3.12/site-packages/pyanaconda/modules/localization/localization.py", line 327, in compositor_keyboard_manager
16:57:35,697 WARNING org.fedoraproject.Anaconda.Modules.Localization:    self._compositor_keyboard_manager = GkKeyboardManager()
16:57:35,697 WARNING org.fedoraproject.Anaconda.Modules.Localization:                                        ^^^^^^^^^^^^^^^^^^^
16:57:35,697 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib64/python3.12/site-packages/pyanaconda/modules/localization/gk_keyboard_manager.py", line 33, in __init__
16:57:35,697 WARNING org.fedoraproject.Anaconda.Modules.Localization:    self._proxy.PropertiesChanged.connect(self._on_properties_changed)
16:57:35,697 WARNING org.fedoraproject.Anaconda.Modules.Localization:    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
16:57:35,697 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib/python3.12/site-packages/dasbus/client/proxy.py", line 161, in __getattr__
16:57:35,697 WARNING org.fedoraproject.Anaconda.Modules.Localization:    member = self._get_member(self._get_interface(name), name)
16:57:35,697 WARNING org.fedoraproject.Anaconda.Modules.Localization:                              ^^^^^^^^^^^^^^^^^^^^^^^^^
16:57:35,697 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib/python3.12/site-packages/dasbus/client/proxy.py", line 211, in _get_interface
16:57:35,697 WARNING org.fedoraproject.Anaconda.Modules.Localization:    self._handler.specification.members
16:57:35,697 WARNING org.fedoraproject.Anaconda.Modules.Localization:    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
16:57:35,697 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib/python3.12/site-packages/dasbus/client/handler.py", line 212, in specification
16:57:35,697 WARNING org.fedoraproject.Anaconda.Modules.Localization:    self._specification = self._get_specification()
16:57:35,698 WARNING org.fedoraproject.Anaconda.Modules.Localization:                          ^^^^^^^^^^^^^^^^^^^^^^^^^
16:57:35,698 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib/python3.12/site-packages/dasbus/client/handler.py", line 332, in _get_specification
16:57:35,698 WARNING org.fedoraproject.Anaconda.Modules.Localization:    xml = self._call_method(
16:57:35,698 WARNING org.fedoraproject.Anaconda.Modules.Localization:          ^^^^^^^^^^^^^^^^^^
16:57:35,698 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib/python3.12/site-packages/dasbus/client/handler.py", line 450, in _call_method
16:57:35,698 WARNING org.fedoraproject.Anaconda.Modules.Localization:    return self._get_method_reply(
16:57:35,698 WARNING org.fedoraproject.Anaconda.Modules.Localization:           ^^^^^^^^^^^^^^^^^^^^^^^
16:57:35,698 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib/python3.12/site-packages/dasbus/client/handler.py", line 483, in _get_method_reply
16:57:35,698 WARNING org.fedoraproject.Anaconda.Modules.Localization:    return self._handle_method_error(error)
16:57:35,698 WARNING org.fedoraproject.Anaconda.Modules.Localization:           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
16:57:35,698 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib/python3.12/site-packages/dasbus/client/handler.py", line 509, in _handle_method_error
16:57:35,698 WARNING org.fedoraproject.Anaconda.Modules.Localization:    raise exception from None
16:57:35,698 WARNING org.fedoraproject.Anaconda.Modules.Localization:dasbus.error.DBusError: The name is not activatable

Again in autopart-luks-3:

16:07:39,608 WARNING org.fedoraproject.Anaconda.Modules.Localization:WARNING:dasbus.server.handler:The call org.fedoraproject.Anaconda.Modules.Localization.GetCompositorSelectedLayout has failed with an exception:
16:07:39,608 WARNING org.fedoraproject.Anaconda.Modules.Localization:Traceback (most recent call last):
16:07:39,608 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib/python3.12/site-packages/dasbus/server/handler.py", line 455, in _method_callback
16:07:39,608 WARNING org.fedoraproject.Anaconda.Modules.Localization:    result = self._handle_call(
16:07:39,608 WARNING org.fedoraproject.Anaconda.Modules.Localization:             ^^^^^^^^^^^^^^^^^^
16:07:39,608 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib/python3.12/site-packages/dasbus/server/handler.py", line 265, in _handle_call
16:07:39,608 WARNING org.fedoraproject.Anaconda.Modules.Localization:    return handler(*parameters, **additional_args)
16:07:39,608 WARNING org.fedoraproject.Anaconda.Modules.Localization:           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
16:07:39,608 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib64/python3.12/site-packages/pyanaconda/modules/localization/localization_interface.py", line 251, in GetCompositorSelectedLayout
16:07:39,608 WARNING org.fedoraproject.Anaconda.Modules.Localization:    return self.implementation.get_compositor_selected_layout()
16:07:39,608 WARNING org.fedoraproject.Anaconda.Modules.Localization:           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
16:07:39,608 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib64/python3.12/site-packages/pyanaconda/modules/localization/localization.py", line 338, in get_compositor_selected_layout
16:07:39,608 WARNING org.fedoraproject.Anaconda.Modules.Localization:    return self.compositor_keyboard_manager.get_compositor_selected_layout()
16:07:39,608 WARNING org.fedoraproject.Anaconda.Modules.Localization:           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
16:07:39,608 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib64/python3.12/site-packages/pyanaconda/modules/localization/localization.py", line 327, in compositor_keyboard_manager
16:07:39,608 WARNING org.fedoraproject.Anaconda.Modules.Localization:    self._compositor_keyboard_manager = GkKeyboardManager()
16:07:39,608 WARNING org.fedoraproject.Anaconda.Modules.Localization:                                        ^^^^^^^^^^^^^^^^^^^
16:07:39,608 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib64/python3.12/site-packages/pyanaconda/modules/localization/gk_keyboard_manager.py", line 33, in __init__
16:07:39,608 WARNING org.fedoraproject.Anaconda.Modules.Localization:    self._proxy.PropertiesChanged.connect(self._on_properties_changed)
16:07:39,608 WARNING org.fedoraproject.Anaconda.Modules.Localization:    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
16:07:39,608 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib/python3.12/site-packages/dasbus/client/proxy.py", line 161, in __getattr__
16:07:39,608 WARNING org.fedoraproject.Anaconda.Modules.Localization:    member = self._get_member(self._get_interface(name), name)
16:07:39,608 WARNING org.fedoraproject.Anaconda.Modules.Localization:                              ^^^^^^^^^^^^^^^^^^^^^^^^^
16:07:39,608 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib/python3.12/site-packages/dasbus/client/proxy.py", line 211, in _get_interface
16:07:39,608 WARNING org.fedoraproject.Anaconda.Modules.Localization:    self._handler.specification.members
16:07:39,608 WARNING org.fedoraproject.Anaconda.Modules.Localization:    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
16:07:39,608 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib/python3.12/site-packages/dasbus/client/handler.py", line 212, in specification
16:07:39,609 WARNING org.fedoraproject.Anaconda.Modules.Localization:    self._specification = self._get_specification()
16:07:39,609 WARNING org.fedoraproject.Anaconda.Modules.Localization:                          ^^^^^^^^^^^^^^^^^^^^^^^^^
16:07:39,609 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib/python3.12/site-packages/dasbus/client/handler.py", line 332, in _get_specification
16:07:39,609 WARNING org.fedoraproject.Anaconda.Modules.Localization:    xml = self._call_method(
16:07:39,609 WARNING org.fedoraproject.Anaconda.Modules.Localization:          ^^^^^^^^^^^^^^^^^^
16:07:39,609 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib/python3.12/site-packages/dasbus/client/handler.py", line 450, in _call_method
16:07:39,609 WARNING org.fedoraproject.Anaconda.Modules.Localization:    return self._get_method_reply(
16:07:39,609 WARNING org.fedoraproject.Anaconda.Modules.Localization:           ^^^^^^^^^^^^^^^^^^^^^^^
16:07:39,609 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib/python3.12/site-packages/dasbus/client/handler.py", line 483, in _get_method_reply
16:07:39,609 WARNING org.fedoraproject.Anaconda.Modules.Localization:    return self._handle_method_error(error)
16:07:39,609 WARNING org.fedoraproject.Anaconda.Modules.Localization:           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
16:07:39,609 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib/python3.12/site-packages/dasbus/client/handler.py", line 509, in _handle_method_error
16:07:39,609 WARNING org.fedoraproject.Anaconda.Modules.Localization:    raise exception from None
16:07:39,609 WARNING org.fedoraproject.Anaconda.Modules.Localization:dasbus.error.DBusError: The name is not activatable
16:07:39,637 WARNING org.fedoraproject.Anaconda.Modules.Localization:WARNING:dasbus.server.handler:The call org.fedoraproject.Anaconda.Modules.Localization.GetCompositorLayouts has failed with an exception:
16:07:39,637 WARNING org.fedoraproject.Anaconda.Modules.Localization:Traceback (most recent call last):
16:07:39,637 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib/python3.12/site-packages/dasbus/server/handler.py", line 455, in _method_callback
16:07:39,637 WARNING org.fedoraproject.Anaconda.Modules.Localization:    result = self._handle_call(
16:07:39,637 WARNING org.fedoraproject.Anaconda.Modules.Localization:             ^^^^^^^^^^^^^^^^^^
16:07:39,637 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib/python3.12/site-packages/dasbus/server/handler.py", line 265, in _handle_call
16:07:39,637 WARNING org.fedoraproject.Anaconda.Modules.Localization:    return handler(*parameters, **additional_args)
16:07:39,637 WARNING org.fedoraproject.Anaconda.Modules.Localization:           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
16:07:39,637 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib64/python3.12/site-packages/pyanaconda/modules/localization/localization_interface.py", line 279, in GetCompositorLayouts
16:07:39,637 WARNING org.fedoraproject.Anaconda.Modules.Localization:    return self.implementation.get_compositor_layouts()
16:07:39,637 WARNING org.fedoraproject.Anaconda.Modules.Localization:           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
16:07:39,637 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib64/python3.12/site-packages/pyanaconda/modules/localization/localization.py", line 347, in get_compositor_layouts
16:07:39,637 WARNING org.fedoraproject.Anaconda.Modules.Localization:    return self.compositor_keyboard_manager.get_compositor_layouts()
16:07:39,637 WARNING org.fedoraproject.Anaconda.Modules.Localization:           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
16:07:39,637 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib64/python3.12/site-packages/pyanaconda/modules/localization/localization.py", line 327, in compositor_keyboard_manager
16:07:39,637 WARNING org.fedoraproject.Anaconda.Modules.Localization:    self._compositor_keyboard_manager = GkKeyboardManager()
16:07:39,637 WARNING org.fedoraproject.Anaconda.Modules.Localization:                                        ^^^^^^^^^^^^^^^^^^^
16:07:39,637 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib64/python3.12/site-packages/pyanaconda/modules/localization/gk_keyboard_manager.py", line 33, in __init__
16:07:39,637 WARNING org.fedoraproject.Anaconda.Modules.Localization:    self._proxy.PropertiesChanged.connect(self._on_properties_changed)
16:07:39,637 WARNING org.fedoraproject.Anaconda.Modules.Localization:    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
16:07:39,637 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib/python3.12/site-packages/dasbus/client/proxy.py", line 161, in __getattr__
16:07:39,637 WARNING org.fedoraproject.Anaconda.Modules.Localization:    member = self._get_member(self._get_interface(name), name)
16:07:39,637 WARNING org.fedoraproject.Anaconda.Modules.Localization:                              ^^^^^^^^^^^^^^^^^^^^^^^^^
16:07:39,637 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib/python3.12/site-packages/dasbus/client/proxy.py", line 211, in _get_interface
16:07:39,637 WARNING org.fedoraproject.Anaconda.Modules.Localization:    self._handler.specification.members
16:07:39,637 WARNING org.fedoraproject.Anaconda.Modules.Localization:    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
16:07:39,637 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib/python3.12/site-packages/dasbus/client/handler.py", line 212, in specification
16:07:39,637 WARNING org.fedoraproject.Anaconda.Modules.Localization:    self._specification = self._get_specification()
16:07:39,637 WARNING org.fedoraproject.Anaconda.Modules.Localization:                          ^^^^^^^^^^^^^^^^^^^^^^^^^
16:07:39,637 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib/python3.12/site-packages/dasbus/client/handler.py", line 332, in _get_specification
16:07:39,637 WARNING org.fedoraproject.Anaconda.Modules.Localization:    xml = self._call_method(
16:07:39,637 WARNING org.fedoraproject.Anaconda.Modules.Localization:          ^^^^^^^^^^^^^^^^^^
16:07:39,637 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib/python3.12/site-packages/dasbus/client/handler.py", line 450, in _call_method
16:07:39,637 WARNING org.fedoraproject.Anaconda.Modules.Localization:    return self._get_method_reply(
16:07:39,637 WARNING org.fedoraproject.Anaconda.Modules.Localization:           ^^^^^^^^^^^^^^^^^^^^^^^
16:07:39,637 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib/python3.12/site-packages/dasbus/client/handler.py", line 483, in _get_method_reply
16:07:39,637 WARNING org.fedoraproject.Anaconda.Modules.Localization:    return self._handle_method_error(error)
16:07:39,637 WARNING org.fedoraproject.Anaconda.Modules.Localization:           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
16:07:39,637 WARNING org.fedoraproject.Anaconda.Modules.Localization:  File "/usr/lib/python3.12/site-packages/dasbus/client/handler.py", line 509, in _handle_method_error
16:07:39,637 WARNING org.fedoraproject.Anaconda.Modules.Localization:    raise exception from None
16:07:39,637 WARNING org.fedoraproject.Anaconda.Modules.Localization:dasbus.error.DBusError: The name is not activatable

Then there is another apparent race condition in storage (also seen in different kickstart test in last full kstestrun on the xrandr PR) in ui_text_interactive:

16:28:44,323 WARNING org.fedoraproject.Anaconda.Modules.Storage:DEBUG:blivet:lvm filter: device /dev/vda3 added to the list of allowed devices
16:28:44,323 WARNING org.fedoraproject.Anaconda.Modules.Storage:DEBUG:blivet:lvm filter: clearing the lvm devices list
16:28:52,607 WARNING org.fedoraproject.Anaconda.Modules.Storage:ERROR:anaconda.modules.storage.installation:Failed to create storage layout: Failed to call the 'PvCreate' method on the '/com/redhat/lvmdbus1/Manager' object: Timeout was reached
16:28:52,607 WARNING org.fedoraproject.Anaconda.Modules.Storage:Traceback (most recent call last):
16:28:52,607 WARNING org.fedoraproject.Anaconda.Modules.Storage:  File "/usr/lib64/python3.12/site-packages/gi/overrides/BlockDev.py", line 1243, in wrapped
16:28:52,607 WARNING org.fedoraproject.Anaconda.Modules.Storage:    ret = orig_obj(*args, **kwargs)
16:28:52,607 WARNING org.fedoraproject.Anaconda.Modules.Storage:          ^^^^^^^^^^^^^^^^^^^^^^^^^
16:28:52,607 WARNING org.fedoraproject.Anaconda.Modules.Storage:  File "/usr/lib64/python3.12/site-packages/gi/overrides/BlockDev.py", line 746, in lvm_pvcreate
16:28:52,607 WARNING org.fedoraproject.Anaconda.Modules.Storage:    return _lvm_pvcreate(device, data_alignment, metadata_size, extra)
16:28:52,607 WARNING org.fedoraproject.Anaconda.Modules.Storage:           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
16:28:52,607 WARNING org.fedoraproject.Anaconda.Modules.Storage:gi.repository.GLib.GError: g-io-error-quark: Failed to call the 'PvCreate' method on the '/com/redhat/lvmdbus1/Manager' object: Timeout was reached (24)
16:28:52,607 WARNING org.fedoraproject.Anaconda.Modules.Storage:During handling of the above exception, another exception occurred:
16:28:52,607 WARNING org.fedoraproject.Anaconda.Modules.Storage:Traceback (most recent call last):
16:28:52,607 WARNING org.fedoraproject.Anaconda.Modules.Storage:  File "/usr/lib/python3.12/site-packages/blivet/formats/lvmpv.py", line 191, in _create
16:28:52,607 WARNING org.fedoraproject.Anaconda.Modules.Storage:    blockdev.lvm.pvcreate(self.device, data_alignment=self.data_alignment, extra=[ea_yes])
16:28:52,607 WARNING org.fedoraproject.Anaconda.Modules.Storage:  File "/usr/lib64/python3.12/site-packages/gi/overrides/BlockDev.py", line 1265, in wrapped
16:28:52,607 WARNING org.fedoraproject.Anaconda.Modules.Storage:    raise transform[1](msg)
16:28:52,607 WARNING org.fedoraproject.Anaconda.Modules.Storage:gi.overrides.BlockDev.LVMError: Failed to call the 'PvCreate' method on the '/com/redhat/lvmdbus1/Manager' object: Timeout was reached
16:28:52,607 WARNING org.fedoraproject.Anaconda.Modules.Storage:During handling of the above exception, another exception occurred:
16:28:52,607 WARNING org.fedoraproject.Anaconda.Modules.Storage:Traceback (most recent call last):
16:28:52,607 WARNING org.fedoraproject.Anaconda.Modules.Storage:  File "/usr/lib64/python3.12/site-packages/pyanaconda/modules/storage/installation.py", line 83, in run
16:28:52,607 WARNING org.fedoraproject.Anaconda.Modules.Storage:    self._turn_on_filesystems(
16:28:52,607 WARNING org.fedoraproject.Anaconda.Modules.Storage:  File "/usr/lib64/python3.12/site-packages/pyanaconda/modules/storage/installation.py", line 163, in _turn_on_filesystems
16:28:52,607 WARNING org.fedoraproject.Anaconda.Modules.Storage:    storage.do_it(callbacks)
16:28:52,607 WARNING org.fedoraproject.Anaconda.Modules.Storage:  File "/usr/lib/python3.12/site-packages/blivet/threads.py", line 49, in run_with_lock
16:28:52,607 WARNING org.fedoraproject.Anaconda.Modules.Storage:    return m(*args, **kwargs)
16:28:52,607 WARNING org.fedoraproject.Anaconda.Modules.Storage:           ^^^^^^^^^^^^^^^^^^
16:28:52,607 WARNING org.fedoraproject.Anaconda.Modules.Storage:  File "/usr/lib/python3.12/site-packages/blivet/blivet.py", line 127, in do_it
16:28:52,607 WARNING org.fedoraproject.Anaconda.Modules.Storage:    self.devicetree.actions.process(callbacks=callbacks, devices=self.devices, fstab=self.fstab)
16:28:52,608 DEBUG anaconda:simpleline: New signal SendMessageSignal enqueued with source TextUserInterface
16:28:52,608 WARNING org.fedoraproject.Anaconda.Modules.Storage:  File "/usr/lib/python3.12/site-packages/blivet/actionlist.py", line 46, in wrapped_func
16:28:52,608 WARNING org.fedoraproject.Anaconda.Modules.Storage:    return func(obj, *args, **kwargs)
16:28:52,608 WARNING org.fedoraproject.Anaconda.Modules.Storage:           ^^^^^^^^^^^^^^^^^^^^^^^^^^
16:28:52,608 WARNING org.fedoraproject.Anaconda.Modules.Storage:  File "/usr/lib/python3.12/site-packages/blivet/actionlist.py", line 303, in process
16:28:52,608 WARNING org.fedoraproject.Anaconda.Modules.Storage:    action.execute(callbacks)
16:28:52,608 WARNING org.fedoraproject.Anaconda.Modules.Storage:  File "/usr/lib/python3.12/site-packages/blivet/threads.py", line 49, in run_with_lock
16:28:52,608 WARNING org.fedoraproject.Anaconda.Modules.Storage:    return m(*args, **kwargs)
16:28:52,608 WARNING org.fedoraproject.Anaconda.Modules.Storage:           ^^^^^^^^^^^^^^^^^^
16:28:52,608 WARNING org.fedoraproject.Anaconda.Modules.Storage:  File "/usr/lib/python3.12/site-packages/blivet/deviceaction.py", line 668, in execute
16:28:52,608 WARNING org.fedoraproject.Anaconda.Modules.Storage:    self.device.format.create(device=self.device.path,
16:28:52,608 WARNING org.fedoraproject.Anaconda.Modules.Storage:  File "/usr/lib/python3.12/site-packages/blivet/threads.py", line 49, in run_with_lock
16:28:52,608 WARNING org.fedoraproject.Anaconda.Modules.Storage:    return m(*args, **kwargs)
16:28:52,608 WARNING org.fedoraproject.Anaconda.Modules.Storage:           ^^^^^^^^^^^^^^^^^^
16:28:52,608 WARNING org.fedoraproject.Anaconda.Modules.Storage:  File "/usr/lib/python3.12/site-packages/blivet/formats/__init__.py", line 517, in create
16:28:52,608 WARNING org.fedoraproject.Anaconda.Modules.Storage:    self._create(**kwargs)
16:28:52,608 WARNING org.fedoraproject.Anaconda.Modules.Storage:  File "/usr/lib/python3.12/site-packages/blivet/threads.py", line 49, in run_with_lock
16:28:52,608 WARNING org.fedoraproject.Anaconda.Modules.Storage:    return m(*args, **kwargs)
16:28:52,608 WARNING org.fedoraproject.Anaconda.Modules.Storage:           ^^^^^^^^^^^^^^^^^^
16:28:52,608 WARNING org.fedoraproject.Anaconda.Modules.Storage:  File "/usr/lib/python3.12/site-packages/blivet/formats/lvmpv.py", line 193, in _create
16:28:52,608 WARNING org.fedoraproject.Anaconda.Modules.Storage:    raise PhysicalVolumeError(e)
16:28:52,608 WARNING org.fedoraproject.Anaconda.Modules.Storage:blivet.errors.PhysicalVolumeError: Failed to call the 'PvCreate' method on the '/com/redhat/lvmdbus1/Manager' object: Timeout was reached
16:28:52,608 WARNING org.fedoraproject.Anaconda.Modules.Storage:INFO:anaconda.core.threads:Thread Failed: AnaTaskThread-CreateStorageLayoutTask-1 (140272270837440)
16:28:52,608 WARNING org.fedoraproject.Anaconda.Modules.Storage:ERROR:anaconda.modules.common.task.task:Thread AnaTaskThread-CreateStorageLayoutTask-1 has failed: Traceback (most recent call last):
16:28:52,608 WARNING org.fedoraproject.Anaconda.Modules.Storage:  File "/usr/lib64/python3.12/site-packages/pyanaconda/core/threads.py", line 280, in run
16:28:52,608 WARNING org.fedoraproject.Anaconda.Modules.Storage:    threading.Thread.run(self)
16:28:52,608 WARNING org.fedoraproject.Anaconda.Modules.Storage:  File "/usr/lib64/python3.12/threading.py", line 1010, in run
16:28:52,608 WARNING org.fedoraproject.Anaconda.Modules.Storage:    self._target(*self._args, **self._kwargs)
16:28:52,608 WARNING org.fedoraproject.Anaconda.Modules.Storage:  File "/usr/lib64/python3.12/site-packages/pyanaconda/modules/common/task/task.py", line 94, in _thread_run_callback
16:28:52,608 WARNING org.fedoraproject.Anaconda.Modules.Storage:    self._task_run_callback()
16:28:52,608 WARNING org.fedoraproject.Anaconda.Modules.Storage:  File "/usr/lib64/python3.12/site-packages/pyanaconda/modules/common/task/task.py", line 107, in _task_run_callback
16:28:52,608 WARNING org.fedoraproject.Anaconda.Modules.Storage:    self._set_result(self.run())
16:28:52,608 WARNING org.fedoraproject.Anaconda.Modules.Storage:                     ^^^^^^^^^^
16:28:52,609 DEBUG anaconda:simpleline: Pushing modal screen IpmiErrorDialog to stack
16:28:52,609 WARNING org.fedoraproject.Anaconda.Modules.Storage:  File "/usr/lib64/python3.12/site-packages/pyanaconda/modules/storage/installation.py", line 95, in run
16:28:52,609 WARNING org.fedoraproject.Anaconda.Modules.Storage:    raise StorageInstallationError(str(e)) from None
16:28:52,609 WARNING org.fedoraproject.Anaconda.Modules.Storage:pyanaconda.modules.common.errors.installation.StorageInstallationError: Failed to call the 'PvCreate' method on the '/com/redhat/lvmdbus1/Manager' object: Timeout was reached
16:28:52,609 WARNING org.fedoraproject.Anaconda.Modules.Storage:INFO:anaconda.core.threads:Thread Done: AnaTaskThread-CreateStorageLayoutTask-1 (140272270837440)
16:28:52,609 WARNING org.fedoraproject.Anaconda.Modules.Storage:WARNING:dasbus.server.handler:The call org.fedoraproject.Anaconda.Task.Finish has failed with an exception:
16:28:52,609 WARNING org.fedoraproject.Anaconda.Modules.Storage:Traceback (most recent call last):
16:28:52,609 WARNING org.fedoraproject.Anaconda.Modules.Storage:  File "/usr/lib/python3.12/site-packages/dasbus/server/handler.py", line 455, in _method_callback
16:28:52,609 WARNING org.fedoraproject.Anaconda.Modules.Storage:    result = self._handle_call(
16:28:52,609 WARNING org.fedoraproject.Anaconda.Modules.Storage:             ^^^^^^^^^^^^^^^^^^
16:28:52,609 WARNING org.fedoraproject.Anaconda.Modules.Storage:  File "/usr/lib/python3.12/site-packages/dasbus/server/handler.py", line 265, in _handle_call
16:28:52,609 WARNING org.fedoraproject.Anaconda.Modules.Storage:    return handler(*parameters, **additional_args)
16:28:52,609 WARNING org.fedoraproject.Anaconda.Modules.Storage:           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
16:28:52,609 WARNING org.fedoraproject.Anaconda.Modules.Storage:  File "/usr/lib64/python3.12/site-packages/pyanaconda/modules/common/task/task_interface.py", line 114, in Finish
16:28:52,609 WARNING org.fedoraproject.Anaconda.Modules.Storage:    self.implementation.finish()
16:28:52,609 WARNING org.fedoraproject.Anaconda.Modules.Storage:  File "/usr/lib64/python3.12/site-packages/pyanaconda/modules/common/task/task.py", line 173, in finish
16:28:52,609 WARNING org.fedoraproject.Anaconda.Modules.Storage:    thread_manager.raise_if_error(self._thread_name)
16:28:52,609 WARNING org.fedoraproject.Anaconda.Modules.Storage:  File "/usr/lib64/python3.12/site-packages/pyanaconda/core/threads.py", line 171, in raise_if_error
16:28:52,609 WARNING org.fedoraproject.Anaconda.Modules.Storage:    raise exc_info[1]
16:28:52,609 WARNING org.fedoraproject.Anaconda.Modules.Storage:  File "/usr/lib64/python3.12/site-packages/pyanaconda/core/threads.py", line 280, in run
16:28:52,609 WARNING org.fedoraproject.Anaconda.Modules.Storage:    threading.Thread.run(self)
16:28:52,609 WARNING org.fedoraproject.Anaconda.Modules.Storage:  File "/usr/lib64/python3.12/threading.py", line 1010, in run
16:28:52,609 WARNING org.fedoraproject.Anaconda.Modules.Storage:    self._target(*self._args, **self._kwargs)
16:28:52,609 WARNING org.fedoraproject.Anaconda.Modules.Storage:  File "/usr/lib64/python3.12/site-packages/pyanaconda/modules/common/task/task.py", line 94, in _thread_run_callback
16:28:52,609 WARNING org.fedoraproject.Anaconda.Modules.Storage:    self._task_run_callback()
16:28:52,609 WARNING org.fedoraproject.Anaconda.Modules.Storage:  File "/usr/lib64/python3.12/site-packages/pyanaconda/modules/common/task/task.py", line 107, in _task_run_callback
16:28:52,609 WARNING org.fedoraproject.Anaconda.Modules.Storage:    self._set_result(self.run())
16:28:52,609 WARNING org.fedoraproject.Anaconda.Modules.Storage:                     ^^^^^^^^^^
16:28:52,609 WARNING org.fedoraproject.Anaconda.Modules.Storage:  File "/usr/lib64/python3.12/site-packages/pyanaconda/modules/storage/installation.py", line 95, in run
16:28:52,610 DEBUG anaconda:simpleline: Executing inner loop
16:28:52,611 WARNING org.fedoraproject.Anaconda.Modules.Storage:    raise StorageInstallationError(str(e)) from None
16:28:52,611 WARNING org.fedoraproject.Anaconda.Modules.Storage:pyanaconda.modules.common.errors.installation.StorageInstallationError: Failed to call the 'PvCreate' method on the '/com/redhat/lvmdbus1/Manager' object: Timeout was reached

@M4rtinK
Copy link
Contributor

M4rtinK commented May 29, 2024

@jexposit Given that GetCompositorSelectedLayout was added in this PR & according to @rvykydal there does not seem to be a known race condition involving connecting to DBus modules or the Localization module, I guess this could be perhaps a real issue, with about once in 100 installations probability (eq. 2 failures in ~ 200 tests) ?

@M4rtinK
Copy link
Contributor

M4rtinK commented May 29, 2024

/kickstart-test --skip-testtypes knownfailure,manual,skip-on-rhel,skip-on-rhel-10,gh576,gh640,gh804,gh1090,gh1104,gh1106,gh1105,gh1108,gh1109,gh1107,gh1110

@M4rtinK
Copy link
Contributor

M4rtinK commented May 29, 2024

@jexposit @halfline So it looks like the issue is with DBus call to org.fedoraproject.Anaconda.Modules.Localization.GetCompositorLayouts sometimes failing. Lets see what calls this and what this call does.

The method is calld in two places:
activate_default_layout() - https://github.com/rhinstaller/anaconda/blob/ce6cc95063302ae4c8bab2eee1d16644e02b92ab/pyanaconda/ui/gui/xkl_wrapper.py#L198`

and

set_switching_options() -

layouts = self._keyboard_manager.GetCompositorLayouts()

So one of those triggers the race condition & crash.

So what does the GetCompositorLayouts DBus method actually do and how is it implemented ?

https://github.com/rhinstaller/anaconda/blob/ce6cc95063302ae4c8bab2eee1d16644e02b92ab/pyanaconda/modules/localization/localization_interface.py#L273C1-L279C60

    def GetCompositorLayouts(self) -> List[Str]:
        """Get all available keyboard layouts.

        :return: A list of keyboard layouts (e.g. ["cz (qwerty)", cn (mon_todo_galik)])
        :rtype: list of strings
        """
        return self.implementation.get_compositor_layouts()

https://github.com/rhinstaller/anaconda/blob/ce6cc95063302ae4c8bab2eee1d16644e02b92ab/pyanaconda/modules/localization/localization.py

    def get_compositor_layouts(self):
        return self.compositor_keyboard_manager.get_compositor_layouts()

https://github.com/rhinstaller/anaconda/blob/ce6cc95063302ae4c8bab2eee1d16644e02b92ab/pyanaconda/modules/localization/gk_keyboard_manager.py

    def get_compositor_layouts(self):
        """Get all available keyboard layouts.

        :return: A list of keyboard layouts (e.g. ["cz (qwerty)", cn (mon_todo_galik)])
        :rtype: list of strings
        """
        layout_paths = self._proxy.InputSources
        layout_variants = map(self._path_to_layout, list(layout_paths))
        return list(layout_variants)

This is where it gets interesting - GetCompositorLayouts essentially just calls another DBus method - InputSources, processes its output and returns the result. What DBus API provides InputSources ?

https://github.com/rhinstaller/anaconda/blob/ce6cc95063302ae4c8bab2eee1d16644e02b92ab/pyanaconda/modules/localization/gk_keyboard_manager.py#L32C2-L32C74

    def __init__(self):
        self.compositor_selected_layout_changed = Signal()
        self.compositor_layouts_changed = Signal()

        object_path = GK_INPUT_SOURCES.object_path + '/InputSources/Manager'
        self._proxy = GK_INPUT_SOURCES.get_proxy(object_path=object_path)
        self._proxy.PropertiesChanged.connect(self._on_properties_changed)

GK_INPUT_SOURCES = DBusServiceIdentifier(

GK_INPUT_SOURCES = DBusServiceIdentifier(
    namespace=("org", "gnome", "Kiosk"),
    message_bus=SessionBus
)

So it looks like this calls the "special" API GNOME Kiosk added for Anaconda to enable keyboard layout handling. And given how little logic is there in Anaconda around GetCompositorLayouts it seems likely to me that the cause of this error could be the call to the GNOME Kiosk DBus API failing ?

While unfortunately older logs from previous kickstart test runs already got purged, I don't remember this happening in the past, so this might might be another victim of the recent GNOME rebases ?

UPDATE:
So looking at the traceback in more detail, we don't actually get as far as calling InputSources - rather, what fails is connecting to a signal provided by GNOME Kiosk DBus API:

self._proxy.PropertiesChanged.connect(self._on_properties_changed)

With the DBus error being I think this:

dasbus.error.DBusError: The name is not activatable

Maybe GNOME kiosk is not yet running at this point & we don't wait for it to start before calling this ?

@M4rtinK
Copy link
Contributor

M4rtinK commented May 29, 2024

Opened a tracking issue for this: https://issues.redhat.com/browse/INSTALLER-3970 (eq. the GNOME Kiosk DBus API crash).

@halfline
Copy link
Contributor

halfline commented May 29, 2024

org.fedoraproject.Anaconda.Modules.Localization:dasbus.error.DBusError: The name is not activatable

That to me looks like an error saying that anaconda is trying to talk to gnome-kiosk before anaconda starts gnome-kiosk.

@jexposit
Copy link
Contributor Author

jexposit commented Jun 3, 2024

So looking at the traceback in more detail, we don't actually get as far as calling InputSources - rather, what fails is connecting to a signal provided by GNOME Kiosk DBus API:

self._proxy.PropertiesChanged.connect(self._on_properties_changed)

With the DBus error being I think this:

dasbus.error.DBusError: The name is not activatable

Maybe GNOME kiosk is not yet running at this point & we don't wait for it to start before calling this ?

If I remember correctly, XklWrapper.get_instance() is the method triggering the service initialization that ends up calling GkKeyboardManager.__init__() -> self._proxy.PropertiesChanged.connect(self._on_properties_changed).

XklWrapper.get_instance() is only invoked from the KeyboardSpoke, which is a GUI element, so at that point, GNOME Kiosk should be up and running or otherwise the entire GTK UI should crash.

Which test is causing this crash? I wonder if the test needs to wait for GNOME Kiosk or if it is doing something different from the normal installation.

@M4rtinK
Copy link
Contributor

M4rtinK commented Jun 3, 2024

Which test is causing this crash? I wonder if the test needs to wait for GNOME Kiosk or if it is doing something different from the normal installation.

It happens at random in our kickstart test suite (essentially a kickstart file with a %post% section that check the system is configured properly).

The full batch has about 200 tests & runs with GUI. During the run about 1 or 2 tests randomly encounter this.

It does not seems to depend on what the test is testing & happens apparently quite early when the GUI starts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Development

Successfully merging this pull request may close these issues.

7 participants