freebsd / pkg

Package management tool for FreeBSD. Help at #pkg on Libera Chat or pkg@FreeBSD.org
Other
744 stars 279 forks source link

With multiple repositories, pkg upgrade enters endless loop #1558

Open chrullrich opened 7 years ago

chrullrich commented 7 years ago

I have two repositories configured:

packagesite: {
        url: http://poudriere/packages/stable-default-main
}

py3site: {
       url: http://poudriere/packages/stable-default-py3
}

Since I last ran pkg upgrade the pkg package was updated. Then this happened:

[root@host /root]# pkg update
Updating packagesite repository catalogue...
Repository packagesite has a wrong packagesite, need to re-create database
Fetching meta.txz: 100%    264 B   0.3kB/s    00:01
Fetching packagesite.txz: 100%  103 KiB 105.5kB/s    00:01
Processing entries: 100%
packagesite repository update completed. 372 packages processed.
Updating py3site repository catalogue...
Fetching meta.txz: 100%    260 B   0.3kB/s    00:01
Fetching packagesite.txz: 100%    6 KiB   6.4kB/s    00:01
Processing entries: 100%
py3site repository update completed. 15 packages processed.

[root@host /root]# pkg upgrade
Updating packagesite repository catalogue...
packagesite repository is up-to-date.
Updating py3site repository catalogue...
py3site repository is up-to-date.
All repositories are up-to-date.
New version of pkg detected; it needs to be installed first.
Checking integrity... done (0 conflicting)
Your packages are up to date.
Updating packagesite repository catalogue...
packagesite repository is up-to-date.
Updating py3site repository catalogue...
py3site repository is up-to-date.
All repositories are up-to-date.
New version of pkg detected; it needs to be installed first.
Checking integrity... done (0 conflicting)
Your packages are up to date.
Updating packagesite repository catalogue...

It went on until I stopped it. A second attempt with pkg-static had the same result.

Commenting out the second repository allowed the metadata update to complete, and after that, I could re-enable the repository.

sean- commented 6 years ago

This bit me during the turn up of a system. Setting enabled: no for one iteration worked. The following happened with pkg -o OSVERSION=1200058 set. At one point I tried rm(1)'ing the sqlite file and touch(1)ing an empty file in its place, neither of which worked. Commenting out the second repository and completing a pkg update with just one repository, did, however complete.

A partial transcript is below for future observers.

root@vpc:/usr/ports/net/chrony # pkg update -f
Updating FreeBSD repository catalogue...
pkg: Repository FreeBSD load error: access repo file(/var/db/pkg/repo-FreeBSD.sqlite) failed: No such file or directory
Fetching meta.txz: 100%    944 B   0.9kB/s    00:01    
Fetching packagesite.txz: 100%    6 MiB   2.0MB/s    00:03    
Processing entries:   0%
pkg: Newer FreeBSD version for package py27-sorl-thumbnail:
- package: 1200058
- running kernel: 1200056
pkg: repository FreeBSD contains packages for wrong OS version: FreeBSD:12:amd64
Processing entries: 100%
Unable to update repository FreeBSD
Updating joyent repository catalogue...
pkg: Repository joyent load error: access repo file(/var/db/pkg/repo-joyent.sqlite) failed: No such file or directory
Fetching meta.txz: 100%    824 B   0.8kB/s    00:01    
Fetching packagesite.txz: 100%   48 KiB  48.9kB/s    00:01    
Processing entries: 100%
joyent repository update completed. 184 packages processed.
Error updating repositories!
root@vpc:/usr/ports/net/chrony # pkg update -f
Updating FreeBSD repository catalogue...
pkg: Repository FreeBSD contains no repodata table, need to re-create database
Fetching meta.txz: 100%    944 B   0.9kB/s    00:01    
Fetching packagesite.txz: 100%    6 MiB   2.0MB/s    00:03    
Processing entries:   0%
pkg: Newer FreeBSD version for package py27-sorl-thumbnail:
- package: 1200058
- running kernel: 1200056
pkg: repository FreeBSD contains packages for wrong OS version: FreeBSD:12:amd64
Processing entries: 100%
Unable to update repository FreeBSD
Error updating repositories!
root@vpc:/usr/ports/net/chrony # pkg -o OSVERSION=1200058 update -f
Updating FreeBSD repository catalogue...
pkg: Repository FreeBSD contains no repodata table, need to re-create database
Fetching meta.txz: 100%    944 B   0.9kB/s    00:01    
Fetching packagesite.txz: 100%    6 MiB   3.0MB/s    00:02    
Processing entries: 100%
FreeBSD repository update completed. 28564 packages processed.
All repositories are up to date.
root@vpc:/usr/ports/net/chrony # pkg update 
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
root@vpc:/usr/ports/net/chrony # vi /usr/local/etc/pkg/repos/joyent.conf 
root@vpc:/usr/ports/net/chrony # pkg update
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
Updating joyent repository catalogue...
joyent repository is up to date.
All repositories are up to date.