Bug 2363981 - dnfdragora UI becomes unresponsive on startup after last dnf* package updates
Summary: dnfdragora UI becomes unresponsive on startup after last dnf* package updates
Keywords:
Status: NEW
Alias: None
Product: Fedora
Classification: Fedora
Component: dnfdragora
Version: 42
Hardware: x86_64
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Neal Gompa
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2025-05-04 21:11 UTC by Alex Villacís Lasso
Modified: 2025-08-14 06:05 UTC (History)
9 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed:
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Alex Villacís Lasso 2025-05-04 21:11:37 UTC
When starting dnfdragora, UI shows up, but stops responding while displaying progress bar about updating package caches. Eventually, the GNOME unresponsive modal dialog appears with the option to kill the program.
Additionally, the following output appears on the console where dnfdragora was started:

<_M_> [ui] YUILoader.cc:60 loadUI(): DISPLAY: ":0"
<_M_> [ui] YUILoader.cc:61 loadUI(): XDG_CURRENT_DESKTOP: "GNOME"
<_M_> [ui] YUILoader.cc:62 loadUI(): YUI_PREFERED_BACKEND: ""
<_M_> [ui] YUILoader.cc:74 loadUI(): Detected a Gtk-based desktop environment.
<_M_> [ui] YUILoader.cc:74 loadUI(): Prefering Gtk-UI if available and no
<_M_> [ui] YUILoader.cc:74 loadUI(): user-selected override is present.
<_M_> [ui] YUILoader.cc:96 loadUI(): User-selected UI-plugin: ""
<_M_> [ui] YUILoader.cc:128 loadUI(): Using UI-plugin: "gtk"
<_M_> [ui] YUI.cc:83 YUI(): This is libyui 4.2.16
<_M_> [ui] YUI.cc:84 YUI(): Creating UI without threads
<_M_> [gtk] YGUI.cc:49 YGUI(): This is libyui-gtk 2.52.5
<_M_> [gtk] YGUI.cc:166 checkInit(): Style "/usr/share/libyui/theme/current/wizard/style.css"
<_M_> [gtk] YGUI.cc:188 checkInit(): Style "/usr/share/libyui/theme/current/wizard/style.css" not found. Ignoring style
<_M_> [ui] YUI.cc:238 topmostConstructorHasFinished(): Running without threads
<_M_> [ew] YExternalWidgets.cc:40 YExternalWidgets(): Creating Libyui External Widgets object
<_M_> [mga-gtk-ui] YMGA_GCBTable.cc:439 YMGA_GCBTable():  columns 8 tot 8
__async_thread_loop(list_fd): timeout reached while reading from pipe.
run_dbus_async main loop running True - probably last request is not terminated yet


Reproducible: Always

Steps to Reproduce:
1.Update to latest dnf5 packages using command-line dnf command.
2.Start up dnfdragora
3.
Actual Results:
UI appears, progress bar starts updating, but then the UI hangs until killed.

Expected Results:
UI should appear, and eventually should become responsive to interaction.

Additional Information:
dnf5-5.2.13.1-1.fc42.x86_64
dnf5daemon-server-5.2.13.1-1.fc42.x86_64
dnf5-plugins-5.2.13.1-1.fc42.x86_64
dnfdaemon-0.3.22-5.fc42.noarch
dnfdaemon-selinux-0.3.22-5.fc42.noarch
dnf-data-4.23.0-1.fc42.noarch
dnfdragora-2.99.0^git20250421.1.2f707ee-1.fc42.noarch
dnf-plugins-core-4.10.1-1.fc42.noarch
libdnf-0.74.0-1.fc42.x86_64
libdnf5-5.2.13.1-1.fc42.x86_64
libdnf5-cli-5.2.13.1-1.fc42.x86_64
libdnf5-plugin-expired-pgp-keys-5.2.13.1-1.fc42.x86_64
python3-dnf-4.23.0-1.fc42.noarch
python3-dnfdaemon-0.3.22-5.fc42.noarch
python3-dnf-plugins-core-4.10.1-1.fc42.noarch
python3-dnf-plugins-extras-common-4.1.2-4.fc42.noarch
python3-libdnf-0.74.0-1.fc42.x86_64
python3-libdnf5-5.2.13.1-1.fc42.x86_64

