Bug 1456788

Summary: Segmentation fault in DNF
Product: [Fedora] Fedora Reporter: Miro Hrončok <mhroncok>
Component: dnfAssignee: rpm-software-management
Status: CLOSED DUPLICATE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 26CC: packaging-team-maint, rpm-software-management, vmukhame
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-05-31 11:52:30 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Miro Hrončok 2017-05-30 11:32:30 UTC
Description of problem:
After upgrading to F26 I have some problems with duplicated rpm packages:

$ rpm -q dnf
dnf-2.5.0-1.fc26.noarch
dnf-2.5.0-2.fc26.noarch

So I wanted to run distro-sync, but I run into more problems.

Version-Release number of selected component (if applicable):
see above

How reproducible:
on my machine :(

Steps to Reproduce:
LANG=C.utf8 sudo dnf distro-sync

Actual results:
Error: 
 Problem: The operation would result in removing the following protected packages: dnf
Segmentation fault


Expected results:
No segmentation fault.


Let me know how to help and what to investigate.

Comment 1 Miro Hrončok 2017-05-30 11:41:30 UTC
$ LANG=C.utf8 sudo valgrind dnf distro-sync
==1218== Memcheck, a memory error detector
==1218== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==1218== Using Valgrind-3.12.0 and LibVEX; rerun with -h for copyright info
==1218== Command: /bin/dnf distro-sync
==1218== 
==1219== Warning: invalid file descriptor 1024 in syscall close()
==1219== Warning: invalid file descriptor 1025 in syscall close()
==1219== Warning: invalid file descriptor 1026 in syscall close()
==1219== Warning: invalid file descriptor 1027 in syscall close()
==1219==    Use --log-fd=<number> to select an alternative log fd.
==1219== Warning: invalid file descriptor 1028 in syscall close()
==1219== Warning: invalid file descriptor 1029 in syscall close()
Failed to synchronize cache for repo 'churchyard-git', disabling.
Failed to synchronize cache for repo 'ldview', disabling.
Last metadata expiration check: 2:40:54 ago on Tue May 30 10:55:51 2017 CEST.
Error: 
 Problem: The operation would result in removing the following protected packages: dnf
==1218== Invalid read of size 4
==1218==    at 0x198BF0F2: solver_findallproblemrules (in /usr/lib64/libsolv.so.0)
==1218==    by 0x193D965A: hy_goal_conflict_pkgs (in /usr/lib64/libdnf.so.1)
==1218==    by 0x191B4770: ??? (in /usr/lib64/python3.6/site-packages/hawkey/_hawkey.so)
==1218==    by 0x4FBEE62: _PyCFunction_FastCallDict (in /usr/lib64/libpython3.6m.so.1.0)
==1218==    by 0x4FBF1AC: _PyCFunction_FastCallKeywords (in /usr/lib64/libpython3.6m.so.1.0)
==1218==    by 0x4FC6179: ??? (in /usr/lib64/libpython3.6m.so.1.0)
==1218==    by 0x5004615: _PyEval_EvalFrameDefault (in /usr/lib64/libpython3.6m.so.1.0)
==1218==    by 0x4F88ED9: ??? (in /usr/lib64/libpython3.6m.so.1.0)
==1218==    by 0x4FC623D: ??? (in /usr/lib64/libpython3.6m.so.1.0)
==1218==    by 0x5003689: _PyEval_EvalFrameDefault (in /usr/lib64/libpython3.6m.so.1.0)
==1218==    by 0x4F88ED9: ??? (in /usr/lib64/libpython3.6m.so.1.0)
==1218==    by 0x4FC623D: ??? (in /usr/lib64/libpython3.6m.so.1.0)
==1218==  Address 0x0 is not stack'd, malloc'd or (recently) free'd
==1218== 
==1218== 
==1218== Process terminating with default action of signal 11 (SIGSEGV): dumping core
==1218==  Access not within mapped region at address 0x0
==1218==    at 0x198BF0F2: solver_findallproblemrules (in /usr/lib64/libsolv.so.0)
==1218==    by 0x193D965A: hy_goal_conflict_pkgs (in /usr/lib64/libdnf.so.1)
==1218==    by 0x191B4770: ??? (in /usr/lib64/python3.6/site-packages/hawkey/_hawkey.so)
==1218==    by 0x4FBEE62: _PyCFunction_FastCallDict (in /usr/lib64/libpython3.6m.so.1.0)
==1218==    by 0x4FBF1AC: _PyCFunction_FastCallKeywords (in /usr/lib64/libpython3.6m.so.1.0)
==1218==    by 0x4FC6179: ??? (in /usr/lib64/libpython3.6m.so.1.0)
==1218==    by 0x5004615: _PyEval_EvalFrameDefault (in /usr/lib64/libpython3.6m.so.1.0)
==1218==    by 0x4F88ED9: ??? (in /usr/lib64/libpython3.6m.so.1.0)
==1218==    by 0x4FC623D: ??? (in /usr/lib64/libpython3.6m.so.1.0)
==1218==    by 0x5003689: _PyEval_EvalFrameDefault (in /usr/lib64/libpython3.6m.so.1.0)
==1218==    by 0x4F88ED9: ??? (in /usr/lib64/libpython3.6m.so.1.0)
==1218==    by 0x4FC623D: ??? (in /usr/lib64/libpython3.6m.so.1.0)
==1218==  If you believe this happened as a result of a stack
==1218==  overflow in your program's main thread (unlikely but
==1218==  possible), you can try to increase the size of the
==1218==  main thread stack using the --main-stacksize= flag.
==1218==  The main thread stack size used in this run was 8388608.
==1218== 
==1218== Process terminating with default action of signal 11 (SIGSEGV)
==1218==  General Protection Fault
==1218==    at 0x5E28A6C: _dl_catch_error (in /usr/lib64/libc-2.25.so)
==1218==    by 0x5E281E6: __libc_dlclose (in /usr/lib64/libc-2.25.so)
==1218==    by 0x5E53EE4: free_mem (in /usr/lib64/libc-2.25.so)
==1218==    by 0x5E53AE1: __libc_freeres (in /usr/lib64/libc-2.25.so)
==1218==    by 0x4A296DB: _vgnU_freeres (vg_preloaded.c:77)
==1218== 
==1218== HEAP SUMMARY:
==1218==     in use at exit: 111,985,179 bytes in 181,537 blocks
==1218==   total heap usage: 808,634 allocs, 627,097 frees, 227,968,489,692 bytes allocated
==1218== 
==1218== LEAK SUMMARY:
==1218==    definitely lost: 541 bytes in 43 blocks
==1218==    indirectly lost: 0 bytes in 0 blocks
==1218==      possibly lost: 5,021,665 bytes in 49,645 blocks
==1218==    still reachable: 106,962,573 bytes in 131,845 blocks
==1218==                       of which reachable via heuristic:
==1218==                         length64           : 330,984 bytes in 512 blocks
==1218==                         newarray           : 1,344 bytes in 14 blocks
==1218==         suppressed: 0 bytes in 0 blocks
==1218== Rerun with --leak-check=full to see details of leaked memory
==1218== 
==1218== For counts of detected and suppressed errors, rerun with: -v
==1218== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
Segmentation fault

Comment 2 Igor Gnatenko 2017-05-31 11:52:30 UTC

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