Bug 2502013 - 'dnf upgrade' aborts
Summary: 'dnf upgrade' aborts
Keywords:
Status: CLOSED DUPLICATE of bug 2350481
Alias: None
Product: Fedora
Classification: Fedora
Component: dnf5
Version: 44
Hardware: x86_64
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: rpm-software-management
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2026-07-18 11:57 UTC by David Woodhouse
Modified: 2026-08-18 13:11 UTC (History)
5 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2026-08-18 13:11:30 UTC
Type: ---
Embargoed:
fedora-admin-xmlrpc: mirror+


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Github rpm-software-management dnf5 issues 518 0 None closed core dumped when: The rpm transaction contains more elements than requested 2026-07-20 06:07:58 UTC

Description David Woodhouse 2026-07-18 11:57:57 UTC
I was in the middle of a large 'dnf upgrade' when my machine crashed. Now I can't upgrade:


[666/666] Total                         100% |   0.0   B/s |   0.0   B |  00m06s
Running transaction
terminate called after throwing an instance of 'libdnf5::AssertionError'
  what():  libdnf5/rpm/transaction.cpp:205: void libdnf5::rpm::Transaction::fill(const libdnf5::base::Transaction&): Assertion 'implicit_ts_elements.empty()' failed: The rpm transaction contains more elements than requested
Aborted                    (core dumped) dnf upgrade




Reproducible: Always

Comment 1 David Woodhouse 2026-07-18 12:00:28 UTC
Thread 1 "dnf" received signal SIGABRT, Aborted.
Downloading 4.48 K source file /usr/src/debug/glibc-2.43-7.fc44.x86_64/nptl/pthread_kill.c
__pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6,   
    no_tid=no_tid@entry=0) at pthread_kill.c:44
44	      return INTERNAL_SYSCALL_ERROR_P (ret) ? INTERNAL_SYSCALL_ERRNO (ret) : 0;
(gdb) bt
#0  __pthread_kill_implementation
    (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0)
    at pthread_kill.c:44
#1  0x00007ffff74b8d93 in __pthread_kill_internal
    (threadid=<optimized out>, signo=6) at pthread_kill.c:89
#2  0x00007ffff745de8e in __GI_raise (sig=sig@entry=6)
    at ../sysdeps/posix/raise.c:26
#3  0x00007ffff74457b3 in __GI_abort () at abort.c:77
#4  0x00007ffff769a5e2 in __gnu_cxx::__verbose_terminate_handler ()
    at ../../../../libstdc++-v3/libsupc++/vterminate.cc:95
#5  0x00007ffff76b1b1c in __cxxabiv1::__terminate (handler=<optimized out>)
    at ../../../../libstdc++-v3/libsupc++/eh_terminate.cc:48
#6  0x00007ffff769a159 in std::terminate ()
    at ../../../../libstdc++-v3/libsupc++/eh_terminate.cc:58
#7  0x00007ffff76b1dc8 in __cxxabiv1::__cxa_throw
    (obj=<optimized out>, tinfo=0x5555556df550 <typeinfo for libdnf5::AssertionError>, dest=0x7ffff79bc180 <libdnf5::AssertionError::~AssertionError()>)
    at ../../../../libstdc++-v3/libsupc++/eh_throw.cc:98
#8  0x00007ffff79a02b9 in libdnf5::rpm::Transaction::fill
    (this=<optimized out>, transaction=<optimized out>)
    at /usr/include/c++/16/bits/allocator.h:189
#9  0x00007ffff7a641a6 in libdnf5::base::Transaction::Impl::_run(std::unique_ptr<libdnf5::rpm::TransactionCallbacks, std::default_delete<libd--Type <RET> for more, q to quit, c to continue without paging--
onCallbacks> >&&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::optional<unsigned int>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) [clone .isra.0]
    (this=0x555555862be0, callbacks=..., description="/usr/bin/dnf upgrade", comment="", test_only=false, user_id=Python Exception <class 'gdb.error'>: value has been optimized out
...)
    at /usr/src/debug/dnf5-5.4.2.1-1.fc44.x86_64/libdnf5/base/transaction.cpp:1016