Comment 1 William Bader 2025-05-09 20:34:01 UTC
I have the same issue. I have Mate Desktop and updated from Fedora 41 to Fedora 42 with `dnf system-upgrade download --refresh --releasever=42` etc. a few days ago. The main issue so far is that dnfdragora hangs (becomes unresponsive) either immediately or after showing a little progress on the first repo.

Is this problem specific to Mate Desktop (as compared to gnome)?

Mate Desktop uses Xorg instead of Wayland. dnfdragora uses libyui. Do dnfdragora and libyui still support X11?

Is this problem specific to upgrading Fedora 41 to Fedora 42 (as compared to doing a fresh installation)?

It is related to a conflict between dnf 4 and dnf 5?

I have been running `dnf update` at the command line since dnfdragora began hanging.

Here is the result of running dnfdragora from a command line and then killing it from another multiscreen after it became unresponsive.

```
$ dnfdragora
Try reading configuration file
From ./dnfdragora.yaml
Skipped exception: <[Errno 2] No such file or directory: './dnfdragora.yaml'> 
From /etc/dnfdragora/dnfdragora.yaml
Finally read user settings from /u/william/.config/dnfdragora.yaml
Logging disabled
<_M_> [ui] YUILoader.cc:60 loadUI(): DISPLAY: ":0"
<_M_> [ui] YUILoader.cc:61 loadUI(): XDG_CURRENT_DESKTOP: "MATE"
<_M_> [ui] YUILoader.cc:62 loadUI(): YUI_PREFERED_BACKEND: ""
<_M_> [ui] YUILoader.cc:74 loadUI(): Detected a Gtk-based desktop environment.
<_M_> [ui] YUILoader.cc:74 loadUI(): Prefering Gtk-UI if available and no
<_M_> [ui] YUILoader.cc:74 loadUI(): user-selected override is present.
<_M_> [ui] YUILoader.cc:96 loadUI(): User-selected UI-plugin: ""
<_M_> [ui] YUILoader.cc:128 loadUI(): Using UI-plugin: "gtk"
<_M_> [ui] YUI.cc:83 YUI(): This is libyui 4.2.16
<_M_> [ui] YUI.cc:84 YUI(): Creating UI without threads
<_M_> [gtk] YGUI.cc:49 YGUI(): This is libyui-gtk 2.52.5
<_M_> [gtk] YGUI.cc:166 checkInit(): Style "/usr/share/libyui/theme/current/wizard/style.css"
<_M_> [gtk] YGUI.cc:188 checkInit(): Style "/usr/share/libyui/theme/current/wizard/style.css" not found. Ignoring style
<_M_> [ui] YUI.cc:238 topmostConstructorHasFinished(): Running without threads
<_M_> [ew] YExternalWidgets.cc:40 YExternalWidgets(): Creating Libyui External Widgets object
<_M_> [mga-gtk-ui] YMGA_GCBTable.cc:439 YMGA_GCBTable():  columns 8 tot 8
Dimension does not match for object [repo:updates]:[Fedora 42 - x86_64 - Updates]
Dimension does not match for object [repo:updates]:[Fedora 42 - x86_64 - Updates]
Dimension does not match for object [repo:updates]:[Fedora 42 - x86_64 - Updates]
__async_thread_loop(list_fd): timeout reached while reading from pipe.
run_dbus_async main loop running True - probably last request is not terminated yet
Terminated

```

Here are the versions of the dnf-related packages:

```
$ rpm -qa | grep dnf | sort
dnf-data-4.23.0-1.fc42.noarch
dnf-plugins-core-4.10.1-1.fc42.noarch
dnf-utils-4.10.1-1.fc42.noarch
dnf5-5.2.13.1-1.fc42.x86_64
dnf5-plugins-5.2.13.1-1.fc42.x86_64
dnf5daemon-server-5.2.13.1-1.fc42.x86_64
dnfdaemon-0.3.22-5.fc42.noarch
dnfdaemon-selinux-0.3.22-5.fc42.noarch
dnfdragora-2.99.0^git20250421.1.2f707ee-1.fc42.noarch
dnfdragora-updater-2.99.0^git20250421.1.2f707ee-1.fc42.noarch
libdnf-0.74.0-1.fc42.x86_64
libdnf5-5.2.13.1-1.fc42.x86_64
libdnf5-cli-5.2.13.1-1.fc42.x86_64
libdnf5-plugin-expired-pgp-keys-5.2.13.1-1.fc42.x86_64
python3-dnf-4.23.0-1.fc42.noarch
python3-dnf-plugins-core-4.10.1-1.fc42.noarch
python3-dnf-plugins-extras-common-4.1.2-4.fc42.noarch
python3-dnfdaemon-0.3.22-5.fc42.noarch
python3-libdnf-0.74.0-1.fc42.x86_64
python3-libdnf5-5.2.13.1-1.fc42.x86_64
```

