Bug 1642126 - libdnf crashes when displaying errors preventing a package from being updated
Summary: libdnf crashes when displaying errors preventing a package from being updated
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: libdnf
Version: 29
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: rpm-software-management
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: 1649306
TreeView+ depends on / blocked
 
Reported: 2018-10-23 16:38 UTC by Stephen Gallagher
Modified: 2018-12-05 02:33 UTC (History)
6 users (show)

Fixed In Version: libdnf-0.22.3-1.fc29
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
: 1649306 (view as bug list)
Environment:
Last Closed: 2018-12-05 02:33:38 UTC


Attachments (Terms of Use)
Full backtrace (120.62 KB, text/plain)
2018-10-23 16:38 UTC, Stephen Gallagher
no flags Details
SRPM of broken fedora-release (17.06 KB, application/x-rpm)
2018-10-23 16:43 UTC, Stephen Gallagher
no flags Details

Description Stephen Gallagher 2018-10-23 16:38:30 UTC
Created attachment 1496750 [details]
Full backtrace

Description of problem:
I am working on an update to the fedora-release package (COPR https://copr.fedorainfracloud.org/coprs/sgallagh/fedora-editions-rework/, version 30-0.9.sgallagh.3) that produces some Conflicts and Provides issues. Instead of diplaying the errors to the user, DNF crashes and produces a traceback inside libdnf

Version-Release number of selected component (if applicable):
libdnf-0.20.0-1.fc29.x86_64
dnf-3.6.1-2.fc29.noarch
libsolv-0.6.35-3.fc29.x86_64
python3-3.7.0-9.fc29.x86_64

also happens on
libdnf-0.22.0-5.fc29.x86_64
dnf-4.0.4-1.fc29.noarch


How reproducible:
Every time

Steps to Reproduce:
1. `dnf copr enable sgallagh/fedora-editions-rework`
2. `dnf update fedora-release`


Actual results:
[root@fedoraeditions ~]# dnf update fedora-release
Last metadata expiration check: 0:11:16 ago on Tue 23 Oct 2018 12:25:05 PM EDT.
Dependencies resolved.
python3: /builddir/build/BUILD/libdnf-0.22.0/libdnf/transaction/private/../../utils/tinyformat/tinyformat.hpp:629: const char* tinyformat::detail::streamStateFromFormat(std::ostream&, bool&, bool&, int&, const char*, const tinyformat::detail::FormatArg*, int&, int): Assertion `0 && "tinyformat: Not enough conversion specifiers in format string"' failed.
Aborted (core dumped)


Expected results:
A proper error message indicating the reasons the update could not occur.

Additional info:
I am pretty sure that I have created an unsolvable dependency chain in this package that I will need to work out. However, I should be informed of the error rather than having it crash on me.

Comment 1 Stephen Gallagher 2018-10-23 16:43:28 UTC
Created attachment 1496751 [details]
SRPM of broken fedora-release

Attaching the SRPM of the fedora-release package that would generate this failure on upgrade, so if I fix my COPR you can still reproduce the issue using it.

Comment 2 Stephen Gallagher 2018-10-24 01:07:16 UTC
I have also verified that the RPMs I'm working with work just fine from Fedora 28's DNF:

dnf-2.7.5-12.fc28.noarch
libdnf-0.11.1-3.fc28.x86_64
libsolv-0.6.35-3.fc28.x86_64

So it would appear that not only is DNF crashing hard here, it's also doing so in a place where it should be processing successfully. I've updated the COPR I mentioned above to support F28, F29 and Rawhide so the difference can be easily verified.

To reproduce the successful case on F28:

sudo podman pull registry.fedoraproject.org/fedora:28
sudo podman run  --privileged -i --tty --name f28_release_rework registry.fedoraproject.org/fedora:28

Inside the container:
dnf install 'dnf-command(copr)'
dnf copr enable sgallagh/fedora-editions-rework
dnf update fedora-release

It will successfully update to the fedora-release-30-0.9.sgallagh.10 package.

Do exactly the same steps with fedora:29 instead and you will see the reported failure.

Comment 4 Fedora Update System 2018-11-22 18:56:58 UTC
libdnf-0.22.3-1.fc29 dnf-4.0.9-1.fc29 dnf-plugins-core-4.0.2-1.fc29 dnf-plugins-extras-4.0.0-1.fc29 has been submitted as an update to Fedora 29. https://bodhi.fedoraproject.org/updates/FEDORA-2018-17cbc3c616

Comment 5 Fedora Update System 2018-11-23 02:56:32 UTC
dnf-4.0.9-1.fc29, dnf-plugins-core-4.0.2-1.fc29, dnf-plugins-extras-4.0.0-1.fc29, libdnf-0.22.3-1.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-17cbc3c616

Comment 6 Fedora Update System 2018-12-05 02:33:38 UTC
dnf-4.0.9-1.fc29, dnf-plugins-core-4.0.2-1.fc29, dnf-plugins-extras-4.0.0-1.fc29, libdnf-0.22.3-1.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.