[arch-general] pacman Segfault on full system update

David C. Rankin drankinatty at gmail.com
Fri Jun 24 08:53:56 UTC 2022


I have an Arch guest in VirtualBox running on an Arch server. I installed 
virtualbox-bin 1-34-2 from AUR with 5.18 patch and the install on the host 
went fine.

I access the guest headless using rdesktop over the LAN. (have done so for 
years). Doing a full system update from 5.17.7 to 5.18.6 (about 25 days of 
updates) on guest.

Pacman segfaulted leaving post transaction hooks unrun. I reinstalled the 
kernel and systemd to force the initrd to be made so the guest is bootable.

However, I'm not sure what additional hooks were missed. The guest window when 
X is started is 1440 x 864 but the only portion of the desktop shown is 1024 x 
768 (rest is black and not shown, taskbar unable to be seen, etc.) After the 
pacman segfault, now the console is also missing the last 7-8 lines. I have to 
hit clear and start over at the top to see what I'm typing.

How can I recover this system? I was able to rsync the last 1000 lines of 
pacman.log from the guest to the host, but the shared folders no longer work. 
The pacman.log summary of how the issue occurred is:

[2022-06-24T02:06:26-0500] [PACMAN] Running 'pacman -Sy --needed 
archlinux-keyring'
[2022-06-24T02:06:26-0500] [PACMAN] synchronizing package lists
[2022-06-24T02:07:03-0500] [PACMAN] Running 'pacman -Su'
[2022-06-24T02:07:03-0500] [PACMAN] starting full system upgrade
[2022-06-24T02:07:30-0500] [ALPM] running '60-mkinitcpio-remove.hook'...
[2022-06-24T02:07:30-0500] [ALPM] transaction started
[2022-06-24T02:07:30-0500] [ALPM] upgraded iana-etc (20220427-1 -> 20220603-1)
[2022-06-24T02:07:30-0500] [ALPM] warning: /etc/locale.gen installed as 
/etc/locale.gen.pacnew
[2022-06-24T02:07:31-0500] [ALPM] upgraded glibc (2.35-5 -> 2.35-6)
[2022-06-24T02:07:31-0500] [ALPM-SCRIPTLET] Generating locales...
[2022-06-24T02:07:32-0500] [ALPM-SCRIPTLET]   en_US.UTF-8... done
[2022-06-24T02:07:32-0500] [ALPM-SCRIPTLET] Generation complete.
<snipped lots of packages installed>
...
[2022-06-24T02:09:04-0500] [ALPM] upgraded linux-firmware-whence 
(20220509.b19cbdc-1 -> 20220610.7b71b75-1)
Segfault

Remove db.lock and continue:

