#511 Review failed if uniqueext is passed to mock
Opened 3 months ago by salimma. Modified 3 months ago

With uniqueext:

❯ fedora-review -b 2262894 -o '--uniqueext review'                                                                             
INFO: Processing bugzilla bug: 2262894                                                                                                       
INFO: Getting .spec and .srpm Urls from : 2262894                                                                                            
INFO:   --> SRPM url: https://ionic.at/python-aiostream-0.5.2-2.fc40.src.rpm                                                                 
INFO:   --> Spec url: https://ionic.at/python-aiostream.spec                                                                                 
INFO: Using review directory: /home/michel/src/fedora/reviews/2262894-python-aiostream                                                       
INFO: Downloading .spec and .srpm files                                                                                                      
INFO: Downloading (Source0): https://files.pythonhosted.org/packages/source/a/aiostream/aiostream-0.5.2.tar.gz                               
INFO: Running checks and generating report                                                                                                   
INFO: Results and/or logs in: /home/michel/src/fedora/reviews/2262894-python-aiostream/results                                               
INFO: Reading configuration from /etc/mock/site-defaults.cfg                                                                                 
INFO: Reading configuration from /etc/mock/chroot-aliases.cfg                                                                                
INFO: Reading configuration from /etc/mock/fedora-rawhide-x86_64.cfg                                                                         
INFO: Reading configuration from /home/michel/.config/mock.cfg                                                                               
INFO: Build completed                                                                                                                        
INFO: Init command returned error code 2                                                                                                     
INFO: Installing built package(s)                                                                                                            
INFO: Active plugins: Shell-api, Generic, Python                                                                                             
Error: Cache-only enabled but no cache for 'fedora'                                                                                          
ERROR: Exception down the road... (logs in /home/michel/.cache/fedora-review.log)

The failing command:

02-22 10:02 root         DEBUG    Running: mock -r fedora-rawhide-x86_64 --uniqueext review --no-cleanup-after --no-clean -qn --enable-network shell -- dnf-3 repoquery -C -l filesystem

I can confirm that it passes if -C is taken off, it looks like either the initial build was not using the requested uniqueext, or somehow it got cleaned up between the build and the installation check.

Without:

❯ fedora-review -b 2262894
INFO: Processing bugzilla bug: 2262894
INFO: Getting .spec and .srpm Urls from : 2262894
INFO:   --> SRPM url: https://ionic.at/python-aiostream-0.5.2-2.fc40.src.rpm
INFO:   --> Spec url: https://ionic.at/python-aiostream.spec
INFO: Using review directory: /home/michel/src/fedora/reviews/2262894-python-aiostream
INFO: Downloading .spec and .srpm files
INFO: Downloading (Source0): https://files.pythonhosted.org/packages/source/a/aiostream/aiostream-0.5.2.tar.gz
INFO: Running checks and generating report
INFO: Results and/or logs in: /home/michel/src/fedora/reviews/2262894-python-aiostream/results
INFO: Reading configuration from /etc/mock/site-defaults.cfg
INFO: Reading configuration from /etc/mock/chroot-aliases.cfg
INFO: Reading configuration from /etc/mock/fedora-rawhide-x86_64.cfg
INFO: Reading configuration from /home/michel/.config/mock.cfg
INFO: Build completed
INFO: Installing built package(s)
INFO: Active plugins: Generic, Python, Shell-api
Last metadata expiration check: 0:00:18 ago on Thu Feb 22 10:13:40 2024.
Last metadata expiration check: 0:01:24 ago on Thu Feb 22 10:13:40 2024.
INFO:  ExclusiveArch dependency checking disabled, enable with EXARCH flag

Review template in: /home/michel/src/fedora/reviews/2262894-python-aiostream/review.txt
fedora-review is automated tool, but *YOU* are responsible for manually
reviewing the results and finishing the review. Do not just copy-paste
the results without understanding them.

@salimma I am debugging the issue for the last two days
https://github.com/fedora-copr/copr/issues/3147

it looks like either the initial build was not using the requested uniqueext, or somehow it got cleaned up between the build and the installation check.

To me, it seems that it is related to Mock's tmpfs plugin. When it is disabled

config_opts['plugin_conf']['tmpfs_enable'] = False

or when this is set

config_opts['plugin_conf']['tmpfs_opts']['keep_mounted'] = True

It seems to work for me. But I can't figure out why it started happening now.

We have deps.py:init which installs dnf. The consecutive mock calls then do dnf makecache and so on. When the tmpfs it enabled and keep_mounted is False then dnf is not available for the consecutive calls.

When changing the mock configuration like this, it works even with the tmpfs plugin:

--- /etc/mock/templates/fedora-rawhide.tpl      2024-02-16 01:00:00.000000000 +0100
+++ /etc/mock/templates/fedora-rawhide.tpl      2024-02-26 23:37:45.591901105 +0100
@@ -3,7 +3,7 @@
 # fedora 31+ isn't mirrored, we need to run from koji
 config_opts['mirrored'] = config_opts['target_arch'] != 'i686'

-config_opts['chroot_setup_cmd'] = 'install @{% if mirrored %}buildsys-{% endif %}build'
+config_opts['chroot_setup_cmd'] = 'install @{% if mirrored %}buildsys-{% endif %}build dnf'

I would expect changing /etc/mock/templates/fedora-branched.tpl in the same way would fix F40 but it doesn't. Not sure why.

Both this change and disabling Mock's tmpfs plugin feel like workarounds to me. Does anyone have an idea what should be the proper fix for this?

Login to comment on this ticket.

Metadata
Related Pull Requests
  • #513 Merged a month ago