PKG hängt bei "Cleaning up old Version" (12.1-RELEASE-p3 amd64)

Tranalogic

LU #373839
Hallo Leute.

Heute habe ich auf meinen Blade ein pkg update durchgeführt, es wurde mir das PKG Programm in der Version 1.13.2 installiert.
Das Problem ist nun, dass bei manchen Paketen PKG hängen bleibt. Es wird die neue Version eines Pakets bei einem Update installiert, die alte (anscheinend) gelöscht und das Programm geht nicht durch.
Wir haben auf den Blade nur Programme und deren Abhängigkeiten für fail2ban, iocage und vm-bhyve installiert. Es wurde von meiner Seite auch keine Config Datei von PKG bearbeitet. Der Blade hat als Host keine eigens kompilierten Versionen aus der Ports Collection installiert. PKG in den Jails wiederum funktioniert einwandfrei.

Bei der Einrichtung damals begangen wir mit FreeBSD 12.1-RELEASE, es dürfen also keine Altlasten vorhanden sein. Ich wäre froh, wenn jemand eine Idee hätte.

Hier habt ihr einen Auszug aus dem Debug von PKG bei einem Reinstall von python 3.7.7, wie gesagt, ab da hängt es:
Code:
# pkg -d install -f python37
DBG(1)[76957]> pkg initialized
Updating FreeBSD repository catalogue...
DBG(1)[76957]> PkgRepo: verifying update for FreeBSD
DBG(1)[76957]> Pkgrepo, begin update of '/var/db/pkg/repo-FreeBSD.sqlite'
DBG(1)[76957]> Fetch: fetching from: http://pkgmir.geo.freebsd.org/FreeBSD:12:amd64/quarterly/meta.conf with opts "i"
DBG(1)[76957]> Fetch: fetching from: http://pkgmir.geo.freebsd.org/FreeBSD:12:amd64/quarterly/meta.txz with opts "i"
DBG(1)[76957]> Fetch: fetching from: http://pkgmir.geo.freebsd.org/FreeBSD:12:amd64/quarterly/packagesite.txz with opts "i"
FreeBSD repository is up to date.
All repositories are up to date.
DBG(1)[76957]> want to get an advisory lock on a database
DBG(1)[76957]> found stale pid 69634 in lock database, my pid is: 76957
DBG(1)[76957]> no concurrent processes found, cleanup the lock
DBG(1)[76957]> want to get an advisory lock on a database
DBG(1)[76957]> Binary> loading /var/cache/pkg/python37-3.7.7-6486f83221.txz
Checking integrity...DBG(1)[76957]> check integrity for 1 items added
 done (0 conflicting)
The following 1 package(s) will be affected (of 0 checked):

Installed packages to be REINSTALLED:
    python37-3.7.7

Number of packages to be reinstalled: 1

Proceed with this action? [y/N]: y
DBG(1)[76957]> want to upgrade advisory to exclusive lock
[1/1] Reinstalling python37-3.7.7...
[1/1] Extracting python37-3.7.7: 100%
DBG(1)[76957]> Cleaning up old version

und bei perl5:
Code:
# pkg -d install -f perl5
DBG(1)[77236]> pkg initialized
Updating FreeBSD repository catalogue...
DBG(1)[77236]> PkgRepo: verifying update for FreeBSD
DBG(1)[77236]> Pkgrepo, begin update of '/var/db/pkg/repo-FreeBSD.sqlite'
DBG(1)[77236]> Fetch: fetching from: http://pkgmir.geo.freebsd.org/FreeBSD:12:amd64/quarterly/meta.conf with opts "i"
DBG(1)[77236]> Fetch: fetching from: http://pkgmir.geo.freebsd.org/FreeBSD:12:amd64/quarterly/meta.txz with opts "i"
DBG(1)[77236]> Fetch: fetching from: http://pkgmir.geo.freebsd.org/FreeBSD:12:amd64/quarterly/packagesite.txz with opts "i"
FreeBSD repository is up to date.
All repositories are up to date.
DBG(1)[77236]> want to get an advisory lock on a database
DBG(1)[77236]> found stale pid 76957 in lock database, my pid is: 77236
DBG(1)[77236]> no concurrent processes found, cleanup the lock
DBG(1)[77236]> want to get an advisory lock on a database
DBG(1)[77236]> Binary> loading /var/cache/pkg/perl5-5.30.2-1dc1f8bd5e.txz
Checking integrity...DBG(1)[77236]> check integrity for 1 items added
 done (0 conflicting)
The following 1 package(s) will be affected (of 0 checked):

Installed packages to be REINSTALLED:
    perl5-5.30.2

Number of packages to be reinstalled: 1

