Wer Grampshub in den vergangenen Tagen als träge erlebt hat, mit langsam ladenden Seiten und Hintergrundaufgaben, die weit länger als üblich brauchten, findet hier die Erklärung.
Ein automatisiertes Programm hat sehr viele Anfragen an einen selten genutzten Teil der Gramps-Web-Schnittstelle geschickt, und zwar so, dass jede einzelne Anfrage unnötig aufwendig war. Die Belastung des Datenbankservers, den sich alle Stammbäume teilen, hielt danach mehrere Tage an, bis ein Neustart der Datenbank am 21. September die aufgestaute Last beseitigt hat.
Inzwischen läuft alles wieder normal. Es sind keine Daten verloren gegangen, und Sie müssen nichts unternehmen. Durch die normale Nutzung von Grampshub konnte das nicht ausgelöst werden.
Gramps Web hat eine spezielle Funktion, mit der sich ein ganzer Stapel von Änderungen auf einmal übertragen lässt. Sie ist für das Addon Gramps Web Sync gedacht, das Gramps auf dem Desktop mit Gramps Web abgleicht. Die App im Browser verwendet sie nie.
Bei bestimmungsgemäßer Nutzung wird der aufwendigste Teil der Arbeit, die Aktualisierung des Suchindex, zurückgestellt und später erledigt. Das automatisierte Programm hat diesen Schritt ausgelassen, sodass jede Anfrage die gesamte Arbeit sofort erledigte und die Datenbank währenddessen beschäftigt hielt. Diese Anfragen kamen in einer großen Welle über Nacht, vermutlich von einem Skript oder KI-Agenten. Manche dauerten so lange, dass der Server sie mittendrin abbrach, und die Datenbank blieb auf unerledigter Arbeit sitzen, die sie nicht aufräumen konnte. Mit der Zeit wurde dadurch alles andere auf demselben Server langsamer.
Das am 20. September erschienene Update für Gramps Web API stellt die aufwendige Arbeit jetzt immer zurück, egal wie die Funktion aufgerufen wird. Die Art von Anfrage, die diese Probleme verursacht hat, ist damit so leichtgewichtig wie jede andere.
Auf Seiten von Grampshub bricht die Datenbank hängende Anfragen jetzt deutlich früher ab, sodass ein einzelnes fehlerhaftes Programm keine solche Last mehr aufbauen kann.
Ihre Daten auf Grampshub sollen zugänglich sein, und dazu gehört auch der Zugriff mit eigenen Skripten und KI-Agenten. Das wird nicht gesperrt. Die einzige Bitte: Automatisierte Werkzeuge sollten ihr Tempo drosseln. Ein Programm, das in einer engen Schleife läuft, betrifft alle auf dem Server, nicht nur das eigene Konto.
Betroffen war der Endpunkt /transactions/, ein Mechanismus zum Einspielen von Änderungen für Sync-Clients. Fehlte beim Aufruf das Argument background, aktualisierte er den Index der semantischen Suche innerhalb der Anfrage und hielt dabei eine Datenbanktransaktion offen. Gramps Web API 3.22.1 blockiert in diesem Fall nicht mehr (PR #990), und die Dokumentation beschreibt jetzt den Zweck des Endpunkts (PR #991).
Wer einen Client für die Gramps Web API entwickelt, sollte bitte einen aussagekräftigen User-Agent-Header mitsenden. So lässt sich ein gut funktionierender Client schnell ausschließen, wenn etwas Derartiges passiert. Mehr dazu steht in dieser Diskussion im Gramps-Forum (auf Englisch).
Vielen Dank an alle, die die Probleme gemeldet haben. Das hat die Suche nach der Ursache deutlich beschleunigt.