My Whoville hub (hub.hubzilla.hu) had been down for almost three days.
The problem seems to be solved. The workerq is usually back to zero (‘at rest’) now, the queue is within the normal range.
Actions are now being federated again.
The facts:
The error occurred without warning. Meanwhile, I was able to understand what caused the problems based on the YunoHost logs.
Whoville (hub.hubzilla.hu) is installed on a VPS that I manage with YunoHost. However, I did not install it as a YunoHost app because the updates were sometimes extremely behind the development of Hubzilla. I used a My-Webapp at YH. This is a container for web applications including PHP and a database. There I installed Hubzilla in the normal way, as explained in the installation instructions, as if I were doing it on a ‘bare’ server with LEMP (this is how Klackerhub - klacker.org is installed on another VPS).
Otherwise, only a few other apps (independent of Hubzilla) run on the VPS, including a Forgejo instance.
When I installed Hubzilla, I manually installed the prerequisites for Hubzilla, including the two packages php8.2-gd and php8.2-gmp.
Because I actually didn't use the Forgejo instance and because spam accounts kept appearing, I deleted Forgejo in the YH panel on Saturday, 14 September.
Some time later, I noticed that I couldn't get rid of a comment on Whoville. After sending it, it hung in a continuous loop and after leaving the website, the content had disappeared. Then I posted a normal post to test it. That worked. However, I noticed that the post was not distributed to other instances and not even to my own other channels on Whoville. I then looked in the admin area and found that the queue had become quite large and hundreds of items were stuck in the queue worker line.
To verify the fact that posts are not only distributed within my account in the various channels, I created another account on Whoville (in a different browser). That worked too. But when I tried to create a channel, I was able to create a channel, but when I tried to create a profile for it, I ended up on a white page (Err. 500).
The channel was entered in the admin area, but it remained without a profile.
Several further attempts were identical.
Then I turned to the Hubzilla support forum. There I also shared parts of the php.log. While looking through the log file, Mario Vavti and Grouchy... and then also I noticed that errors occurred because php-gd and php-gmp were missing.
I then checked and indeed these (and a few other) packages were uninstalled. I reinstalled them and after that the channel/profile creation worked again. However, the two queues continued to grow (I occasionally emptied them manually in the DB)... and nothing was federated yet.
Mario then asked for the Hubzilla log because he had noticed an error that had nothing to do with the missing packages. You could have looked at the log file to see which URL the problem occurred with when it was called. Unfortunately, I hadn't even turned on the generation of this log file. I did it later and after some time the error occurred again and again. And it was always with actions that affect a specific channel. And only this one!
I had temporarily switched off registration when I noticed the problems with channel creation. But the problems had existed for a while. And it was precisely during this period that a user had registered and tried in vain to create a channel. The channel existed in the database, but was faulty because there was no profile for it. Incidentally, the user who registered had done so because I had recommended it to all users on my (streams) hub (because I close the hub at the end of the month).
Since the channel was not usable anyway, I deleted it. Afterwards, I completely emptied both queues in the DB again... and now everything is running as usual again. Queueworker is usually at zero items and the queue is within the usual limits. But most importantly, posts from Whoville are now being federated again, i.e. distributed throughout the Fediverse.
So a faulty channel on a hub can cause the entire output of a hub to be blocked.
But let's look at the cause a little more: How did we get to the actual cause of the problems, namely the deletion of the packages? I looked at the YH logs today and found that uninstalling Forgejo also removed these packages without asking. This happened even though I had explicitly installed them myself by hand. I don't understand it. When the problem was still present in its entirety, I briefly thought that it might be due to the Forgejo uninstallation. So I reinstalled Forgejo as an app again. But the removed packages were not installed at all. So it seems that Forgejo does not need the packages, does not install them... so it should not uninstall the packages when uninstalling.
So: be careful when uninstalling apps from YH. This could affect packages installed manually.
At this point, a big thank you to @
Mario Vavti and @
Grouchy for their competent help and the ‘nudges’ that made me aware of the mistakes.
Mein Hub "Whoville" (hub.hubzilla.hu) war jetzt fast drei Tage ausgefallen.
Das Problem scheint beseitigt. Die workerq ist in der Regel jetzt wieder bei Null ("im Ruhezustand"), die Warteschlange im normalen Rahmen.
Aktionen werden jetzt auch wieder föderiert.
Die Fakten dazu:
Der Fehler trat ohne Vorwarnung auf. Inzwischen konnte ich anhand der YunoHost Logs nachvollziehen, was die Probleme ausgelöst hat.
Whoville (hub.hubzilla.hu) ist auf einem VPS installiert, welches ich mit YunoHost verwalte. Ich habe es allerdings nicht als YunoHost-App installiet, weil die Aktualisierungen zeitweise extrem hinter der Entwicklung von Hubzilla zurückhingen. Ich habe bei YH eine My-Webapp verwendet. Das ist ein Container für Webanwendungen inklusive PHP und Datenbank. Dort habe ich Hubzilla ganz normal "zu Fuß" installiert, wie es in den Installationsanweisungen erläutert ist, so als würde ich es auf einem "nackten" Server mit LEMP tun würde (so ist Klackerhub - klacker.org auf einem anderen VPS installiert).
Auf dem VPS laufen ansonsten nur wenige andere Apps (unabhängig von Hubzilla), darunter auch eine Forgejo-Instanz.
Als ich Hubzilla installierte, habe ich per Hand die Voraussetungen für Hubzilla installiert, darunter auch die beiden Pakete php8.2-gd und php8.2-gmp.
Weil ich die Forgejo-Instanz tatsächlich nicht wirklich genutzt habe und da immer wieder Spam-Accounts auftraten, habe ich am Samstag, 14.9. Forgejo im YH-Panel gelöscht.
Einige Zeit später file mir auf, dass ich bei Whoville einen Kommentar nicht los wurde. Nach dem Absenden hing es in einer Dauerschleife und nach Verlassen der Webseite war der Inhalt verschwunden. Dann habe ich zur Probe ein normales Posting abgesetzt. Das ging. Ich stellte aber fest, dass das Posting nicht an andere Instanzen und nicht einmal an meine eigenen anderen Kanäle auf Whoville verteilt wurden. Ich habe dann im Admin-Bereich nachgeschaut und stellte fest, dass die Warteschlange recht groß geworden war und hunderte von Items in der Queueworker-Schlange feststeckten.
Um die Tatsache zu überprüfen, dass Postings nicht nur innerhab meines Accounts in den verschiedenen Kanälen verteilt werden, habe ich mir (in einem anderen Browser) einen weiteren Account auf Whoville erstellt. Das funktionierte auch. Aber bei der folgenden Kanalerstellung konnte ich zwar einen Kanal anlegen, bei der nachfolgenden Profilerstelung andete ich aber auf einer weißen Seite (Err. 500).
Der Kanal war im Adminbereich eingetragen, er blieb aber ohne Profil.
Mehrere weitere Versuch verliefen identisch.
Dann habe ich mich an das Hubzilla Support-Forum gewandt. Dort habe ich auch Teile des php.log geteilt. Beim Durchsehen der Logdatei fiel Mario Vavti und Grouchy... und dann auch mir auf, dass Fehler auftraten, weil php-gd und php-gmp fehlten.
Ich habe dann nachgeschaut und tatsächlich waren diese (und wenige andere) Pakete deinstalliert. Ich habe sie neu installiert und danach funktionierte die Kanal-/Profilerstellung wieder. Die beiden Warteschlangen wuchsen aber weiter (habe sie ab und an per Hand in der DB geleert)... und es wurde noch immer nichts föderiert.
Mario fragte dann nach dem Hubzilla-Log, weil ihm ein Fehler, der nichts mit den fehlenden Paketen zu tun hatte, aufgefallen war. In der Logdatei hätte man schauen können, beim Aufruf mit welcher URL das Problem auftritt. Leider hatte ich die Erzeugung dieser Logdatei gar nicht eingeschaltet. Ich habe es nachgeholt und nach einiger Zeit trat der Fehler immer wieder auf. Und es handelte sich dabei immer bei Aktionen, die einen bestimmten Kanal betreffen. Und nur diesen!
Ich hatte ja, als ich die Probleme mit der Kanalerstellung festgestelt hatte, temporär die Registrierung abgeschaltet. Aber die Probleme bestanden halt schon eine Zeit lang. Und genau in diesem Zeitraum hatte sich ein Nutzer registriert und vergeblich versucht, sich einen Kanal anzulegen. Der Kanal bestand in der Datenbank, war aber fehlerhaft, weil es dazu kein Profil gab. Der Nutzer, der sich registrierte, hatte das übrigens getan, weil ich es auf meinem (streams) Hub allen dortigen Nutzern empfohlen hatte (weil ich den Hub zum Monatsende schließe).
Da der Kanal ohnhin nicht nutzbar war, habe ich ihn gelöscht. Anschließend habe ich beide Warteschlangen in der DB auch noch einmal komplett entleert... und nun läuft alles wieder wie gewohnt. Queueworker ist i.d.R. bei Null Items und die Warteschlange bewegt sich in üblichen Grenzen. Vor allem aber werden nun Beiträge von Whoville aus wieder föderiert, also im Fediverse verteilt.
Ein fehlerhafter Kanal auf einem Hub kann also dafür sorgen, dass der gesamte Ausgang eines Hubs unterbunden wird.
Aber noch etwas Ursachenforschung: Wie kam es denn nun zur eigentlichen Ursache der Probleme, nämlich dem Löschen der Pakete? Ich habe heute in die YH-Logs geschaut und habe festgestellt, dass die Deinstallation von Forgejo diese Pakete "ungefragt" auch entfernt hat. Und das, obwohl ich sie selbst per Hand explizit installiert hatte. Ist mir unerklärlich. Ich hatte, als das Problem noch in Gänze bestand, ja kurz mal daran gedacht, dass es an der Forgejo-Deinstallation liegen könnte. Daraufhin habe ich Forgejo nochmal neu als App installiert. Da wueden die entfernten Pakete aber eben gar nicht installiert. Also scheint Forgejo die Pakete nicht zu benötigen, nicht zu installieren... also sollte es bei Deinstallation die Pakte nicht deinstallieren.
Also: Vorsicht, wenn Ihr Apps bei YH deinstalliert. Das könnte händisch installierte Pakete mitreißen.
An dieser Stelle ein großes Dankeschön an @
Mario Vavti und @
Grouchy für die kompetente Hife und die "Schubser", die mich auf die Fehleraufmerksam gemacht haben.
#
hubzilla #
support