Proceed with this action? [y/N]: y
DBG(1)[77236]> want to upgrade advisory to exclusive lock
[1/1] Reinstalling perl5-5.30.2...
[1/1] Extracting perl5-5.30.2: 100%
DBG(1)[77236]> Cleaning up old version
DBG(1)[77236]> Adding to deletion usr/local/lib/perl5/site_perl/man/man3/
DBG(1)[77236]> Adding to deletion usr/local/lib/perl5/site_perl/man/man1/
DBG(1)[77236]> Adding to deletion usr/local/lib/perl5/site_perl/mach/5.30/auto/
DBG(1)[77236]> Adding to deletion usr/local/lib/perl5/site_perl/auto/
DBG(1)[77236]> Number of packages owning the directory '/usr/local/lib/perl5/site_perl/man/man3': 1
DBG(1)[77236]> Number of packages owning the directory '/usr/local/lib/perl5/site_perl/man/man1': 1
DBG(1)[77236]> Number of packages owning the directory '/usr/local/lib/perl5/site_perl/mach/5.30/auto': 1
DBG(1)[77236]> Number of packages owning the directory '/usr/local/lib/perl5/site_perl/auto': 1

Ich bin für jede Hilfe dankbar.


LG
 
Du könntest da mal mit "truss -f -p $PID_VON_PKG" drangehen und schauen, was der Prozess genau macht.
 
Hallo lme, danke für deine Nachricht.