```
$ cat ~/.config/dnfdragora.yaml 
settings:
  hide_update_menu: true
  interval for checking updates: 1440
  log: {}
  metadata:
    last_update: 2025-05-07 03:21
    update_interval: 12
  search:
    match_all: false
    newest_only: false
view:
  filter: to_update
  show: all
```

Comment 2 William Bader 2025-05-09 20:51:41 UTC
https://bugzilla.redhat.com/show_bug.cgi?id=2312015 (dnfdragora-updater menu items non-responsive if dnfdragora.yaml does not exist when it starts) says to rename or delete ~/.config/dnfdragora.yaml but that does NOT work for me.

Comment 3 William Bader 2025-05-09 21:00:04 UTC
If the log says "Running without threads"

<_M_> [ui] YUI.cc:238 topmostConstructorHasFinished(): Running without threads

then is it a problem that it calls "__async_thread_loop()" ???

__async_thread_loop(list_fd): timeout reached while reading from pipe.

Comment 4 William Bader 2025-05-09 21:11:26 UTC
I think that it is a problem with libyui because dnfdragora works with qt. Here is the log of a successful session with `dnfdragora --qt` where a few packages had updates, and I clicked to select and install them. The timeouts are suspicious but it still worked. Maybe the timeouts are for updating the progress bar.

```
$ dnfdragora --qt
Try reading configuration file
From ./dnfdragora.yaml
Skipped exception: <[Errno 2] No such file or directory: './dnfdragora.yaml'> 
From /etc/dnfdragora/dnfdragora.yaml
Finally read user settings from /u/william/.config/dnfdragora.yaml
Logging disabled
<_M_> [ui] YUILoader.cc:60 loadUI(): DISPLAY: ":0"
<_M_> [ui] YUILoader.cc:61 loadUI(): XDG_CURRENT_DESKTOP: "MATE"
<_M_> [ui] YUILoader.cc:62 loadUI(): YUI_PREFERED_BACKEND: ""
<_M_> [ui] YUILoader.cc:74 loadUI(): Detected a Gtk-based desktop environment.
<_M_> [ui] YUILoader.cc:74 loadUI(): Prefering Gtk-UI if available and no
<_M_> [ui] YUILoader.cc:74 loadUI(): user-selected override is present.
<_M_> [ui] YUILoader.cc:96 loadUI(): User-selected UI-plugin: "qt"
<_M_> [ui] YUILoader.cc:128 loadUI(): Using UI-plugin: "qt"
<_M_> [ui] YUI.cc:83 YUI(): This is libyui 4.2.16
<_M_> [ui] YUI.cc:84 YUI(): Creating UI without threads
<_M_> [qt-ui] YQUI.cc:107 YQUI(): This is libyui-qt 4.2.16
<_M_> [ui] YUI.cc:238 topmostConstructorHasFinished(): Running without threads
<_M_> [qt-styler] QY2Styler.cc:146 loadStyleSheet(): Couldn't open style sheet "/usr/share/libyui/theme/current/wizard/style.qss"
<_M_> [qt-ui] YQUI.cc:251 processCommandLineArgs(): Qt argument: /usr/bin/python3
<_M_> [qt-ui] YQUI.cc:251 processCommandLineArgs(): Qt argument: /usr/bin/dnfdragora
<_M_> [qt-ui] YQUI.cc:251 processCommandLineArgs(): Qt argument: --qt
<_M_> [qt-ui] YQUI.cc:404 calcDefaultSize(): Default size: 1253 x 756
<_M_> [qt-ui] YQApplication.cc:96 YQApplication(): QIcon::themeName = 'mate'
<_M_> [qt-ui] YQApplication.cc:151 loadPredefinedQtTranslations(): Selected language: en_US
<_M_> [qt-ui] YQApplication.cc:171 loadPredefinedQtTranslations(): Loaded translations for predefined Qt dialogs for en_US
<_M_> [qt-ui] YQUI.cc:228 initUI(): YQUI initialized. Thread ID: 0x0x7fc8a6bf5bc0
<_M_> [ew] YExternalWidgets.cc:40 YExternalWidgets(): Creating Libyui External Widgets object
__async_thread_loop(list_fd): timeout reached while reading from pipe.
run_dbus_async main loop running True - probably last request is not terminated yet
__async_thread_loop(list_fd): timeout reached while reading from pipe.
run_dbus_async main loop running True - probably last request is not terminated yet
void libdnf5::repo::RepoSack::update_and_load_enabled_repos(bool) is deprecated: Use load_repos() which allows specifying repo type.
End found 1 groups
run_dbus_async main loop running True - probably last request is not terminated yet
Dimension does not match for object [package:83669]:[hwdata-0:0.395-1.fc42.noarch]
run_dbus_async main loop running True - probably last request is not terminated yet
__async_thread_loop(list_fd): timeout reached while reading from pipe.
run_dbus_async main loop running True - probably last request is not terminated yet
__async_thread_loop(list_fd): timeout reached while reading from pipe.
void libdnf5::repo::RepoSack::update_and_load_enabled_repos(bool) is deprecated: Use load_repos() which allows specifying repo type.
End found 1 groups
<_M_> [ui] YUILoader.cc:236 deleteUI(): Shutting down UI
<_M_> [qt-ui] YQUI.cc:294 ~YQUI(): Closing down Qt UI.
<_M_> [ew] YExternalWidgets.cc:123 ~YExternalWidgetsTerminator(): Shutting down mga External Widgets
<_M_> [ew] YMGAWidgetExtensionFactory.cc:49 ~YMGAWidgetFactory(): Factory removed
```