#10 0x00007ffff7a5953d in libdnf5::base::Transaction::Impl::run
    (this=<optimized out>, callbacks=..., description="/usr/bin/dnf upgrade", user_id=Python Exception <class 'gdb.error'>: value has been optimized out
..., comment="")
    at /usr/src/debug/dnf5-5.4.2.1-1.fc44.x86_64/libdnf5/base/transaction.cpp:936
#11 libdnf5::base::Transaction::run (this=this@entry=0x555555a524c0)
    at /usr/src/debug/dnf5-5.4.2.1-1.fc44.x86_64/libdnf5/base/transaction.cpp:450
#12 0x0000555555650711 in dnf5::Context::Impl::download_and_run (this=0x55555573a7f0, transaction=...)
    at /usr/src/debug/dnf5-5.4.2.1-1.fc44.x86_64/dnf5/context.cpp:513
#13 0x000055555558f2a5 in dnf5::Context::download_and_run (this=0x7fffffffd9d0, transaction=<optimized out>)
    at /usr/src/debug/dnf5-5.4.2.1-1.fc44.x86_64/dnf5/context.cpp:658
#14 main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/dnf5-5.4.2.1-1.fc44.x86_64/dnf5/main.cpp:1594

Comment 2 David Woodhouse 2026-07-18 17:47:37 UTC
Minimal repro: 'dnf reinstall glibc'...

Repositories loaded.
Package                                       Arch       Version                                       Repository                        Size
Removing dependent packages:
 glibc-all-langpacks                          x86_64     0:2.43-5.fc44                                 00twosheds-updates           227.2 MiB
 glibc-common                                 x86_64     0:2.43-5.fc44                                 00twosheds-updates             1.0 MiB
 glibc-devel                                  x86_64     0:2.43-5.fc44                                 00twosheds-updates             2.3 MiB
 glibc-gconv-extra                            x86_64     0:2.43-5.fc44                                 00twosheds-updates             7.4 MiB
Reinstalling:
 glibc                                        x86_64     0:2.43-7.fc44                                 updates                        6.9 MiB
   replacing glibc                            x86_64     0:2.43-7.fc44                                 <unknown>                      6.9 MiB
   replacing glibc                            x86_64     0:2.43-5.fc44                                 00twosheds-updates             6.9 MiB
Upgrading:
 glibc                                        i686       0:2.43-7.fc44                                 updates                        5.7 MiB
   replacing glibc                            i686       0:2.43-5.fc44                                 00twosheds-updates             5.7 MiB
 glibc-devel                                  i686       0:2.43-7.fc44                                 updates                        2.3 MiB
   replacing glibc-devel                      i686       0:2.43-5.fc44                                 00twosheds-updates             2.3 MiB
 glibc-gconv-extra                            i686       0:2.43-7.fc44                                 updates                        6.7 MiB
   replacing glibc-gconv-extra                i686       0:2.43-5.fc44                                 00twosheds-updates             6.7 MiB
 glibc-langpack-cs                            x86_64     0:2.43-7.fc44                                 updates                        2.9 MiB
   replacing glibc-langpack-cs                x86_64     0:2.43-5.fc44                                 00twosheds-updates             2.9 MiB
 glibc-langpack-en                            x86_64     0:2.43-7.fc44                                 updates                        5.7 MiB
   replacing glibc-langpack-en                x86_64     0:2.43-5.fc44                                 00twosheds-updates             5.7 MiB
 glibc-static                                 i686       0:2.43-7.fc44                                 updates                       26.8 MiB
   replacing glibc-static                     i686       0:2.43-5.fc44                                 00twosheds-updates            26.9 MiB
 glibc-static                                 x86_64     0:2.43-7.fc44                                 updates                       43.0 MiB
   replacing glibc-static                     x86_64     0:2.43-5.fc44                                 00twosheds-updates            43.0 MiB
 libnsl                                       i686       0:2.43-7.fc44                                 updates                      105.3 KiB
   replacing libnsl                           i686       0:2.43-5.fc44                                 00twosheds-updates           105.2 KiB
 libnsl                                       x86_64     0:2.43-7.fc44                                 updates                      101.9 KiB
   replacing libnsl                           x86_64     0:2.43-5.fc44                                 00twosheds-updates           101.9 KiB

