Target initialisation failed : Failed to cache rpm database (129)

trying to use zypper to refresh packages and dup, but get the above error.
Have tried various suggestions as in rebuilding the database, clearing cache, logging in as root, etc, but none seem to work.
If I run Yast Software update, just get error that “Cannot read the list of installed packages.”
Thanks.

@hornetster Hi can you post the output from zypper lr -d and zypper -vvv ref -f.

zypper lr -d
# | Alias                             | Name                       | Enabled | GPG Check | Refresh | Priority | Type   | URI                                                                                          | Service
--+-----------------------------------+----------------------------+---------+-----------+---------+----------+--------+----------------------------------------------------------------------------------------------+--------
1 | download.opensuse.org-non-oss     | Main Repository (NON-OSS)  | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://download.opensuse.org/tumbleweed/repo/non-oss/                                        | 
2 | download.opensuse.org-oss         | Main Repository (OSS)      | Yes     | (r ) Yes  | Yes     |   99     | rpm-md | http://download.opensuse.org/tumbleweed/repo/oss/                                            | 
3 | download.opensuse.org-tumbleweed  | Main Update Repository     | No      | ----      | ----    |   99     | N/A    | http://download.opensuse.org/update/tumbleweed/                                              | 
4 | http-ftp.uni-erlangen.de-6949120b | Packman Repository         | No      | ----      | ----    |   99     | N/A    | http://ftp.uni-erlangen.de/pub/mirrors/packman/suse/openSUSE_Tumbleweed                      | 
5 | openSUSE-20211122-0               | openSUSE-20211122-0        | No      | ----      | ----    |   99     | N/A    | hd:/?device=/dev/disk/by-id/usb-Kingston_DataTraveler_3.0_E0D55E6A0DEBE4A16917E1F0-0:0-part2 | 
6 | repo-debug                        | openSUSE-Tumbleweed-Debug  | No      | ----      | ----    |   99     | N/A    | http://download.opensuse.org/debug/tumbleweed/repo/oss/                                      | 
7 | repo-source                       | openSUSE-Tumbleweed-Source | No      | ----      | ----    |   99     | N/A    | http://download.opensuse.org/source/tumbleweed/repo/oss/                                     | 
8 | skype-stable                      | skype (stable)             | No      | ----      | ----    |   99     | N/A    | https://repo.skype.com/rpm/stable/                                                           | 
9 | vivaldi                           | vivaldi                    | No      | ----      | ----    |   99     | N/A    | https://repo.vivaldi.com/archive/rpm/x86_64
sudo zypper -vvv ref -f
[sudo] password for root: 
Verbosity: 3
Initializing Target
Target initialization failed:
Failed to cache rpm database (129).

Thanks.

@hornetster so have you used YaST often to update Tumbleweed, the only way to ensure moving to the next snapshot release is via zypper -vvv dup.

Anyway, I suspect you have no disk space… are you running btrfs/snapper etc?

Have never used Yast to update. Always zypper dup, from the command line. This is a secondary machine, which I admit doesn’t get used a lot. My main machine is also Tumbleweed, anbd have never had an issue…

df
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sdb2       75161600 44184900  18203420  71% /
devtmpfs            4096        0      4096   0% /dev
tmpfs            8078468    58212   8020256   1% /dev/shm
efivarfs             192       54       134  29% /sys/firmware/efi/efivars
tmpfs            3231388     2000   3229388   1% /run
/dev/sdb2       75161600 44184900  18203420  71% /.snapshots
/dev/sdb2       75161600 44184900  18203420  71% /home
/dev/sdb2       75161600 44184900  18203420  71% /boot/grub2/i386-pc
/dev/sdb2       75161600 44184900  18203420  71% /srv
/dev/sdb2       75161600 44184900  18203420  71% /usr/local
/dev/sdb2       75161600 44184900  18203420  71% /var
/dev/sdb2       75161600 44184900  18203420  71% /boot/grub2/x86_64-efi
/dev/sdb2       75161600 44184900  18203420  71% /opt
/dev/sdb2       75161600 44184900  18203420  71% /root
tmpfs            8078472     8052   8070420   1% /tmp
/dev/sdb1         204560     5960    198600   3% /boot/efi
/dev/sdb5      775526396  7331336 768195060   1% /home/data
tmpfs            1615692      276   1615416   1% /run/user/1000
tmpfs            1615692      256   1615436   1% /run/user/0

