Bug 2047477

Summary: Cleanup of mint-y-icons-1.5.8-2.fc35.noarch never finishes
Product: [Fedora] Fedora Reporter: scroolik
Component: rpmAssignee: Packaging Maintenance Team <packaging-team-maint>
Status: CLOSED DUPLICATE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: unspecified    
Version: 35CC: daniel.mach, igor.raits, jmracek, jrohel, mblaha, mhatina, mjw, packaging-team-maint, pkratoch, pmatilai, pmoravco, rpm-software-management, vmukhame
Target Milestone: ---Keywords: Triaged
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: 2022-02-03 08:20:19 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:
Attachments:
Description Flags
Output of dnf shell: remove --duplicates, upgrade, run
none
strace of dnf and its forks
none
output of dnf update -y none

Description scroolik 2022-01-27 21:55:06 UTC
Created attachment 1857222 [details]
Output of dnf shell: remove --duplicates, upgrade, run

Description of problem:
I have freshly installed Fedora 25 Cinnamon spin. Added and configured non-trivial amount of packages. And then upgraded system. Repeatively upgrade never finishes on cleanup of some packages. It seems it fails in particular package - mint-y-icons-1.5.8-2.fc35.noarch.

Version-Release number of selected component (if applicable):
dnf-4.9.0-1.fc35.noarch

How reproducible:
Always (it seems so)

Steps to Reproduce:
1. Install Cinamon spin
2. (maybe some steps?)
3. Upgrade system

Actual results:
dnf gets stuck on cleanup

Expected results:
Finish

Additional info:
dnf cannot be killed other than with -9.

Since I ended up with system with duplicate packages I have tried to use following:

# dnf shell
> remove --duplicates
> upgrade
> run


(a lot of output in attachment)

ends with:

  Obsoleting       : mint-y-icons-1.5.8-2.fc35.noarch                                                                                                                   152/372 
warning: file /usr/share/icons/Mint-Y/actions/16/window-restore-symbolic.svg: remove failed: No such file or directory
warning: file /usr/share/icons/Mint-Y/actions/16/window-restore-symbolic-rtl.svg: remove failed: No such file or directory
warning: file /usr/share/icons/Mint-Y/actions/16/window-minimize-symbolic.svg: remove failed: No such file or directory
warning: file /usr/share/icons/Mint-Y/actions/16/window-maximize-symbolic.svg: remove failed: No such file or directory
warning: file /usr/share/icons/Mint-Y/actions/16/window-maximize-symbolic-rtl.svg: remove failed: No such file or directory
warning: file /usr/share/icons/Mint-Y/actions/16/window-close-symbolic.svg: remove failed: No such file or directory
warning: file /usr/share/icons/Mint-Y-Dark/actions/16/window-restore-symbolic.svg: remove failed: No such file or directory
warning: file /usr/share/icons/Mint-Y-Dark/actions/16/window-restore-symbolic-rtl.svg: remove failed: No such file or directory
warning: file /usr/share/icons/Mint-Y-Dark/actions/16/window-minimize-symbolic.svg: remove failed: No such file or directory
warning: file /usr/share/icons/Mint-Y-Dark/actions/16/window-maximize-symbolic.svg: remove failed: No such file or directory
warning: file /usr/share/icons/Mint-Y-Dark/actions/16/window-maximize-symbolic-rtl.svg: remove failed: No such file or directory
warning: file /usr/share/icons/Mint-Y-Dark/actions/16/window-close-symbolic.svg: remove failed: No such file or directory

Comment 1 scroolik 2022-01-27 21:59:17 UTC
Created attachment 1857223 [details]
strace of dnf and its forks

I have added also strace where I see repeated pattern of preread.

Comment 2 scroolik 2022-01-28 16:25:48 UTC
Created attachment 1857426 [details]
output of dnf update -y

This error sounded really scatchy as I haven't seen this on other computer with similar packageset. I suspected SSD have been having some issues (e.g. it has 100 Bad_Block_Count as reported by smartctl).

I was able to reproduce this with fresh new SSD though. Cleanup of that package took at least 3 minutes when I gave up and killed it.

I have collected strace and output data like this:

strace -f -o /mnt/strace_dnf_update.txt -s 1000 nice dnf upgrade -y | tee /mnt/dnf_upgrade_output.txt

I'm attaching that output.


strace is too big though - around 30GB - and I'm not sure how helpful that would be for you. Let me know if you would like to somehow get gist of it.

Comment 3 scroolik 2022-02-02 16:46:04 UTC
Couple of tests later ...

I was able to narrow the problem to upgrade of mint-y-icons:

$ dnf upgrade -y -x mint-icons

upgrades just fine. Followed by:

$ dnf upgrade -y

which upgrades mint-icons as well but cleanup makes dnf seemingly stuck. It turned out that this could take somewhere between half an hour and hour and it in the end finishes.

I've tried to use python's trace module but without luck - no visible operation:

$ python3 -m trace --trace /usr/bin/dnf upgrade --refresh -y 2>&1 | ts "%H:%M:%.S"

...
15:16:55.133176  --- modulename: util, funcname: _terminal_messenger
15:16:55.133204 util.py(389):     try:
15:16:55.133233 util.py(390):         if tp == 'write':
15:16:55.133263 util.py(392):         elif tp == 'flush':
15:16:55.133290 util.py(394):         elif tp == 'write_flush':
15:16:55.133319 util.py(395):             out.write(msg)
15:16:55.133348   Cleanup          : mint-y-icons-1.5.8-2.fc35.noarch                       2/2util.py(396):             out.flush()
16:51:54.947602 output.py(2019):                 self.lastmsg = msg
16:51:54.947665 output.py(2020):                 if ti_done == ti_total:
16:51:54.947683 output.py(2021):                     print(" ")
16:51:54.947704  
16:51:54.947727 rpmtrans.py(384):         for display in self.displays:
16:51:54.947748  --- modulename: rpmtrans, funcname: callback
16:51:54.947772 rpmtrans.py(271):         try:
16:51:54.947793 rpmtrans.py(272):             if isinstance(key, str):
16:51:54.947814 rpmtrans.py(273):                 key = ucd(key)
...


---

And similar slowness appears in undo history (again, with trace):

$ dnf history undo last

...

17:16:53.447031  --- modulename: util, funcname: _terminal_messenger
17:16:53.447068 util.py(389):     try:
17:16:53.447107 util.py(390):         if tp == 'write':
17:16:53.447142 util.py(392):         elif tp == 'flush':
17:16:53.447176 util.py(394):         elif tp == 'write_flush':
17:16:53.447215 util.py(395):             out.write(msg)
17:16:53.447247   Cleanup          : mint-y-icons-1.5.9-1.fc35.noarch                       2/2util.py(396):             out.flush()
17:41:50.771286 output.py(2019):                 self.lastmsg = msg
17:41:50.771367 output.py(2020):                 if ti_done == ti_total:
17:41:50.771414 output.py(2021):                     print(" ")
17:41:50.771445  
17:41:50.771472 rpmtrans.py(384):         for display in self.displays:
17:41:50.771497  --- modulename: rpmtrans, funcname: callback

...

Comment 4 scroolik 2022-02-02 16:54:05 UTC
(In reply to scroolik from comment #3)
> Couple of tests later ...
> 
> I was able to narrow the problem to upgrade of mint-y-icons:
> 
> $ dnf upgrade -y -x mint-icons

A typo here:

s/mint-icons/mint-y-icons/

Comment 5 Panu Matilainen 2022-02-03 08:20:19 UTC

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