Mit truss selbst habe ich das PID nicht auslesen können, habe aber via truss den Prozess gestartet.
Das sind die letzten Zeilen:
Code:
IGWINCH|SIGINFO|SIGUSR1|SIGUSR2 },{ }) = 0 (0x0)
81309: mprotect(0x800416000,36864,PROT_READ|PROT_WRITE) = 0 (0x0)
81309: sigprocmask(SIG_SETMASK,{ },0x0)         = 0 (0x0)
81309: sigprocmask(SIG_BLOCK,{ SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2 },{ }) = 0 (0x0)
81309: mprotect(0x800416000,36864,PROT_READ)     = 0 (0x0)
81309: sigprocmask(SIG_SETMASK,{ },0x0)         = 0 (0x0)
81309: readlink("/etc/malloc.conf",0x7fffffffd910,1024) ERR#2 'No such file or directory'
81309: issetugid()                 = 0 (0x0)
81309: __sysctl(0x7fffffffd878,0x2,0x7fffffffd874,0x7fffffffd880,0x0,0x0) = 0 (0x0)
81309: mmap(0x0,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34362146816 (0x80024c000)
81309: madvise(0x80024c000,4096,MADV_FREE)     = 0 (0x0)
81309: munmap(0x80024c000,4096)             = 0 (0x0)
81309: mmap(0x0,2097152,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34366316544 (0x800646000)
81309: munmap(0x800646000,2097152)         = 0 (0x0)
81309: mmap(0x0,4190208,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34366316544 (0x800646000)
81309: munmap(0x800646000,1810432)         = 0 (0x0)
81309: munmap(0x800a00000,282624)         = 0 (0x0)
81309: mmap(0x0,32768,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34366316544 (0x800646000)
81309: mmap(0x0,4194304,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34370224128 (0x800a00000)
81309: mmap(0x0,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34362146816 (0x80024c000)
81309: sigprocmask(SIG_BLOCK,{ SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2 },{ }) = 0 (0x0)
81309: sigprocmask(SIG_SETMASK,{ },0x0)         = 0 (0x0)
81309: sigprocmask(SIG_BLOCK,{ SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2 },{ }) = 0 (0x0)
81309: mprotect(0x207000,4096,PROT_READ)     = 0 (0x0)
81309: sigprocmask(SIG_SETMASK,{ },0x0)         = 0 (0x0)
81309: __sysctl(0x7fffffffe3b0,0x2,0x7fffffffe350,0x7fffffffdb50,0x7fffffffdf50,0xf) = 0 (0x0)
81309: __sysctl(0x7fffffffe7b0,0x4,0x7fffffffe3b0,0x7fffffffd748,0x0,0x0) = 0 (0x0)
81309: __sysctl(0x7fffffffc5e0,0x4,0x7fffffffca50,0x7fffffffc5d0,0x0,0x0) = 0 (0x0)
81309: __sysctl(0x7fffffffd650,0x4,0x7fffffffd250,0x7fffffffc5d8,0x0,0x0) = 0 (0x0)
81309: __sysctl(0x7fffffffe350,0x2,0x0,0x7fffffffc5d0,0x0,0x0) = 0 (0x0)
81309: mmap(0x0,4096,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANON,-1,0x0) = 34366349312 (0x80064e000)
81309: __sysctl(0x7fffffffe350,0x2,0x80064e000,0x7fffffffd250,0x0,0x0) = 0 (0x0)
81309: write(1,"amd64",5)             = 5 (0x5)
81300: read(3,"amd64",128)             = 5 (0x5)
81309: write(1,"\n",1)                 = 1 (0x1)
81300: read(3,"\n",128)                 = 1 (0x1)
81309: sigprocmask(SIG_BLOCK,{ SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2 },{ }) = 0 (0x0)
81309: sigprocmask(SIG_SETMASK,{ },0x0)         = 0 (0x0)
81309: sigprocmask(SIG_BLOCK,{ SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2 },{ }) = 0 (0x0)
81309: sigprocmask(SIG_SETMASK,{ },0x0)         = 0 (0x0)
81309: sigprocmask(SIG_BLOCK,{ SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2 },{ }) = 0 (0x0)
81309: sigprocmask(SIG_SETMASK,{ },0x0)         = 0 (0x0)
81300: read(3,0x7fffffffd9c0,128)         = 0 (0x0)
81300: close(3)                     = 0 (0x0)
81309: exit(0x0)               
81309: process exit, rval = 0
81300: wait4(-1,{ EXITED,val=0 },0x0,0x0)     = 81309 (0x13d9d)
81300: exit(0x0)               
81300: process exit, rval = 0
81292: wait4(-1,{ EXITED,val=0 },0x0,0x0)     = 81300 (0x13d94)
81292: read(10,0x2299d0,1024)             = 0 (0x0)
81292: exit(0x0)               
81292: process exit, rval = 0
81291: wait4(-1,{ EXITED,val=0 },0x0,0x0)     = 81292 (0x13d8c)
81291: exit(0x0)               
81291: process exit, rval = 0

So wie ich das lese (bin jetzt nicht so C fit), geben die Child Prozesse brav 0 zurück, nur der Parent will nicht wirklich.

Was mich auch irgendwie stutzig macht, ist dieser <defunct> Eintrag, wenn ich ps aux eingebe:
Code:
root       81287   0,0  0,0  11476   2436  2  I+   12:33          0:17,86 truss -f pkg install -f python37
root       81288   0,0  0,5  91956  82200  2  IX+  12:33          0:13,18 pkg install -f python37
root       81291   0,0  0,0      0      0  2  Z+   12:34          0:00,07 <defunct>

truss findet den PID nicht, killen kann ich den PID auch nicht, obwohl ein "kill -9 $PID" mir jetzt auch nicht zurückmeldet, dass der PID nicht gefunden wird.

Komische Sache. Hoffentlich ist das bekannt bzw. dir/euch behilflich.

Liebe Grüße.
 
Die Ausgabe von truss sieht eigentlich erst mal okay aus. Welche pkg Version hast du denn im Einsatz? Vielleicht tritt der Fehler bei einer neueren oder älteren Version nicht auf?
 
Hallo lme, ich verwende 1.13.2. Die Vorgängerversion hatte funktioniert.

Ich habe mir schon überlegt, dass ich mir aus der Ports Collection die 1.14.x installiere, nur das Problem dabei, ich kann bei einem make reinstall die 1.13.2 nicht löschen. Bzw. wird die Version gelöscht, aber anscheinend wird nicht registriert, dass sie gelöscht wurde, somit geht das Makefile nicht durch.
 
Wenn ich PKG via Ports und make reinstall installieren will, gibt er mir diese Ausgabe und bleibt auch hängen:

make reinstall:
Code:
pkg-1.13.2: missing file /usr/local/man/man8/pkg-shlib.8.gz
[1/1] Deleting files for pkg-1.13.2:  71%
pkg-1.13.2: missing file /usr/local/man/man8/pkg-ssh.8.gz
[1/1] Deleting files for pkg-1.13.2:  73%
pkg-1.13.2: missing file /usr/local/man/man8/pkg-static.8.gz
[1/1] Deleting files for pkg-1.13.2:  75%
pkg-1.13.2: missing file /usr/local/man/man8/pkg-stats.8.gz
[1/1] Deleting files for pkg-1.13.2:  76%
pkg-1.13.2: missing file /usr/local/man/man8/pkg-unlock.8.gz
[1/1] Deleting files for pkg-1.13.2:  78%
pkg-1.13.2: missing file /usr/local/man/man8/pkg-update.8.gz
[1/1] Deleting files for pkg-1.13.2:  80%
pkg-1.13.2: missing file /usr/local/man/man8/pkg-updating.8.gz
[1/1] Deleting files for pkg-1.13.2:  81%
pkg-1.13.2: missing file /usr/local/man/man8/pkg-upgrade.8.gz
[1/1] Deleting files for pkg-1.13.2:  83%
pkg-1.13.2: missing file /usr/local/man/man8/pkg-version.8.gz
[1/1] Deleting files for pkg-1.13.2:  85%
pkg-1.13.2: missing file /usr/local/man/man8/pkg-which.8.gz
[1/1] Deleting files for pkg-1.13.2:  86%
pkg-1.13.2: missing file /usr/local/man/man8/pkg.8.gz
[1/1] Deleting files for pkg-1.13.2:  88%
pkg-1.13.2: missing file /usr/local/sbin/pkg
[1/1] Deleting files for pkg-1.13.2:  90%
pkg-1.13.2: missing file /usr/local/sbin/pkg-static
[1/1] Deleting files for pkg-1.13.2:  91%
pkg-1.13.2: missing file /usr/local/share/doc/pkg/NEWS
[1/1] Deleting files for pkg-1.13.2:  93%
pkg-1.13.2: missing file /usr/local/share/licenses/pkg-1.13.2/BSD2CLAUSE
[1/1] Deleting files for pkg-1.13.2:  95%
pkg-1.13.2: missing file /usr/local/share/licenses/pkg-1.13.2/LICENSE
[1/1] Deleting files for pkg-1.13.2:  96%
pkg-1.13.2: missing file /usr/local/share/licenses/pkg-1.13.2/catalog.mk
[1/1] Deleting files for pkg-1.13.2:  98%
pkg-1.13.2: missing file /usr/local/share/zsh/site-functions/_pkg
[1/1] Deleting files for pkg-1.13.2: 100%
Ausgabe von ps aux
Code:
root       75208   0,0  0,0   15676    7212  2  I+   13:13       0:00,00 /usr/ports/ports-mgmt/pkg/work/pkg-1.14.2/src/pkg-static delete -y -f pkg
root       75213   0,0  0,0   17204    8288  2  I+   13:13       0:00,01 /usr/ports/ports-mgmt/pkg/work/pkg-1.14.2/src/pkg-static delete -y -f pkg
root       75216   0,0  0,0       0       0  2  Z+   13:13       0:00,02 <defunct>

truss -f make reinstall:
Code:
5281: write(1,"amd64",5)             = 5 (0x5)
75272: read(3,"amd64",128)             = 5 (0x5)
75281: write(1,"\n",1)                 = 1 (0x1)
75272: read(3,"\n",128)                 = 1 (0x1)
75281: sigprocmask(SIG_BLOCK,{ SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2 },{ }) = 0 (0x0)
75281: sigprocmask(SIG_SETMASK,{ },0x0)         = 0 (0x0)
75281: sigprocmask(SIG_BLOCK,{ SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2 },{ }) = 0 (0x0)
75281: sigprocmask(SIG_SETMASK,{ },0x0)         = 0 (0x0)
75281: sigprocmask(SIG_BLOCK,{ SIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTERM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2 },{ }) = 0 (0x0)
75281: sigprocmask(SIG_SETMASK,{ },0x0)         = 0 (0x0)
75272: read(3,0x7fffffffd9c0,128)         = 0 (0x0)
75272: close(3)                     = 0 (0x0)
75281: exit(0x0)               
75281: process exit, rval = 0
75272: wait4(-1,{ EXITED,val=0 },0x0,0x0)     = 75281 (0x12611)
75272: exit(0x0)               
75272: process exit, rval = 0
75264: wait4(-1,{ EXITED,val=0 },0x0,0x0)     = 75272 (0x12608)
75264: read(10,0x2299d0,1024)             = 0 (0x0)
75264: exit(0x0)               
75264: process exit, rval = 0
75263: wait4(-1,{ EXITED,val=0 },0x0,0x0)     = 75264 (0x12600)
75263: exit(0x0)               
75263: process exit, rval = 0

Danke und LG.
 
Ich habe das Problem gefunden.
Wir haben für SSH expiretable rennen. Das war noch ein Relikt aus einer alten Installation.
Code:
# rc.conf
expiretable_enable="YES"
expiretable_flags="-v -d -t 24h bruteforce"
/usr/local/sbin/expiretable -v -d -t 24h bruteforce

jedenfalls hat init expiretable >20x gestartet. Mich hat es schon gewundert, dass ein neuer Prozess eine PID jenseits der 70000 bekam.

Ich werde jetzt schauen, dass ich Blacklistd zum Laufen bekomme, ist meiner Ansicht sogar smoother.

Danke jedenfalls für die Hilfe und bitte den Titel auf "gelöst" stellen, falls ich es selbst nicht schaffe.

Ein schönes Osterfest euch noch.

LG
Roman
 
  • Like
Reaktionen: lme
Zurück
Oben