rpm-software-management / dnf5

Next-generation RPM package management system
Other
256 stars 86 forks source link

"corrupted size vs. prev_size" when using `dnf provides` #1733

Open RocketRide9 opened 1 month ago

RocketRide9 commented 1 month ago
 ~ dnf --version          
dnf5 version 5.2.6.2
dnf5 plugin API version 2.0
libdnf5 version 5.2.6.2
libdnf5 plugin API version 2.0

Loaded dnf5 plugins:
  name: builddep
  version: 1.0.0
  API version: 2.0

  name: changelog
  version: 1.0.0
  API version: 2.0

  name: config-manager
  version: 0.1.0
  API version: 2.0

  name: copr
  version: 0.1.0
  API version: 2.0

  name: needs_restarting
  version: 1.0.0
  API version: 2.0

  name: repoclosure
  version: 1.0.0
  API version: 2.0
 ~ dnf provides libasan   
Updating and loading repositories:
corrupted size vs. prev_size
[1]    6457 IOT instruction (core dumped)  dnf provides libasan

ready to provide more info if needed

m-blaha commented 1 month ago

Hm, this indicates some memory issue. Are you able to provide the core dump?

RocketRide9 commented 1 month ago

GnomeAbrt says that it's https://retrace.fedoraproject.org/faf/reports/1030226/. from coredumpctl:

(gdb) bt 
#0  0x00007f883b080724 in __pthread_kill_implementation () from /lib64/libc.so.6
#1  0x00007f883b027d0e in raise () from /lib64/libc.so.6
#2  0x00007f883b00f942 in abort () from /lib64/libc.so.6
#3  0x00007f883b0107a7 in __libc_message_impl.cold () from /lib64/libc.so.6
#4  0x00007f883b08a8a5 in malloc_printerr () from /lib64/libc.so.6
#5  0x00007f883b08b346 in unlink_chunk.isra () from /lib64/libc.so.6
#6  0x00007f883b08b4d3 in malloc_consolidate () from /lib64/libc.so.6
#7  0x00007f883b08dca0 in _int_malloc () from /lib64/libc.so.6
#8  0x00007f883b08ef34 in malloc () from /lib64/libc.so.6
#9  0x00007f883abafaf0 in solv_realloc () from /lib64/libsolv.so.1
#10 0x00007f883abb0967 in repodata_insert_keyid () from /lib64/libsolv.so.1
#11 0x00007f883abb331a in repodata_set_void () from /lib64/libsolv.so.1
#12 0x00007f883b736c86 in libdnf5::repo::RepoSack::Impl::fix_group_missing_xml() () from /lib64/libdnf5.so.2
#13 0x00007f883b7d0119 in libdnf5::repo::RepoSack::Impl::update_and_load_repos(libdnf5::repo::RepoQuery&, bool) [clone .constprop.0] ()
   from /lib64/libdnf5.so.2
#14 0x00007f883b733c24 in libdnf5::repo::RepoSack::load_repos() () from /lib64/libdnf5.so.2
#15 0x0000555be3aff86b in dnf5::Context::Impl::load_repos(bool) ()
#16 0x0000555be3a750ac in main ()
ppisar commented 1 month ago

Probably related Fedora 41 bug report https://bugzilla.redhat.com/show_bug.cgi?id=2314576.

m-blaha commented 1 month ago

Thank you, I'll take a look.

m-blaha commented 1 month ago

@RocketRide9 Can you consistently reproduce the issue, or did it only occur once?

RocketRide9 commented 1 month ago

I can't reproduce it right now. It was consistently occurring for some time after I upgraded to F41, until maybe an automatic upgrade by GNOME Software. Sorry I don't remember if it was an upgrade. Upgrades by GNOME Software aren't shown in dnf history list and pkcon get-transactions doesn't work now. I also left some messages in this bug report: https://bugzilla.redhat.com/show_bug.cgi?id=2314576 .

m-blaha commented 1 month ago

Thank you. I've discovered some memory issues in the part of the code where this problem occurred. While we don't have a reproducer yet, I can't be completely certain, but it's likely that these issues were the root cause of this bug as well.

See https://github.com/rpm-software-management/dnf5/pull/1743 and related https://bugzilla.redhat.com/show_bug.cgi?id=2315789

petedavis commented 2 weeks ago

Im getting the same error with multiple commands, with the exact same version of dnf5 after upgrading to F41

$ dnf check-update                                                                                                                                                                                             
Updating and loading repositories:
 RPM Fusion for Fedora 41 - Nonfree - NVIDIA Driver                                                                                                                        100% |  14.6 KiB/s |  24.8 KiB |  00m02s
 RPM Fusion for Fedora 41 - Free - Updates                                                                                                                                 100% |   7.7 KiB/s |  19.1 KiB |  00m02s
 Fedora 41 - x86_64 - Updates                                                                                                                                              100% |   1.1 MiB/s |   2.2 MiB |  00m02s
 Fedora 41 - x86_64                                                                                                                                                        100% |   4.0 MiB/s |  35.4 MiB |  00m09s
 RPM Fusion for Fedora 41 - Nonfree                                                                                                                                        100% |  48.0 KiB/s |  94.2 KiB |  00m02s
 RPM Fusion for Fedora 41 - Nonfree - Steam                                                                                                                                100% |  10.6 KiB/s |  20.4 KiB |  00m02s
 RPM Fusion for Fedora 41 - Nonfree - Updates                                                                                                                              100% |  11.2 KiB/s |  20.6 KiB |  00m02s
 RPM Fusion for Fedora 41 - Free                                                                                                                                           100% |  56.4 KiB/s | 162.1 KiB |  00m03s
 Fedora 41 openh264 (From Cisco) - x86_64                                                                                                                                  100% |   1.5 KiB/s |   6.0 KiB |  00m04s
corrupted size vs. prev_size
[1]    20215 IOT instruction (core dumped)  dnf check-update
$ dnf search selinux                                                                                                                                                                                          
Updating and loading repositories:
corrupted size vs. prev_size
[1]    22578 IOT instruction (core dumped)  dnf search selinux

However, after using sudo on a few more dnf commands, it seems to have resolved itself? Perhaps there was state issue that required elevated permissions to resolve?

$ sudo dnf check-upgrade                                                                                                                                                                                       
Updating and loading repositories:
Repositories loaded.

$ sudo dnf search selinux                                                                                                                                                                                      
Updating and loading repositories:
Repositories loaded.
Matched fields: name, summary
...

And now I can use dnf commands without error

$ dnf search rear
Updating and loading repositories:
Repositories loaded.
Matched fields: name (exact)
 rear.x86_64: Relax-and-Recover is a Linux disaster recovery and system migration tool