Internal error

Hallo werte openSUSE-Anwender,

ich kann Tumbleweed nicht mehr Updaten.

Während des Updates über die Konsole habe ich versehentlich den Rechner vom Netzstrom getrennt.
Nach einem Neustart kam diese Meldung bei erneuten Updaten.

Internal error. Please report a bug report with logs.
Run save_y2logs to get complete logs.

Caller: /usr/lib/ruby/vendor_ruby/3.1.0/yast/yast.rb:186:in `import_pure'

Details: component cannot import namespace 'Pkg'

import_pure(mname)

Ich lasse das Update immer über die Konsole laufen.

sudo zypper -vv dup --allow-vendor-change

Das gleiche auch, wenn ich " Yast -> Software installieren " starte.

Ich habe den Rechner mehrmals neu gestartet, ohne dass sich der Fehler behoben hat.
Was kann ich in diesem Fall unternehmen ?
Danke für eure Hilfen.

Integrität aller installierten Softwarepakete (RPM) kontrollieren. Siehe dazu:
https://forums.opensuse.org/showthread.php/568621-GRUB-reagiert(e)-extrem-träge?p=3120223#post3120223

Integrität der RPM-Datenbank (rpmdb) kontrollieren. Siehe dazu:
https://www.suse.com/support/kb/doc/?id=000017180

Vorsicht beim Rumhantieren an der RPM-Datenbank!!! Immer vorgängig ein Backup ein Backup der RPM-Datenbank erstellen!!

Hallo GrandDixence2,

danke für die Ratschläge.

Ich habe das Vorhandensein der Datei “Packages.db” im Verzeichnis /var/lib/rpm [FONT=arial]überprüft.

Dann habe ich die 3 Schritte jeweils mit einem “rpm -qa” nach jedem Schritt ausgeführt.
[/FONT]1. rpm --rebuilddb
2. rpm --initdb
3. rpm --rebuilddb

Anschließend habe ich einen Neustart gemacht.

Die Fehlermeldung ist noch vorhanden, hat sich aber verändert.

tumb_user1@Tuxedo2011:~> sudo zypper -vv dup --allow-vendor-change 
[sudo] Passwort für root:  
zypper: error while loading shared libraries: libprotobuf-lite-3.21.6.so: cannot open shared object file: No such file or directory

auch beim Öffnen von “Yast → Software installieren”.

Internal error. Please report a bug report with logs.
Run save_y2logs to get complete logs.

Caller: /usr/lib/ruby/vendor_ruby/3.1.0/yast/yast.rb:186:in `import_pure’

Details: component cannot import namespace ‘Pkg’

import_pure(mname)