Thanks.

@hornetster so what snapshot release is the system at cat /etc/os-release and also btrfs fi usage /

I can’t recall the exact return code but a few weeks ago I had a similar issue. Somehow the symlink dir /var/lib/rpm/*.db files were a different size than the source /usr/lib/sysimage/rpm/ files… I’m not entirely sure how it happened. I think I got frustrated and just deleted them but I don’t know that this is a step to recommend.

@butcherbird probably not advisable…? Did your run rpmdb --rebuilddb

Yeah steps in the KB kept failing. I am on btrfs if that is related.

@butcherbird I would suggest a new thread on your issue…

john@Brick:~> cat /etc/os-release
NAME="openSUSE Tumbleweed"
# VERSION="20240308"
ID="opensuse-tumbleweed"
ID_LIKE="opensuse suse"
VERSION_ID="20240308"
PRETTY_NAME="openSUSE Tumbleweed"
ANSI_COLOR="0;32"
# CPE 2.3 format, boo#1217921
CPE_NAME="cpe:2.3:o:opensuse:tumbleweed:20240308:*:*:*:*:*:*:*"
#CPE 2.2 format
#CPE_NAME="cpe:/o:opensuse:tumbleweed:20240308"
BUG_REPORT_URL="https://bugzilla.opensuse.org"
SUPPORT_URL="https://bugs.opensuse.org"
HOME_URL="https://www.opensuse.org"
DOCUMENTATION_URL="https://en.opensuse.org/Portal:Tumbleweed"
LOGO="distributor-logo-Tumbleweed"
btrfs fi usage /
Overall:
    Device size:                  71.68GiB
    Device allocated:             65.07GiB
    Device unallocated:            6.61GiB
    Device missing:                  0.00B
    Device slack:                    0.00B
    Used:                         42.03GiB
    Free (estimated):             17.35GiB      (min: 14.04GiB)
    Free (statfs, df):            17.34GiB
    Data ratio:                       1.00
    Metadata ratio:                   2.00
    Global reserve:              125.86MiB      (used: 0.00B)
    Multiple profiles:                  no

Data,single: Size:49.01GiB, Used:38.27GiB (78.09%)
   /dev/sdb2      49.01GiB

Metadata,DUP: Size:8.00GiB, Used:1.88GiB (23.52%)
   /dev/sdb2      16.00GiB

System,DUP: Size:32.00MiB, Used:16.00KiB (0.05%)
   /dev/sdb2      64.00MiB

Unallocated:
   /dev/sdb2       6.61GiB

Thanks.

Is this for me?? Yes…

@malcolmlewis Oh my issue is resolved now. Must have been some fs problem but I think after deleting the db files in both locations, that allowed the rpm --rebuilddb to work.

@hornetster disk space looks fine (df command not really applicable on btrfs). You could look at running a balance and see if that helps…

btrfs balance start --full-balance --bg /

# check the status with the following until finished;
btrfs balance status -v /

Also logs with journalctl --disk-usage

Show

ls -l /usr/lib/sysimage/rpm
ls -l /var/lib/rpm

So, are you supposed to run these commands on the active system, or boot from a live CD?
Tried to run from liveCD, but could not figure out how to reference the partition to act on, then ran from active system, and looked like it was working, checked a number of times and all looked good/progressing well. Came back several hours later, only thing I could fathom was that it was operating on a read-only file system, nothing else could be determined, konsole was not working, as was nothing else, only the mouse pointer.
Couldn’t shutdown (“shutdown executable not available”, or similar).
Only option was to force a reboot… Now unable to boot correctly,
Did I stuff it?
Doesn’t really matter, as was not a crucial system, will rebuild, and hope the next works better.
I will still not say that the drive hasn’t got issues, but cannot find anything that points to this in particular…
Thanks.

That happens when there are too many errors, the filesystem is remounted as read-only to avoid further damage.

Balance can be run from a running system, if you want more safety run it from rescue ISO as you can be certain no other program (other than btrfs balance) is performing operations on it. Either way, balance can be run only on a mounted btrfs filesystem, not the unmounted partition.

You might want to run btrfs check </dev/your-btrfs-partition> from rescue ISO while the btrfs fileystem is unmounted to check for errors.

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.