martinmuc, to random German
@martinmuc@muenchen.social avatar

+++Wartungsarbeiten+++

Am Samstag werden wir gegen 16:00 Uhr beginnen, die Mastodon instanzen troet.cafe & muenchen.social gegen die kürzlich bekannte Sicherheitslücke zu patchen.

Wir werden mit muenchen.social beginnen und im Anschluss das troet.cafe patchen.

Es kann währenddessen zu kurzen Serviceunterbrechungen kommen.

Mit "wir" sind @ErikUden, @freestyle und weitere im Team um Erik
und meiner Wenigkeit gemeint.

ErikUden, (edited ) to random

Eine E-Mail. 40.000 Accounts gerettet. Was ein Tag. ✉️

ErikUden,

Troet.Cafe & Muenchen.Social — 004

[Lest auch Martin's Ankündigung]

Die Updates um die momentanen Sicherheitslücken zu schließen werden wir versuchen Morgen, Samstag den 03.02.2024 um 16:00 - 18:00 Uhr einzuspielen. Von v4.1.9 auf v4.1.13, Version für Version. Für diesen Zeitraum können troet.cafe und muenchen.social offline sein. Nach diesem Zeitraum gibt es das Sicherheitsproblem hoffentlich nicht mehr und niemand muss sich um seinen Account, sowie die Sicherheit seiner Daten, Sorgen machen.

Martin, Nick, und Ich haben soeben gemeinsam in einem Telefonat herausgefunden ob diese Version 4.1.13 weiterhin kompatibel mit der problematischen Datenbank ist (das ist sie), weshalb uns wahrscheinlich das Update erleichtert wird. Das Problem in der Vergangenheit waren Fehler beim Updaten der Datenbank, da wir diese hierbei nicht Updaten müssen, bleibt uns einiges an Arbeit hoffentlich erspart. Wir haben einen Plan überlegt wie wir das ganze angehen werden und alle Eventualitäten durchdacht, es ist also möglich, dass Dinge dennoch schiefgehen, doch auch dafür haben wir einen Plan B.

Dies wird das erste Mal sein das wir zusammen arbeiten, was, auch wenn es nicht ganz in dem Rahmen geschieht in den Ich es mir gewünscht hätte, zur Wissensweitergabe sowie nachhaltigen Aufgabenverteilung und Wissensaufbereitung führt. Zum Beispiel erstellen wir zeitgleich mit der Updatedurchführung eine sogenannte „Documentation” / Dokumentation. Diese erklärt sehr ausführlich alles vom Aufbau der Instanz und Server. So könnten zukünftig Menschen, die noch nie an der Instanz gearbeitet haben, uns dennoch helfen und es würde weitaus weniger Abhängigkeit von einzelnen Personen existieren. Das Wissen bleibt erhalten und aufbewahrt, kein Druck und Stress liegt auf einer Person mehr, so das Ziel.

Da Martin bisher alles alleine gemacht hat haben wir bisher keine Ahnung wie die Server funktionieren oder aufgebaut sind. Jede Person hat da so deren Art Dinge zu tun; als Fremde dort einzusteigen wäre sehr schwierig und wir würden wahrscheinlich dennoch oft auf Martin's Hilfe zurückgreifen müssen, selbst wenn wir es „alleine” versuchen würden. Deshalb muss der erste Termin einer sein der Martin passt, ggf. auch der Zweite, wahrscheinlich auch der Dritte! Jedes Mal heißt aber weniger Arbeit für und Abhängigkeit von Martin. Jedes weitere Mal bedeutet immer größere Aufgaben die wir übernehmen können und er nicht mehr beachten muss.

Auch wenn es aus einer Notlage heraus ist freue Ich mich auf die Zeit morgen mit Martin und Nick, denn dann beginnt der erste Schritt dieses eigentlich sehr schönen Prozesses! ❤️ :coffefied:

ErikUden, (edited )

Troet.Cafe & Muenchen.Social — 005

[Lest auch Martin's Ankündigung]

Wir haben muenchen.social und mit etwas Überzug troet.cafe nach 18:00 Uhr erfolgreich auf Version 4.1.13 ge-updated! Die Sicherheitslücke ist somit gelöst, niemand muss sich mehr um dessen Account Sorgen machen!

Nicht nur ist alles reibungslos gelaufen, sondern haben Nick, Emily, und Ich in diesem 3 Stunden Meeting gelernt wie die Infrastruktur von troet.cafe sowie muenchen.social aufgebaut ist und könnten somit zukünftig solche Updates selbst machen. Zeitgleich haben wir angefangen eine Dokumentation zu schreiben welche die Wissensweitergabe auch nachhaltig versichert.

Auch wenn es sehr kurzfristig zusammengekommen ist, war es ein massiver Erfolg! :ablobcatheartsqueeze:

ErikUden, (edited )

Troet.Cafe & Muenchen.Social — 006

[Lest vor allem Martin's Ankündigung]

Es gibt gleich zwei neue Versionen (v4.1.14 & v4.1.15) wegen zwei neuen Sicherheitslücken! Dieses Mal haben wir nicht lange gewartet und wenige Stunden nach der Veröffentlichung schon alles up-to-date gehabt.

Mit „wir” meine Ich dieses Mal komplett alleine Martin @martinmuc und Nick @freestyle! Ich habe kein bisschen geholfen, also geht jeglicher Lob an sie!

Naja, die anderen Male saß Ich auch nur daneben und sah bestenfalls schön aus, aber dieses Mal kann man nicht mal das behaupten! Haha. Aber Spaß beiseite, die beiden haben immer super Arbeit geleistet – zudem können Nick und Ich jetzt unabhängig Updates auf troet.cafe und muenchen.social machen, heißt es hängt nicht mehr alles alleinig von Martin ab :ablobcatheartsqueeze:

Das nimmt ihm natürlich viel Stress und erlaubt es uns die Last aufzuteilen!

Im Gegenzug habe Ich mich, nachdem mich Martin drauf aufmerksam machte, seit dem gestrigen Morgen bis heute darum gekümmert die Spam-Welle einzudämmen und alle anderen Admins zu informieren wie dies am besten geht!

Ich bitte zudem um aufrichtige Entschuldigung bei allen Instanzen die auch von uns aus Spam erfahren mussten - es hat Zeit gebraucht das Problem zu erkennen, von uns aus zu lösen, und dann so nachhaltig zu lösen das auch unsere User nicht mehr betroffen waren.
Deshalb muss Ich auch @FanCityKnits und @catflyhigh als Café-Helfer:Innen des Monats auszeichnen für die tolle Report-Arbeit über die wir live genau erkennen konnten von wo der Spam kam. Ohne euch wäre der heutige Tag weitaus stressiger gewesen! :ablobcatheartsqueeze:

❤️ DANKE AN EUCH! ❤️

ErikUden, (edited )

Troet.Cafe und Muenchen.Social — 007

Eine lange Sendepause... wurde troet.cafe und muenchen.social nun aufgegeben? Nein! Wir haben mehr denn je im Hintergrund gearbeitet und endlich ein Datum für das Beheben aller Fehler auf beiden Plattformen festgelegt:

📅 11. Mai & 12. Mai 2024
🕛 08:00 — 22:00 Uhr
📍 Eine Instanz in deiner Nähe

Das wird das Wochenende sein an dem wir troet.cafe und muenchen.social mit den neusten Servern, neusten Sicherheitsstandards und natürlich auch neuster Mastodon-Version neu-aufsetzen. Selbstverständlich bleiben alle Beiträge und Accounts erhalten. Sobald wir wieder online gehen ist alles so wie zuvor, nur mit den neusten Features und Design!

Wir haben Wege gefunden so viel Arbeit wie möglich von Martin abzunehmen, arbeiten als Trio recht gut zusammen und haben einen Plan für die zukünftige geteilte Administration der Plattform, damit so ein Rückstand nie wieder aufkommen kann! Das ist gar keine Kritik an Martin, keineswegs, Ich bin eher erstaunt das es für über 6 Jahre als one-man-show ohne Probleme funktioniert hat. Facebook hatte nach 6 Jahren 1.218 vollzeitbeschäftigte Mitarbeitende, nur so...

Für Zukunftspläne ein Geheimnis: 💻♻️🫂 ;)

Wie Ich anfangs gesagt habe: diese Aufgabe ist keine Operation die eine Nacht lang geht, sondern ein Marathon. Wir haben dieses Jahr schon viele Eckdaten geplant und realistische Ziele gesetzt und werden euch so gut es geht bei Laune halten!

Selbstverständlich werdet ihr nochmal vor dem Wochenende benachrichtigt, denn es wird während des Zeitraums Momente geben in denen diese Mastodon Server nicht erreichbar sind, oder andere Probleme aufkommen. Es kann auch sein das für diese zwei Tage der Dienst vollkommen eingestellt bleibt, was wir natürlich versuchen werden so gut es geht zu vermeiden.

Mein, oder eher unser Ziel ist es, Troet.Cafe und Muenchen.Social in der Funktionsweise, die Dinge die Menschen lieben und für die sie auf die Plattformen gekommen sind, darunter auch die Leitung von Martin, niemals zu ändern, jedoch strukturelle Änderungen in der Administration und Moderation vorzunehmen, durch das diese Plattformen langfristig funktionieren können.

Das erhoffen wir mit euch zusammen zu erreichen! ❤️ 🎉

ErikUden,

Troet.Cafe und Muenchen.Social — 007.5

Kleine Änderung: wir mussten aus persönlichen Gründen das Datum um eine Woche nach hinten verschieben. Am 11. und 12. Mai finden nun die großen Umbauten an muenchen.social und troet.cafe statt! Danke für euer Verständnis :ablobcatheartsqueeze:

ErikUden,

Troet.Cafe und Muenchen.Social — 008

Es geht los! Viel Durchhaltevermögen troet.cafe und muenchen.social!

Der Exakte Plan

​01. Exakt gleichen Datenbank Cloud-Server bestellen wie für troet.cafe und muenchen.social. (CPX31 | x86 | 160 GB | eu-central)

​02. Alle muenchen.social Server herunterfahren.

​03. Die Datenbank vom muenchen.social Datenbankserver exportieren und zum neuen Cloud-Server übertragen.

​04. Alle muenchen.social Server wieder hochfahren.

​05. Postgresql auf der neusten (mit Mastodon kompatiblen) Version auf dem neuen Datenbank-Server aufsetzen.

​06. Einen Weg finden den Datenbank-Export von muenchen.social zu importieren.

​07. Alle Server wieder herunterfahren.

​08. Schritte 1-5 wiederholen.

​09. Den gefundenen, funktionierenden Weg in Echt mit der Live-Datenbank durchführen ohne die alten muenchen.social Server wieder hochzufahren.

​10. muenchen.social Web- und Worker-Server umstellen um mit neuer Datenbank zu funktionieren.

​11. muenchen.social Web- und Worker-Server auf neuste Mastodon Version updaten.

​12. All das mit troet.cafe wiederholen.

Antwortet gerne auf diesen Beitrag wenn ihr Hilfe zum Thema postgresql Datenbanken (Umstellung des Datenbank-Schemas) anbieten könnt, dann melden wir uns bei euch direkt wenn wir nicht weiterkommen!

Halt stand, troet.cafe!

ErikUden,

Troet.Cafe und Muenchen.Social — 008.1

Kleine Zwischenbilanz: Wir stecken bei Schritt 6 fest! Wir haben ein paar Probleme beim Importieren der Datenbank und bekommen ständig neue Fehlermeldungen. Wir haben eine interne Gruppe gegründet mit einigen Menschen die sich mit Postgresql auskennen und ihre Hilfe angeboten haben. Wir werden vielleicht gleich eine ganz andere Herangehensweise versuchen.

Es wird in diesem Abschnitt sehr technisch, deshalb entschuldigt wenn dies wenig für die normalen User ist für welche diese Plattform natürlich auch / eher gedacht ist!

Wir haben diese Nacht einen Datenbank-Export von troet.cafe angefertigt, einfach ein psql dump von dem psql-server auf der Version 10.23! Diesen zu importieren in eine leere Datenbank (psql Version 15) wirft viele Fehler auf. Die originale Datenbank von troet.cafe ist 99GB, die resultierende Datenbank nach dem Import nur noch 44GB. Also läuft irgendwas sehr schief. Die einzigen Fehlermeldungen bezogen sich auf ein „foreign key constraint”.

Wir hatten es auch mit einer Datenbank der gleichen Version versucht, doch das hat umso mehr Fehler aufgeworfen.

Wir haben daraufhin versucht das Schema der Datenbank nur zu importieren aus dem bereits existierenden dump, wobei jedoch auch 5 Fehler auftreten.

Als wir jedoch das Datenbank-Schema einzeln exportieren und einzeln importierten funktionierte dies ohne Fehler!

Nun importierten wir nur die Daten und bekamen dabei wieder hunderte Fehler mit „foreign key constraint”. Die resultierende Datenbank war lediglich 33GB. Foreign key constraints verstehe Ich so, dass sie die Integrität einer Datenbank wahren. Wenn also ein Eintrag in einer Datenbank irgendwo erwähnt wird, dieser jedoch nicht existiert, dann läuft irgendwas schief. Sowas kann zum Beispiel passieren wenn man auf Mastodon einen Beitrag favorisiert, dieser Beitrag jedoch gelöscht wird. In der Liste von favorisierten Beiträgen eines Users steht dann zwar noch der Beitrag eingetragen, doch in Echt ist er gelöscht. Durch normal auftretende Fehler können solche Ungereimtheiten in der Datenbank sich verhäufen. Doch in unserem Fall scheint irgendwas beim Import groß schief zu laufen, da Ich nicht erwarte das ⅔ der Datenbank nur Fehler sind!

Es könnte möglich sein das selbst schon beim Exportieren (dump) der Datenbank Fehler auftreten, um sicherzustellen, dass dem nicht der Fall ist, machen wir folgendes:

Unsere jetzige beste Idee ist nochmal einen psql-Server der Version 10.23 aufzusetzen und daraufhin den originalen Ordner von der troet.cafe Datenbank (var/lib/psql/10/.) in eine Zip zu tun (dafür müsste troet.cafe heruntergefahren werden). Diese Zip wird übertragen auf den neuen Server und dort eingespielt, so haben wir einen postgresql Server mit allen Fehlern der originalen Datenbank und können re-index sowie repair Befehle ausführen um die Datenbank zu reparieren und Ungereimtheiten wie diese zu entfernen. Dies live an der troet.cafe Instanz zu machen wäre zu gefährlich.

Wenn diese Fehlerbehebungsmaßnahmen erfolgreich sind versuchen wir weitere Dinge wie:

  • Die Datenbank exportieren und importieren und gucken oh Fehler auftreten.
  • Das Upgraden auf höhere Versionen von psql.

Wenn dies erfolgreich ist und die daraus resultierenden Datenbanken keine Fehler mehr haben, dann ist jedes zukünftige Update leicht!

Wer mithelfen will / Erfahrung mit Datenbanken hat schreibt mich gerne auf Matrix an und kann Teil der Gruppe werden welche gerade daran arbeitet das Problem zu lösen!

Euer Team TroetCafe ❤️

ErikUden,

Troet.Cafe und Muenchen.Social — 008.2

Entschuldigt das fehlende Update von Gestern! Es ist sehr spät geworden und Ich wollte nach 22:00 Uhr eigentlich nur noch schlafen :blobcatgooglyholdingitsheadinitshands:

Wir haben es tatsächlich geschafft! Wir haben noch keinen echten Transfer der Datenbank gemacht, jedoch haben wir mit einer Kopie der Datenbank eine erfolgreiche Migration ohne Datenverlust durchgeführt.

Alles was wir heute machen müssen ist es diese Schritte zu wiederholen währenddessen das troet.cafe heruntergefahren bleibt und zum Schluss alles auf den neuen Datenbank-Server umzustellen!

Der gestrige Tag war voll mit falschen Fehlermeldungen, Trugschlüssen, und ein Tappen im Dunkeln! Wir haben um die 50 unterschiedliche Methoden probiert und hätten noch viel mehr tun können. Letztendlich alle Fehlermeldungen an der Datenbank zu verstehen, diese in jedem Fall auf ihre Besonderheit runterzubrechen, und dann zu verstehen wo der Fehler wirklich ist, hat uns zum „Erfolg” gebracht! Auch wenn Martin bereits sehr glücklich war gibt es noch keinen Grund zu feiern, erst wenn wir das ganze in Echt durchgeführt haben!

Ein Beispiel eines solchen Trugschlusses war die unterschiedliche Größe der Datenbank nach dem Importieren. Auf troet.cafe ist die Datenbank 99GB, auf unserem Server war sie nur 33GB, dabei hatte dies einen anderen Grund. Wir dachten viele Daten waren verloren und versuchten einen Fehler zu finden wo gar keiner war! Im Nachhinein realisierten wir dann, dass wir die Lösung schon lange hatten.

Die Datenbanksoftware belügte uns auch zwischenzeitlich über die Anzahl der gespeicherten Beiträge! Das war echt witzig.

Eine vollständige Erklärung der zwei Fehler wird es demnächst geben — fürs erste ist hier der exakte Schritt für Schritt Weg, den Ich aus meinem ~40.000 Zeichen Protokoll des gestrigen Tages, herausgearbeitet habe, als das was wir tatsächlich mache müssen:

​​1. Troet.Cafe herunterfahren

​2. Datenbank-Dump erstellen und Server offline lassen.

​3. Datenbank-Schema-Clear-Text-Dump erstellen und Server offline lassen.

​4. Beides auf neuen Server übertragen auf dem eine psql Datenbank der Version 15.7 eingerichtet ist.

​5. Das clear-text Datenbank-Schema so editieren, dass „CREATE UNIQUE INDEX [...]” für index_preview_cards_on_url auskommentiert ist.

​6. Das clear-text Datenbank-Schema importieren mit folgenden Befehl:

pg_restore -p 5432 -Fc -v -c --if-exists -U mastodon -n public --no-owner --role=mastodon -d mastodon_production /backup/mastodon_production-schema.sql

​7. Den Mastodon Postgresql-User zum Superuser benennen mit folgenden Befehl:

ALTER USER mastodon WITH SUPERUSER; (als postgres User innerhalb von psql auszuführen)

​8. Die Datenbank-Dump-Daten importieren als Superuser mit der Flag --disable-triggers

pg_restore -p 5432 -j 16 -Fc -a -v -U mastodon -n public --no-owner --role=mastodon --disable-triggers -d mastodon_production /backup/mastodon_production_2024-05-11.sql

​9. Den Index (außer den von index_preview_cards_on_url) neu aufbauen mit folgenden Befehl:

REINDEX database mastodon_production;

​10. Den Mastodon Postgresql-User die Superuser-Rechte entfernen.

ALTER USER mastodon WITH NOSUPERUSER

​11. Die Service- und Worker-Server auf den neuen Datenbankserver umstellen.

​12. Folgenden tootctl Befehl von einen der Service- oder Worker-Server zur Lösung von Index-Korruption ausführen:

RAILS_ENV=production bin/tootctl maintenance fix-duplicates

(In der Zukunft nach jedem Datenbank-Update den REINDEX Befehl aus Punkt 9 verwenden um dieses Problem zu vermeiden.)

​13. Troet.Cafe wieder hochfahren und alles läuft wie vorher nur besser und auf einer neuen Version!

Dies ist ein klarer Schritt für Schritt Weg wie wir die Datenbank heute retten — wenn diese Hürde überwunden ist dann wird jedes Update und jede Migration in der Zukunft extrem einfach!

ErikUden,

Troet.Cafe und Muenchen.Social — 008.3

Wir werden jetzt das troet.cafe herunterfahren! Postet bitte heute keine Lebensnotwendigen Informationen, denn es kann sein das wir wieder zurückgehen müssen falls doch etwas schief läuft!

Wenn troet.cafe wieder online geht tobt herum und meldet alle Fehler (falls welche auftreten) denn dann haben wir noch die Möglichkeit alles rückgängig zu machen. Wir führen jetzt einen smoke test durch! :blobcatmeltlove:

Halt stand, troet.cafe!

ErikUden,

Troet.Cafe und Muenchen.Social — 008.4

Es läuft alles super. Alle Daten sind bisher perfekt übertragen worden. Unser Plan geht also auf — ein letzter Fix wird angestrebt und die alten Server auf die neue Datenbank umgestellt! Das schwierigste ist (glaube Ich) geschafft!

ErikUden,

Troet.Cafe und Muenchen.Social — 008.5

Ach, wäre es nur so geblieben! Wir haben alles so grandios lösen können, doch das Problem das wir Gestern noch als so leicht angesehen haben stellte sich heute als eine Meisterleistung heraus:

Wir haben ~19.000.000 Einträge für link-previews (kleine Vorschau-Texte und Bilder wenn man einen Link zu einem Beitrag einfügt) in einer Tabelle der Datenbank, für diese ein Index zu erstellen ist ab v12 von Postgresql nicht mehr möglich dank einer Reduzierung der maximalen Indexgröße. Mastodon hat einen maintenance Task eingebaut welcher dieses Problem über das Entfernen duplizierter Einträge lösen soll, doch...

Aus irgendeinem uns nicht erklärlichen Grund gibt sich die Datenbank als eine höhere Version aus. Die Datenbank behauptet selbst sie benutzt ein Schema welches erst bei Mastodon 4.2.0 angewandt wurde (wir sind auf 4.1.15), jedoch schauen wir manuell nach besitzt die Datenbank einige Tabellen nicht welche sie bei dieser Version bereits haben sollte. Sie gibt sich als etwas aus das sie nicht ist. Die Maintenance-Skripte der alten Mastodon-Version, welche offiziell nicht für die identifizierte Version gemacht sind, funktionieren nicht.

Wir testen einen der vielen troet.cafe Server und machen dort (ohne das die Instanz wieder online geht) einen Upgrade-Versuch auf 4.2.0. Dort sollten die Maintenance-Skripte funktionieren, es kann jedoch sein das sie es nicht tun.

All das um einen Index zu erzeugen der viel zu groß geworden ist! Alle Daten, Bilder, Accounts, Passwörter usw. sind perfekt, reibungslos und sicher übertragen, das, so dachten wir Gestern, war die schwere Aufgabe. Doch die kleine Vorschau der Webseite wenn man einen Link beifügt, diese fehlt.

Nein, wir können sie leider nicht einfach weglassen, auch wenn der Datensatz irrelevant ist funktioniert Mastodon wahrscheinlich nicht ohne sie.

Ich bin der festen Überzeugung das wir heute eine Lösung finden, jedoch hatte Ich nach Gestern eigentlich gedacht die Lösung sei schon längst in unseren Händen!

Das troet.cafe hält stand, keine Sorge! :blobcatmeltlove:

PS: Selbst wenn alles den Bach runtergehen würde ist nichts verloren. Wir haben tausendfach Backups und würden den Betrieb einfach so weitermachen wie zuvor. Wir sind schonmal definitiv schlauer geworden, nur noch nicht schlau genug.

ErikUden,

Troet.Cafe und Muenchen.Social — 008.6

Okay, wow. Wir haben es geschafft. Ich würde Lügen wenn Ich sage das Ich alles verstehe was unsere nun große Gruppe an Helfenden herausgefunden hat, doch die Datenbank ist hergestellt, das Troet.Cafe auf die neuste Version von 4.2.8 ge-updated und wir machen soeben die finalen Tests um alles wieder hochzufahren. Heute Abend bricht ein neues Zeitalter für troet.cafe an!

ErikUden,

Troet.Cafe und Muenchen.Social — 008.7

Troet.Cafe ist online auf der neusten Version (4.2.8). Schaut alle ob es irgendwo Probleme gibt! Wenn irgendwas nicht läuft, meldet es sofort - dies ist ein smoke test!

ErikUden,

Troet.Cafe und Muenchen.Social — 008.8

Tag 1: 10 Stunden, 20 Minuten, 45 Sekunden.
Tag 2: 13 Stunden, 10 Minuten, 21 Sekunden.

All das war es wert, denn das troet.cafe bleibt bestehen!

  • All
  • Subscribed
  • Moderated
  • Favorites
  • provamag3
  • kavyap
  • DreamBathrooms
  • cisconetworking
  • magazineikmin
  • InstantRegret
  • Durango
  • thenastyranch
  • Youngstown
  • rosin
  • slotface
  • mdbf
  • khanakhh
  • tacticalgear
  • JUstTest
  • everett
  • modclub
  • Leos
  • cubers
  • ngwrru68w68
  • ethstaker
  • osvaldo12
  • GTA5RPClips
  • anitta
  • megavids
  • normalnudes
  • tester
  • lostlight
  • All magazines