[2022-06-24T02:12:57-0500] [PACMAN] Running 'pacman -Syu'
[2022-06-24T02:12:57-0500] [PACMAN] synchronizing package lists
[2022-06-24T02:12:59-0500] [PACMAN] starting full system upgrade
[2022-06-24T02:13:16-0500] [ALPM] transaction started
[2022-06-24T02:13:17-0500] [ALPM] error: could not extract 
/usr/share/licenses/linux-firmware/LICENCE.nvidia (Zstd decompression failed: 
Restored data doesn't match checksum)
[2022-06-24T02:13:17-0500] [ALPM] error: problem occurred while upgrading 
linux-firmware
[2022-06-24T02:13:17-0500] [ALPM] upgraded linux-firmware (20220509.b19cbdc-1 
-> 20220610.7b71b75-1)
[2022-06-24T02:13:17-0500] [ALPM] transaction failed

So I delete the firmware file from /var/cache/pacman/pkg and run the upgrade 
again. To my surprise, it doesn't download the firmware package again, it just 
considers it installed and proceeds to other packages, e.g.

[2022-06-24T02:15:49-0500] [PACMAN] Running 'pacman -Syu'
[2022-06-24T02:15:49-0500] [PACMAN] synchronizing package lists
[2022-06-24T02:15:51-0500] [PACMAN] starting full system upgrade
[2022-06-24T02:16:03-0500] [ALPM] transaction started
[2022-06-24T02:16:03-0500] [ALPM] upgraded python (3.10.4-1 -> 3.10.5-1)
[2022-06-24T02:16:09-0500] [ALPM] upgraded linux-headers (5.17.7.arch1-1 -> 
5.18.6.arch1-1)
[2022-06-24T02:16:11-0500] [ALPM] error: could not extract 
/usr/lib/mysql/plugin/client_ed25519.so (Zstd decompression failed: Restored 
data doesn't match checksum)
[2022-06-24T02:16:11-0500] [ALPM] error: problem occurred while upgrading 
mariadb-libs
[2022-06-24T02:16:11-0500] [ALPM] upgraded mariadb-libs (10.7.3-1 -> 10.8.3-1)
[2022-06-24T02:16:11-0500] [ALPM] transaction failed

Crash again and delete mariadb-libs from /var/cache... and try again:

[2022-06-24T02:19:16-0500] [PACMAN] Running 'pacman -Syu'
[2022-06-24T02:19:16-0500] [PACMAN] synchronizing package lists
[2022-06-24T02:19:17-0500] [PACMAN] starting full system upgrade
[2022-06-24T02:19:26-0500] [ALPM] transaction started
[2022-06-24T02:19:26-0500] [ALPM] upgraded mariadb-clients (10.7.3-1 -> 10.8.3-1)
[2022-06-24T02:19:27-0500] [ALPM] warning: directory permissions differ on 
/usr/lib/mysql/plugin/auth_pam_tool_dir/
filesystem: 700  package: 755
[2022-06-24T02:19:27-0500] [ALPM] upgraded mariadb (10.7.3-1 -> 10.8.3-1)
[2022-06-24T02:19:27-0500] [ALPM-SCRIPTLET] :: MariaDB was updated to a new 
feature release. To update the data run:
[2022-06-24T02:19:27-0500] [ALPM-SCRIPTLET]    systemctl restart 
mariadb.service && mariadb-upgrade -u root -p
[2022-06-24T02:19:27-0500] [ALPM] warning: /etc/pacman.d/mirrorlist installed 
as /etc/pacman.d/mirrorlist.pacnew
[2022-06-24T02:19:27-0500] [ALPM] upgraded pacman-mirrorlist (20220501-1 -> 
20220605-1)
<snip lots more packages installed>
...
[2022-06-24T02:19:34-0500] [ALPM] upgraded tmux (3.2_a-1 -> 3.3_a-2)
[2022-06-24T02:19:35-0500] [ALPM] error: could not extract 
/usr/share/doc/valgrind/valgrind_manual.ps (Zstd decompression failed: 
Restored data doesn't match checksum)
[2022-06-24T02:19:35-0500] [ALPM] error: problem occurred while upgrading valgrind
[2022-06-24T02:19:35-0500] [ALPM] upgraded valgrind (3.19.0-3 -> 3.19.0-4)
[2022-06-24T02:19:35-0500] [ALPM] transaction failed

Crash again. Rinse, repeat and try again:

[2022-06-24T02:20:14-0500] [PACMAN] Running 'pacman -Syu'
[2022-06-24T02:20:14-0500] [PACMAN] synchronizing package lists
[2022-06-24T02:20:15-0500] [PACMAN] starting full system upgrade
[2022-06-24T02:20:20-0500] [ALPM] transaction started
[2022-06-24T02:20:21-0500] [ALPM] upgraded vim-runtime (8.2.4827-1 -> 8.2.5046-2)
[2022-06-24T02:20:21-0500] [ALPM] upgraded vim (8.2.4827-1 -> 8.2.5046-2)
[2022-06-24T02:20:21-0500] [ALPM] upgraded xbitmaps (1.1.2-2 -> 1.1.2-3)
[2022-06-24T02:20:21-0500] [ALPM] upgraded xcb-util-cursor (0.1.3-3 -> 0.1.3-4)
[2022-06-24T02:20:21-0500] [ALPM] upgraded xcursor-themes (1.0.6-2 -> 1.0.6-3)
[2022-06-24T02:20:21-0500] [ALPM] upgraded xorg-bdftopcf (1.1-2 -> 1.1-3)
[2022-06-24T02:20:21-0500] [ALPM] upgraded xorg-font-util (1.3.2-2 -> 1.3.2-3)
[2022-06-24T02:20:21-0500] [ALPM] upgraded xorg-server-common (21.1.3-6 -> 
21.1.3-7)
[2022-06-24T02:20:21-0500] [ALPM] upgraded xorg-server (21.1.3-6 -> 21.1.3-7)
[2022-06-24T02:20:21-0500] [ALPM] upgraded xorg-xcursorgen (1.0.7-2 -> 1.0.7-3)
[2022-06-24T02:20:21-0500] [ALPM] upgraded xorg-xmessage (1.0.5-2 -> 1.0.5-3)
[2022-06-24T02:20:21-0500] [ALPM] upgraded xorg-xmodmap (1.0.10-2 -> 1.0.10-3)
[2022-06-24T02:20:21-0500] [ALPM] upgraded xorg-xsetroot (1.1.2-2 -> 1.1.2-3)
[2022-06-24T02:20:21-0500] [ALPM] upgraded xterm (372-1 -> 372-2)
[2022-06-24T02:20:21-0500] [ALPM] upgraded zsh (5.8.1-2 -> 5.9-1)
[2022-06-24T02:20:24-0500] [ALPM] transaction completed
[2022-06-24T02:20:24-0500] [ALPM] running '30-systemd-update.hook'...
[2022-06-24T02:20:24-0500] [ALPM] running 'fontconfig.hook'...
[2022-06-24T02:20:25-0500] [ALPM] running 'gtk-update-icon-cache.hook'...
[2022-06-24T02:20:25-0500] [ALPM] running 'update-desktop-database.hook'...
[2022-06-24T02:20:26-0500] [ALPM] running 'xorg-mkfontscale.hook'...

Now system has many hooks not run, at this point if upgrade the kernel to 
force an image to be created and it succeeds:

[2022-06-24T02:24:31-0500] [PACMAN] Running 'pacman -U 
/var/cache/pacman/pkg/linux-5.18.6.arch1-1-x86_64.pkg.tar.zst'
[2022-06-24T02:24:37-0500] [ALPM] transaction started
[2022-06-24T02:24:38-0500] [ALPM] reinstalled linux (5.18.6.arch1-1)
[2022-06-24T02:24:40-0500] [ALPM] transaction completed
[2022-06-24T02:24:41-0500] [ALPM] running '30-systemd-update.hook'...
[2022-06-24T02:24:41-0500] [ALPM] running '60-depmod.hook'...
[2022-06-24T02:24:46-0500] [ALPM] running '90-mkinitcpio-install.hook'...
<snip -- succeeds without issue>
[2022-06-24T02:25:05-0500] [ALPM-SCRIPTLET] ==> Creating zstd-compressed 
initcpio image: /boot/initramfs-linux-fall
back.img
[2022-06-24T02:25:06-0500] [ALPM-SCRIPTLET] ==> Image generation successful

Reinstall systemd to force it to run its hooks and vim to see if I can't fix 
"can't allocate for color Orange", etc...

[2022-06-24T02:46:41-0500] [PACMAN] Running 'pacman -S systemd systemd-libs 
vim vim-runtime'
[2022-06-24T02:46:53-0500] [ALPM] transaction started
[2022-06-24T02:46:53-0500] [ALPM] reinstalled systemd-libs (251.2-1)
[2022-06-24T02:46:54-0500] [ALPM] reinstalled systemd (251.2-1)
[2022-06-24T02:46:55-0500] [ALPM] reinstalled vim-runtime (8.2.5046-2)
[2022-06-24T02:46:55-0500] [ALPM] reinstalled vim (8.2.5046-2)
[2022-06-24T02:46:56-0500] [ALPM] transaction completed
[2022-06-24T02:46:56-0500] [ALPM] running '20-systemd-sysusers.hook'...
[2022-06-24T02:46:56-0500] [ALPM] running '30-systemd-catalog.hook'...
[2022-06-24T02:46:56-0500] [ALPM] running '30-systemd-daemon-reload.hook'...
[2022-06-24T02:46:56-0500] [ALPM] running '30-systemd-hwdb.hook'...
[2022-06-24T02:46:57-0500] [ALPM] running '30-systemd-sysctl.hook'...
[2022-06-24T02:46:57-0500] [ALPM] running '30-systemd-tmpfiles.hook'...
[2022-06-24T02:46:57-0500] [ALPM] running '30-systemd-udev-reload.hook'...
[2022-06-24T02:46:57-0500] [ALPM] running '30-systemd-update.hook'...
[2022-06-24T02:46:57-0500] [ALPM] running '90-mkinitcpio-install.hook'...

So after all of this manual running, I can start the VM and log in as user or 
root, but I'm not sure what got missed? Is there any way to know what hooks 
remain unrun or what packages the system thinks were installed but that were 
not actually installed? Why does X and the console only show 1024 x 768 of the 
guest even though the window (which is normally filled with the VM) is 1440 x 864?

What do I need to look at/test to determine what shape my install is in?

Sorry for the long post, but without the logs, it would have been impossible 
to explain what happened or where it happened in the upgrade process. Let me 
know if there is anything else I can post that will help.


-- 
David C. Rankin, J.D.,P.E.


More information about the arch-general mailing list