Bevor ich den weiteren Schritt (die Datenbank "Package.db mit dem neustem Backup auswechsle) ausführe, möchte ich mich noch mal vergewissern, ob das immer noch zielführend ist. Ich möchte weiteren Schaden vermeiden.
Bitte um kurze Rückmeldung. Danke.

Obwohl

rpm --rebuilddb
zypper clean -a
zypper ref

vielleicht helfen kann, habe ich den Eindruck das das Unterbrechen dazu geführt hat das ein Pakket nicht richtig mehr installiert ist.

Und da zypper in Ruby geschrieben ist und ruby deutlich im Fehlermeldung erwähnt ist, habe ich den Eindruck das Ruby Teilweise nicht mehr richtig installiert ist.

Wenn du Btrfs und Snapshots benutzest wäre es sowieso logisch ein früheres Snapshot zu booten und von dort aus den zypper dup zu wiederholen.

Laut Fehlermeldung kann zypper die Shared Library “libprotobuf-lite-3.21.6.so” nicht laden. Die Datei ist defekt oder fehlt vermutlich. Eventuell passt die vorhandene libprotobuf-lite Version durch den Abbruch auch einfach nicht mehr zur installierten libzypp Version, da zypper die libzypp*.so benötigt und diese dann die libprotobuf-lite*.so. Somit schlägt schon der Start von zypper fehl.


~> ldd /usr/bin/zypper |grep -E 'proto|zypp' 
        lib**zypp**.so.1722 => /lib64/lib**zypp**.so.1722 (0x00007f7b05400000) 
        lib**proto**buf-lite-3.21.9.so => /lib64/lib**proto**buf-lite-3.21.9.so (0x00007f7b04cba000)

[FONT=monospace]~> ldd /lib64/libzypp.so.1722|grep proto 
        lib**proto**buf-lite-3.21.9.so => /lib64/lib**proto**buf-lite-3.21.9.so (0x00007f2e48731000)

~> ls -l /lib64/libprotobuf-lite* 
-rwxr-xr-x 1 root root 841976  2. Nov 13:00 /lib64/libprotobuf-lite-3.21.9.so
[/FONT]

Wie Henk schon schrieb:

Wenn du Btrfs und Snapshots benutzest wäre es sowieso logisch ein früheres Snapshot zu booten und von dort aus den zypper dup zu wiederholen.

ist das die beste Variante das Problem zu beheben. Falls das nicht möglich ist kann man auch einen manuellen Download des zypper RPM und der abhängigen RPM durchführen. Und dann versuchen diese per rpm manuell zu installieren. Und falls das erfolgreich war den Rest per zypper dup auf einen konsistenten Stand zu bringen.
Zur Info zypper ist meiner Meinung nach C++ Code siehe hier https://github.com/openSUSE/zypper. Die Ruby Fehlermeldungen sind von Yast.

Hallo und danke für eure Rückmeldungen,

Wie Henk schon schrieb:

                          Wenn du Btrfs und Snapshots benutzest

Tumbleweed sitzt an diesem Rechner auf, soweit ich mich erinnere, auf ein ext4 filesystem. Snapshots habe ich noch nie gemacht, wenn sie nicht automatisch gemacht werden.

Ich habe unter oben stehenden Link von der Möglichkeit gelesen, wie man ein Backup (/etc/sysconfig/backup) der RPM-Datenbank mit der beschädigten Datenbank austauschen könnte. Wäre das auch eine Möglichkeit ?

Integrität der RPM-Datenbank (rpmdb) kontrollieren. Siehe dazu:
RPM Database Corrupt | Support | SUSE

Wenn nicht Btrfs, dann kein Btrfs Snapshots.

Eine Reperatur Versuch der RPM Datenbank wurde doch schon gemacht oder habe ich das falsch verstanden ?

Integrität der RPM-Datenbank (rpmdb) kontrollieren. Siehe dazu:
RPM Database Corrupt | Support | SUSE

War das erfolgreich ? Was liefern denn diese Kommandos


~> rpm -q zypper  
zypper-1.14.58-1.1.x86_64 
~> rpm -q libzypp 
libzypp-17.31.5-1.1.x86_64 
~> rpm -q libprotobuf-lite3_21_9  
libprotobuf-lite3_21_9-21.9-1.1.x86_64

Wie auch immer ein Backup der PRM DB oder deren Reperatur löst nicht das zypper Problem mit dem Shared Object.
Bitte mal inhalt von /etc/fstab posten um sicher zu gehen das nicht doch ein brtfs verwendet wird:


~> cat /etc/fstab

Hallo,

@rawar

Eine Reperatur Versuch der RPM Datenbank wurde doch schon gemacht oder habe ich das falsch verstanden ?

ich habe das schon weiter oben gepostet.

War das erfolgreich ? Was liefern denn diese Kommandos

Nein, das hat nur die Fehlermeldung etwas verändert.

tumb_user1@Tuxedo2011:~> rpm -q zypper 
zypper-1.14.56-1.1.i586

tumb_user1@Tuxedo2011:~> rpm -q libzypp
libzypp-17.31.1-1.2.i586
tumb_user1@Tuxedo2011:~> rpm -q libprotobuf-lite3_21_9
libprotobuf-lite3_21_9-21.9-1.1.i586

Bitte mal inhalt von /etc/fstab posten um sicher zu gehen das nicht doch ein brtfs verwendet wird:

tumb_user1@Tuxedo2011:~> cat /etc/fstab 
UUID=cf1882f5-f695-4f5e-8c31-a33e4dc1e6d4  /                    btrfs  defaults                      0  0 
UUID=cf1882f5-f695-4f5e-8c31-a33e4dc1e6d4  /var                 btrfs  subvol=/@/var                 0  0 
UUID=cf1882f5-f695-4f5e-8c31-a33e4dc1e6d4  /usr/local           btrfs  subvol=/@/usr/local           0  0 
UUID=cf1882f5-f695-4f5e-8c31-a33e4dc1e6d4  /tmp                 btrfs  subvol=/@/tmp                 0  0 
UUID=cf1882f5-f695-4f5e-8c31-a33e4dc1e6d4  /srv                 btrfs  subvol=/@/srv                 0  0 
UUID=cf1882f5-f695-4f5e-8c31-a33e4dc1e6d4  /root                btrfs  subvol=/@/root                0  0 
UUID=cf1882f5-f695-4f5e-8c31-a33e4dc1e6d4  /opt                 btrfs  subvol=/@/opt                 0  0 
UUID=36f888d7-b7af-4711-a419-2fbbb14da203  /home                ext4   data=ordered                  0  2 
UUID=cf1882f5-f695-4f5e-8c31-a33e4dc1e6d4  /boot/grub2/i386-pc  btrfs  subvol=/@/boot/grub2/i386-pc  0  0 
UUID=7bd81ea3-4515-4437-8d94-4d5ada9c3dfa  swap                 swap   defaults                      0  0



Oh, ich bin jetzt selbst überrascht, nur home ist ext4, Alles andere ist btrfs. Backup habe ich allerdings noch nie gemacht.

Poste:

snapper list

kannst du im Grub Schnappschüsse auswählen?

Hallo,

@Sauerland,
freut mich Dich hier wieder zu treffen, Du hast schon so oft geholfen.

Poste:
Code:

 snapper list
tumb_user1@Tuxedo2011:~> snapper list
Die Konfiguration "Root" ist nicht vorhanden. Snapper ist wahrscheinlich nicht konfiguriert.
Weitere Anweisungen finden Sie in 'man snapper'.

kannst du im Grub Schnappschüsse auswählen?

Momentan kann ich in Yast nichts öffnen. Weiter oben stehende Fehlermeldung.

In der /etc/fstab sehe ich keinen Eintrag für ein Snapshot Subvolume. Das müsste so ähnlich aussehen:


> grep snapshot /etc/fstab
UUID=34d694a9-ffa1-499f-9368-5d32b23dbd09  /.snapshots             btrfs  subvol=/@/.snapshots          0  0

>sudo ls -tlr /.snapshots/   
[sudo] Passwort für root:  
insgesamt 4 
drwxr-xr-x 1 root root   32  9. Dez 2021  1 
drwxr-xr-x 1 root root   66  2. Nov 09:11 1111 
drwxr-xr-x 1 root root  100  2. Nov 09:11 1112 
drwxr-xr-x 1 root root   66 16. Nov 12:27 1143 
drwxr-xr-x 1 root root   66 16. Nov 12:31 1144 
drwxr-xr-x 1 root root  100 16. Nov 12:31 1145 
drwxr-xr-x 1 root root   66 19. Nov 14:23 1152 
.....

Und in /.snapshots befinden sich dann die Read-Only Snapshots. Zumindest ist das so bei meinem Tumbleweed.

Hallo su_lin_user1,

für mich sieht das zypper Problem so aus als ob die neue libprotobuf-lite-3.21.9.so aus den Update schon aktiv ist aber zypper noch die alte Version libprotobuf-lite-3-21.6.so braucht.
Man könnte diese alte Version https://drive.google.com/file/d/1MnNvSKtcjHOzd7JRWisnf5tbe6dEF1Oe/view?usp=sharing in das Verzeichnis /usr/lib/ kopieren. Dann ein


> sudo /sbin/ldconfig -v

machen und testen ob ein “zypper dup” wieder startet. Es ist aber schon recht wahrscheinlich das da noch einige Probleme auftauchen und dann ist da vermutlich eine Neuinstallation des Systems aus meiner Sicht die beste Option.
Die Default Btrfs Snapshots würde ich nie deaktivieren die lösen genau so ein Problem mit kaum Aufwand.

Hallo rawar,

umb_user1@Tuxedo2011:/usr/lib> dir libproto*
-rwxr-xr-x 1 root root 3470320 2. Nov 12:55 libprotobuf-3.21.9.so
lrwxrwxrwx 1 root root 22 2. Nov 13:11 libprotobuf-c.so.1 -> libprotobuf-c.so.1.0.0
-rwxr-xr-x 1 root root 42388 2. Nov 13:11 libprotobuf-c.so.1.0.0
-rwxr-xr-x 1 root root 878092 2. Nov 12:55 libprotobuf-lite-3.21.9.so

Ich glaube Du liegst mit Deiner Vermutung richtig. Die neue libprotobuf-lite-3.21.9.so ist schon im Verzeichnis. Die alte
libprotobuf-lite-3.21.6.so ist nicht mehr vorhanden.
Wenn ich die alte lib in das Verzeichnis kopiere, wäre es ratsam die neue lib umzubenennen, damit es zu keinen Konflikten kommt ?

Gib mir bitte kurz Bescheid. Danke.

Ich würde nur die 3.21.6 Version nach /usr/lib/ kopieren und ldconfig ausführen und die Version aus dem Update nicht ändern.
Das Kommando


> ldd /usr/bin/zypper |grep proto

sollte dann eine Zeile mit dem 3.21.6 Dateinamen liefern. Dann ein Update per zypper dup anwerfen.
Falls zypper sich beschwert das weitere shared objects nicht gefunden werden kannst du den Output von


> ldd /usr/bin/zypper 

posten.

Hallo rawar,

Das Kommando
Code:
> ldd /usr/bin/zypper |grep proto
sollte dann eine Zeile mit dem 3.21.6 Dateinamen liefern.

tumb_user1@Tuxedo2011:/usr/lib> ldd /usr/bin/zypper |grep proto 
        lib**proto**buf-lite-3.21.6.so => /lib/lib**proto**buf-lite-3.21.6.so (0xb6dcc000)

Dann ein Update per zypper dup anwerfen.

Gratuliere ! Zypper arbeitet. Danke für die Hilfe.

@Sauerland

kannst du im Grub Schnappschüsse auswählen?

Nachdem Zypper fertig ist werde ich im Grub nach Schnappschüsse suchen und aktiv machen.

Hallo,

@Sauerland
Nachdem jetzt das Systemupdate durchgelaufen ist, habe ich im Yast nach der Option Snapshots geschaut.

Unter Verschiedenes -> Dateisystemschnappschuss kommt sofort die Meldung:

Keine Snapper-Konfigurationen vorhanden. Sie müssen mindestens eine
Konfiguration erstellen, um yast2-snapper verwenden zu können.
Die Konfigurationen können Sie mit dem Snapper-Kommandozeilenwerkzeug erstellen.

Unter Grub2 ist keine Option zu finden, mit der man den yast-snapper aktivieren könnte. Sieht so aus, wie wenn man das über die Konsole machen müsste.

Neues Problem, neuer Beitrag.

Bitte eröffne einen neuen Beitrag.