Bug 1629378 - Trying to start dnfdragora causes an error in dnfdaemon and the program cannot continue
Summary: Trying to start dnfdragora causes an error in dnfdaemon and the program canno...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: dnfdaemon
Version: 29
Hardware: x86_64
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Neal Gompa
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard: AcceptedBlocker
: 1629456 (view as bug list)
Depends On:
Blocks: F29BetaBlocker
TreeView+ depends on / blocked
 
Reported: 2018-09-15 14:11 UTC by xvr
Modified: 2018-09-20 22:36 UTC (History)
11 users (show)

Fixed In Version: dnfdaemon-0.3.19-4.fc29
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2018-09-20 22:36:06 UTC


Attachments (Terms of Use)

Description xvr 2018-09-15 14:11:42 UTC
Description of problem:
On Fedora 29-Beta (as of 2018/09/15), trying to start dnfdragora causes an error in dnfdaemon, and the program dnfdragora exits immediately.

Version-Release number of selected component (if applicable):
dnfdaemon 0.3.19-3.fc29
dnfdragora 1.0.1-12.git20180108.b0e8a66.fc29

How reproducible:
Always

Steps to Reproduce:
1. Try to start dnfdragora
2.
3.

Actual results:
dnfdragora exits immediately. dnfdaemon is still running in the background

Expected results:


Additional info:
Below is the full error message :

dnfdaemon client error: g-io-error-quark: GDBus.Error:org.freedesktop.DBus.Python.AttributeError: Traceback (most recent call last):
  File "/usr/lib64/python3.7/site-packages/dbus/service.py", line 707, in _message_cb
    retval = candidate_method(self, *args, **keywords)
  File "/usr/lib/python3.7/site-packages/dnfdaemon/server/__init__.py", line 68, in newFunc
    rc = func(*args, **kwargs)
  File "/usr/share/dnfdaemon/dnfdaemon-system", line 175, in ExpireCache
    rc = self.expire_cache()
  File "/usr/lib/python3.7/site-packages/dnfdaemon/server/__init__.py", line 219, in expire_cache
    self.base.expire_cache()
  File "/usr/lib/python3.7/site-packages/dnfdaemon/server/backend.py", line 64, in expire_cache
    repo._md_expire_cache()
  File "/usr/lib/python3.7/site-packages/dnf/conf/config.py", line 208, in __getattr__
    option = getattr(self._config, name)
  File "/usr/lib64/python3.7/site-packages/libdnf/conf.py", line 1672, in <lambda>
    __getattr__ = lambda self, name: _swig_getattr(self, ConfigRepo, name)
  File "/usr/lib64/python3.7/site-packages/libdnf/conf.py", line 80, in _swig_getattr
    raise AttributeError("'%s' object has no attribute '%s'" % (class_type.__name__, name))
AttributeError: 'ConfigRepo' object has no attribute '_md_expire_cache'
 (36)

Comment 1 Paul Whalen 2018-09-17 15:53:40 UTC
Seeing this on Beta 1.3, update attempt fails. 

Proposing as a blocker for Beta, criteria "The installed system must be able appropriately to install, remove, and update software with the default tool for the relevant software type in all release-blocking desktops"

Comment 2 Geoffrey Marr 2018-09-17 19:55:41 UTC
Discussed during the 2018-09-17 blocker review meeting: [1]

The decision to classify this bug as an "AcceptedBlocker" was made as it violates the following criteria:

"The installed system must be able appropriately to install, remove, and update software with the default tool for the relevant software type in all release-blocking desktops (e.g. default graphical package manager)" for Xfce, which is a release-blocking desktop for 32-bit ARM.

[1] https://meetbot.fedoraproject.org/fedora-blocker-review/2018-09-17/f29-blocker-review.2018-09-17-16.02.txt

Comment 3 Adam Williamson 2018-09-17 21:41:51 UTC
So it seems this is basically a consequence of a not-highly-advertised change in dnf 3.4(?): the repo interface exposed by dnf's own Python libs went away. dnfdragora is using that (to be fair, from the traceback, it is clearly using at least some properties that are clearly marked as *not* being public - I see `repo._md_expire_cache()` - so it's really fair game for DNF to take those away). It seems the intent is that it should be using a repo provided by libdnf instead, but there don't seem to be any docs or guides on that, at least that Neal could find immediately.

Note that we pulled dnf 3.5.1 into RC3 as a freeze exception: https://bugzilla.redhat.com/show_bug.cgi?id=1628802 . So one way we could address this would be to drop back to dnf 3.2.0 for the next compose. But it may be better to fix dnfdragora and stick with 3.5.1, if doing so is not too difficult. It's hard to know for sure, as dnf team did not yet reply to the FE bug with their assessment of how important it is that 3.5.1 should be in the Beta.

Comment 4 Adam Williamson 2018-09-18 01:04:58 UTC
https://github.com/manatools/dnfdaemon/pull/24 seems to fix this.

Comment 5 Adam Williamson 2018-09-18 03:45:08 UTC
*** Bug 1629456 has been marked as a duplicate of this bug. ***

Comment 6 Fedora Update System 2018-09-18 03:48:27 UTC
dnfdaemon-0.3.19-4.fc29 dnfdragora-1.0.1-13.git20180108.b0e8a66.fc29 has been submitted as an update to Fedora 29. https://bodhi.fedoraproject.org/updates/FEDORA-2018-d3ef63b0f6

Comment 7 Fedora Update System 2018-09-18 06:17:54 UTC
dnfdaemon-0.3.19-4.fc29, dnfdragora-1.0.1-13.git20180108.b0e8a66.fc29 has been pushed to the Fedora 29 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2018-d3ef63b0f6

Comment 8 František Zatloukal 2018-09-20 13:15:38 UTC
Works fine on rpi2.

dnfdaemon-0.3.19-4.fc29.noarch
dnfdragora-1.0.1-13.git20180108.b0e8a66.fc29

Comment 9 Lukas Ruzicka 2018-09-20 13:22:35 UTC
I can confirm this to work on x86_64.

Comment 10 Fedora Update System 2018-09-20 22:36:06 UTC
dnfdaemon-0.3.19-4.fc29, dnfdragora-1.0.1-13.git20180108.b0e8a66.fc29 has been pushed to the Fedora 29 stable repository. If problems still persist, please make note of it in this bug report.


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