Sqlite3: unreadable database

Kleiner Beitrag aus der Selbsthilfeecke:

Wenn eine App bei einem Sqlite3 Zugriff „unreadable database“ von sich gibt, dann liegt das vermutlich daran, daß der User der Datenbank, in dem Fall ist das die UserID der Anwendung, welche die Datenbank nutzen will, keine Schreibrechte … und jetzt kommts .. auf dem Verzeichnis hat, wo das Datenbankfile liegt.

[root synapse]# ls -la /etc/synapse/
insgesamt 2048
drwxrwxr-x 3 synapse synapse 4096 12. Feb 11:38 .
drwxr-xr-x 133 root root 12288 12. Feb 11:31 ..
-rw-r--r-- 1 synapse synapse 1654784 12. Feb 11:38 homeserver.db

Die Lösung ist also fix gemacht:

cd /path/to/database
chgrp appusergroup .
chmod g+w .

und schon geht es wieder.

Wer sich jetzt noch fragt, was Synapse ist: Ein MatrixServer

presenting the Rawhide Downgrade to past date script

The this script gets the latest updates via dnf log files and reversed the system back to a given date in time, that is still in the logfile.

Presenting the Rawhide Downgrade to past date script

It’s far from perfect, but tries it’s best.  You need to install koji package first:  „dnf install koji

Most likely outcome: some packages will be missing, because koji can’t find them and some will be double present, with different versions and you end up in a collision. Remove the higher version files manually and do „dnf downgrade ./*rpm

Usage: scriptname {timestamp}

#!/bin/bash

grep "Upgraded:" /var/log/dnf.rpm.log | sort -r > /tmp/liste

mkdir rpmdownload
cd rpmdownload

if [ "" == "$1" ]; then

	echo "Keine Zeit angegeben.. benutze 4.2.2021"
	since=$(date --date="2021-02-04T00:00:00+0100" "+%s")

else 
	since=$(date --date="$1" "+%s")

fi

packs=""

declare -A old = ()

IFS=$'\n'
for line in $(cat /tmp/liste)
do 

	date=$(echo $line|sed -e "s/ .*//g")
	pkg=$(echo $line|sed -e "s/^.*: //g")
	
	time=$(date --date="$date" "+%s")

	if [ $time -gt $since ]; then 
	
		echo "$date => OK => $pkg"
		
		koji download-build --rpm $pkg
		basename=$(rpm -q --queryformat="%{Name}" ./$pgk)

		if [ "${old[$basename]}" != "" ]; then
			echo "found old entry ${old[$basename]}";
			rm -f ${old[$basename]}
		fi 

		$old[$basename]="$pkg"
		packs="$packs $pkg"
		
	else 
	
		echo "$date => IGNORE => $pkg"
	fi
	
done

if [ "$packs" != "" ]; then

	dnf -y downgrade ./*rpm
	
fi 

When is it usefull?

If something, you don’t know of, broke the system by Updates and you need to undo tons of downgrades. Happend to pinephones on the 8th of February 2021.

Fedora: Pinephone kann nicht mehr telefonieren

Liebe Linuxphone-Fans,

seit rund einer Woche funktionierte das Telefonieren auf dem Pinephone, weil endlich alles mit Pipewire verdrahtet wurde. Ein Update später schweigt das Mikro.

Fedora: Pinephone kann nicht mehr telefonieren

Wer jetzt erst das Fedorainstallationsimage vom 31.1.  installiert, darf auf keinen Fall ein Update einspielen. Das ist heute schon die zweite Updatewarnung, aber die hier hat es in sich, denn wir haben keinen Schimmer wieso das nicht mehr geht. Ein Workaround ist daher erst einmal nicht in Sicht.

Dieser Beitrag hier, wurde nur möglich, weil ich genau das Problem mit dem Mikro untersucht habe:

Fedora: Phosh crasht wegen glib2 Patch

Problem ist, daß das voll gepatchte Pinephone zwar technisch telefonieren kann, aber kein Ton vom Angerufenen ankommt, weil das Mikro den Ton nicht mehr aufnimmt. Dies ist aber erst am 8.2. per Update zerschossen worden. Leider waren das hundert Updates, das zu tracken ist schwierig. Weil die Frage schon kam, nein, die Hardwareschalter hat keiner angefasst.

Randnotiz: Torbuntu wäre gestern Abend fast vom Stuhl gekippt, als ich ihm das geschrieben habe 🙂 Tor ist einer der sehr aktiven Entwickler und baut u.a. den Kernel fürs Pinephone.

Golem ist im Test vom Libre M5 letzte Woche der gleiche Bug untergekommen. Vermutlich weil es nicht an den von Puri.sm entwickelten Komponenten lag, sondern am pipewire/alsa/pulse Subsystem. Lassen wir uns überraschen.

Update vom 11.2.2021

Wer schon in die Falle getreten ist, der wird das hier jetzt sehr zu schätzen wissen:

./intelligrade.sh 2021-02-08T00:00:00+0100

und nach einer Weile lädt Koji alle nötigen Pakete nach, und ein paar Doublettenentfernungen später, kann man das System mit 269 Updateschritten auf den Stand vom 8.2. zurücksetzen. Dann einfach rebooten und Mikro geht wieder!

Mehr dazu hier:

presenting the Rawhide Downgrade to past date script