It also works in text mode.

```
$ dnfdragora --ncurses
Try reading configuration file
From ./dnfdragora.yaml
Skipped exception: <[Errno 2] No such file or directory: './dnfdragora.yaml'> 
From /etc/dnfdragora/dnfdragora.yaml
Finally read user settings from /u/william/.config/dnfdragora.yaml
Logging disabled
<_M_> [ui] YUILoader.cc:60 loadUI(): DISPLAY: ":0"
<_M_> [ui] YUILoader.cc:61 loadUI(): XDG_CURRENT_DESKTOP: "MATE"
<_M_> [ui] YUILoader.cc:62 loadUI(): YUI_PREFERED_BACKEND: ""
<_M_> [ui] YUILoader.cc:74 loadUI(): Detected a Gtk-based desktop environment.
<_M_> [ui] YUILoader.cc:74 loadUI(): Prefering Gtk-UI if available and no
<_M_> [ui] YUILoader.cc:74 loadUI(): user-selected override is present.
<_M_> [ui] YUILoader.cc:96 loadUI(): User-selected UI-plugin: "ncurses"
<_M_> [ui] YUILoader.cc:128 loadUI(): Using UI-plugin: "ncurses"
<_M_> [ui] YUI.cc:83 YUI(): This is libyui 4.2.16
<_M_> [ui] YUI.cc:84 YUI(): Creating UI without threads
<_M_> [ncurses] YNCursesUI.cc:67 YNCursesUI(): Start YNCursesUI
<_M_> [ncurses] YNCursesUI.cc:75 YNCursesUI(): getenv LANG: en_US.UTF-8 encoding: UTF-8
<_M_> [ncurses] YNCursesUI.cc:81 YNCursesUI(): setenv LC_CTYPE: en_US.UTF-8 encoding: UTF-8
<_M_> [ncurses] NCurses.cc:188 init(): Launch NCurses...
<_M_> [ncurses] NCurses.cc:193 init(): TERM=xterm-256color
<_M_> [ncurses] NCurses.cc:206 init(): isatty(stdin)yes
<_M_> [ncurses] NCurses.cc:214 init(): mytty: /dev/pts/2
<_M_> [ncurses] NCurses.cc:565 RedirectToLog(): isatty(stderr)yes
```

Comment 5 Ian Laurie 2025-05-15 01:35:15 UTC
Happening in Xfce also, dies around 33% on the refresh.