Transaction Summary:
 Reinstalling:       1 package
 Upgrading:          9 packages
 Replacing:         11 packages
 Removing:           4 packages

Total size of inbound packages is 21 MiB. Need to download 0 B.
After this operation, 245 MiB will be freed (install 100 MiB, remove 345 MiB).
Is this ok [y/N]: y
[ 1/10] glibc-0:2.43-7.fc44.x86_64                                                                   100% |   0.0   B/s |   0.0   B |  00m00s
>>> Already downloaded
[ 2/10] libnsl-0:2.43-7.fc44.x86_64                                                                  100% |   0.0   B/s |   0.0   B |  00m00s
>>> Already downloaded
[ 3/10] glibc-0:2.43-7.fc44.i686                                                                     100% |   0.0   B/s |   0.0   B |  00m00s
>>> Already downloaded
[ 4/10] libnsl-0:2.43-7.fc44.i686                                                                    100% |   0.0   B/s |   0.0   B |  00m00s
>>> Already downloaded
[ 5/10] glibc-gconv-extra-0:2.43-7.fc44.i686                                                         100% |   0.0   B/s |   0.0   B |  00m00s
>>> Already downloaded
[ 6/10] glibc-devel-0:2.43-7.fc44.i686                                                               100% |   0.0   B/s |   0.0   B |  00m00s
>>> Already downloaded
[ 7/10] glibc-langpack-cs-0:2.43-7.fc44.x86_64                                                       100% |   0.0   B/s |   0.0   B |  00m00s
>>> Already downloaded
[ 8/10] glibc-langpack-en-0:2.43-7.fc44.x86_64                                                       100% |   0.0   B/s |   0.0   B |  00m00s
>>> Already downloaded
[ 9/10] glibc-static-0:2.43-7.fc44.i686                                                              100% |   0.0   B/s |   0.0   B |  00m00s
>>> Already downloaded
[10/10] glibc-static-0:2.43-7.fc44.x86_64                                                            100% |   0.0   B/s |   0.0   B |  00m00s
>>> Already downloaded
---------------------------------------------------------------------------------------------------------------------------------------------
[10/10] Total                                                                                        100% |   0.0   B/s |   0.0   B |  00m00s
Running transaction
terminate called after throwing an instance of 'libdnf5::AssertionError'
  what():  libdnf5/rpm/transaction.cpp:205: void libdnf5::rpm::Transaction::fill(const libdnf5::base::Transaction&): Assertion 'implicit_ts_elements.empty()' failed: The rpm transaction contains more elements than requested
Aborted                    sudo dnf reinstall glibc

Comment 3 amatej 2026-07-20 06:07:58 UTC
Thank you for the report, we are aware about this issue and it is tracked in upstream here: https://github.com/rpm-software-management/dnf5/issues/518
We even have a solution: https://github.com/rpm-software-management/dnf5/pull/2753 but it is not released in fedora yet.

If you want you can try using our nightly copr repo https://copr.fedorainfracloud.org/coprs/rpmsoftwaremanagement/dnf-nightly/ which has new builds.
If you do install the newer version the next dnf run should likely still fail but it will report that you have some duplicate packages and it will guide you to remove the duplicate. You can also find them manually if you just want to fix the situation without installing the new dnf version.

Comment 4 Petr Pisar 2026-08-18 13:11:30 UTC

*** This bug has been marked as a duplicate of bug 2350481 ***


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