Comment 6 Nolan Phillips 2025-05-24 16:13:30 UTC
(In reply to Ian Laurie from comment #5)
> Happening in Xfce also, dies around 33% on the refresh.

Same thing with me. It worked once or twice but then froze when trying to search. After that it just refuses to go past 33%.

Comment 7 Juergen Sievers 2025-05-30 11:22:49 UTC
The same here with additional observations. If I tried several tims, with all kinds of GUIs (--ncurses,--gtk,--qt), it starts bat no already installed packages where shown.

sudo dnfdragora --qt
Try reading configuration file
From ./dnfdragora.yaml
Finally read user settings from /root/.config/dnfdragora.yaml
Logging disabled
<_M_> [ui] YUILoader.cc:60 loadUI(): DISPLAY: ":0"
<_M_> [ui] YUILoader.cc:61 loadUI(): XDG_CURRENT_DESKTOP: ""
<_M_> [ui] YUILoader.cc:62 loadUI(): YUI_PREFERED_BACKEND: ""
<_M_> [ui] YUILoader.cc:96 loadUI(): User-selected UI-plugin: "qt"
<_M_> [ui] YUILoader.cc:128 loadUI(): Using UI-plugin: "qt"
<_M_> [ui] YUI.cc:83 YUI(): This is libyui 4.2.16
<_M_> [ui] YUI.cc:84 YUI(): Creating UI without threads
<_M_> [qt-ui] YQUI.cc:107 YQUI(): This is libyui-qt 4.2.16
<_M_> [ui] YUI.cc:238 topmostConstructorHasFinished(): Running without threads
<_M_> [qt-styler] QY2Styler.cc:146 loadStyleSheet(): Couldn't open style sheet "/usr/share/libyui/theme/current/wizard/style.qss"
<_M_> [qt-ui] YQUI.cc:251 processCommandLineArgs(): Qt argument: /usr/bin/python3
<_M_> [qt-ui] YQUI.cc:251 processCommandLineArgs(): Qt argument: /usr/sbin/dnfdragora
<_M_> [qt-ui] YQUI.cc:251 processCommandLineArgs(): Qt argument: --qt
<_M_> [qt-ui] YQUI.cc:404 calcDefaultSize(): Default size: 1344 x 756
<_M_> [qt-ui] YQApplication.cc:96 YQApplication(): QIcon::themeName = 'hicolor'
<_M_> [qt-ui] YQApplication.cc:151 loadPredefinedQtTranslations(): Selected language: de_DE
<_M_> [qt-ui] YQApplication.cc:171 loadPredefinedQtTranslations(): Loaded translations for predefined Qt dialogs for de_DE
<_M_> [qt-ui] YQUI.cc:228 initUI(): YQUI initialized. Thread ID: 0x0x7f7183c4f780
<_M_> [ew] YExternalWidgets.cc:40 YExternalWidgets(): Creating Libyui External Widgets object
<WRN> [qt-ui] YQGenericButton.cc:139 setIcon(): Can't load icon "system-search"
__async_thread_loop(list_fd): timeout reached while reading from pipe.
run_dbus_async main loop running True - probably last request is not terminated yet
__async_thread_loop(list_fd): timeout reached while reading from pipe.
run_dbus_async main loop running True - probably last request is not terminated yet
__async_thread_loop(list_fd): timeout reached while reading from pipe.
End found 1 groups
End found 1 groups
run_dbus_async main loop running True - probably last request is not terminated yet
__async_thread_loop(list_fd): timeout reached while reading from pipe.
run_dbus_async main loop running True - probably last request is not terminated yet
__async_thread_loop(list_fd): timeout reached while reading from pipe.
run_dbus_async main loop running True - probably last request is not terminated yet
__async_thread_loop(list_fd): timeout reached while reading from pipe.
End found 1 groups
run_dbus_async main loop running True - probably last request is not terminated yet
__async_thread_loop(list_fd): timeout reached while reading from pipe.
run_dbus_async main loop running True - probably last request is not terminated yet
__async_thread_loop(list_fd): timeout reached while reading from pipe.
run_dbus_async main loop running True - probably last request is not terminated yet
__async_thread_loop(list_fd): timeout reached while reading from pipe.
End found 1 groups
<_M_> [ui] YUILoader.cc:236 deleteUI(): Shutting down UI
<_M_> [qt-ui] YQUI.cc:294 ~YQUI(): Closing down Qt UI.
<_M_> [ew] YExternalWidgets.cc:123 ~YExternalWidgetsTerminator(): Shutting down mga External Widgets
<_M_> [ew] YMGAWidgetExtensionFactory.cc:49 ~YMGAWidgetFactory(): Factory removed

Comment 8 Ian Laurie 2025-08-14 06:05:47 UTC
This is an issue in Rawhide (44) and the beta branch (43) also.


Note You need to log in before you can comment on or make changes to this bug.