friendica - Link zum Originalbeitrag

Guten Morgen !Friendica Support, seit gut zwei Tagen baut sich bei mir (Stable) die verzögerte Warteschlange langsam aber sich auf. Mittlerweile bin ich bei über 5000. Die normale Wartschlange hingegen arbeitet ganz normal.

Das Einzige, was mir auffällt, sind in den Logs eine Menge "Uncaught exception in worker method execution":
Friendica\Util\JsonLD::isValidObject(): Argument #1 ($data) must be of type array, false given, called in /var/www/html/src/Util/JsonLD.php on line 221

#0 /var/www/html/src/Util/JsonLD.php(221): Friendica\Util\JsonLD::isValidObject()
#1 /var/www/html/src/Model/APContact.php(219): Friendica\Util\JsonLD::compact()
#2 /var/www/html/src/Protocol/ActivityPub.php(163): Friendica\Model\APContact::getByURL()
#3 /var/www/html/src/Network/Probe.php(208): Friendica\Protocol\ActivityPub::probeProfile()
#4 /var/www/html/src/Model/Contact.php(2739): Friendica\Network\Probe::uri()
#5 /var/www/html/src/Worker/UpdateContact.php(34): Friendica\Model\Contact::updateFromProbe()
#6 [internal function]: Friendica\Worker\UpdateContact::execute()
#7 /var/www/html/src/Core/Worker.php(570): call_user_func_array()
#8 /var/www/html/src/Core/Worker.php(378): Friendica\Core\Worker::execFunction()
#9 /var/www/html/src/Core/Worker.php(112): Friendica\Core\Worker::execute()
#10 /var/www/html/src/Console/Worker.php(91): Friendica\Core\Worker::processQueue()
#11 /var/www/html/vendor/asika/simple-console/src/Console.php(86): Friendica\Console\Worker->doExecute()
#12 /var/www/html/src/Core/Console.php(177): Asika\SimpleConsole\Console->execute()
#13 /var/www/html/vendor/asika/simple-console/src/Console.php(86): Friendica\Core\Console->doExecute()
#14 /var/www/html/src/App.php(233): Asika\SimpleConsole\Console->execute()
#15 /var/www/html/bin/console.php(25): Friendica\App->processConsole()
#16 {main}

Hat von euch jemand Tipps wie ich dieses Problem lösen kann?

Als Antwort auf Tuxi ⁂

Wir hatten ein sehr ähnlich gelagertes Problem und haben dazu herausgefunden, dass der User-Agent gotosocial/0.22.1+git-fdff42b (+https://social.thingsandcode.com) und ein weiterer unsere Friendica-Instanz bzw. den gesamten Server sukzessive mehr und mehr geschwächt hat. Unter anderen füllte sich dadurch auch die verzögerte Warteschlange.

Zuerst haben wir via ufw die IP's gesperrt und danach in der .htaccess im Friendica-Verzeichnis unter RewriteEngine on folgenden Eintrag eingefügt:

# Problematischer GoToSocial-Build
RewriteCond %{HTTP_USER_AGENT} ^gotosocial/0\.22\.1\+git-fdff42b [NC]
RewriteRule ^(?:friendica|robots\.txt)$ - [F,L]

Danach normalisierte sich alles wieder. Die "Normalisierung" dauerte allerdings einige Stunden.

Friendica Support hat dies geteilt.

Als Antwort auf Tuxi ⁂

Nein, dann ist es dieser User-Agent bei dir nicht. Eventuell etwas ähnliches? Ich habe unsere Querelen lediglich als beispielhafte Systematik erläutert.

Derzeit vernehmen wir über alle unsere Webserver verstärke "Schädlinge" in Aktionen. Dabei können wir keine gleichen Vorgehensweisen bestätigen. Es ist immer wieder etwas anderes und wir sind gefordert die "Störquelle" immer weiter einzugrenzen, bis wir sie lokalisieren können.

Das ist zeitraubend und ärgerlich. Aber wir müssen reagieren. Wenn so ein Fehler, wie von dir beschrieben, von einem Moment auf den anderen einfach auftaucht, ohne vorherige Veränderungen (z.B.: durch Updates) liegt es nahe mit einer "Störquelle" / "Schädling" zu tun zu haben.

Friendica Support hat dies geteilt.

Als Antwort auf Tuxi ⁂

In der verzögerten Warteschlange sind unter anderen (bei uns) auch solche Einträge:

wall-new: 20727751: nrw.social/inbox: 4: {101140: 101422: 103654: 103656: 103657: 192159}: 12757612

Wenn du Stichproben auf die Erreichbarkeit machst, kannst du unter Umständen auch feststellen, dass einige Instanzen derzeit nicht wie gefordert erreichbar sind.

Friendica Support hat dies geteilt.

Als Antwort auf tom s

Ja, das habe ich mir für Munin selbst erstellt. Notwendig dafür ist die von Michael erstellte "stats". Sie ist via Browser aufrufbar (bei uns) unter:

https://friendica-deutschland.de/stats?key=strenggeheim

"strenggeheim" ist eine Zeichenfolge, die du speziell für dich erstellen solltest (unter: config/local.config.php).

'system' => [
...
'stats_key' => 'strenggeheim'
....
],

Mit diesen Daten konnte ich dann die Munin-Charts erstellen.
Mit einem Cron-Job rufe ich die stats regelmäßig neu ab, damit sich der Chart entwickeln kann.

Alles in allen etwas aufwendig, aber nützlich für einen groben Überblick.

Friendica Support hat dies geteilt.

Als Antwort auf Tuxi ⁂

Folgende Exceptions tauchen in den Logs auf. Ob das was damit zu tun haben kann?
2026-09-04T13:15:20Z worker [ERROR]: Uncaught exception in worker method execution {"class":"GuzzleHttp\\Psr7\\Exception\\MalformedUriException","message":"Invalid host: \"merveill\u0004s.town\"","code":0,"file":"/var/www/html/vendor/guzzlehttp/psr7/src/Uri.php:76","trace":"#0 /var/www/html/src/Worker/UpdateBlockedServers.php(28): GuzzleHttp\\Psr7\\Uri->__construct()\n#1 [internal function]: Friendica\\Worker\\UpdateBlockedServers::execute()\n#2 /var/www/html/src/Core/Worker.php(569): call_user_func_array()\n#3 /var/www/html/src/Core/Worker.php(377): Friendica\\Core\\Worker::execFunction()\n#4 /var/www/html/src/Core/Worker.php(111): Friendica\\Core\\Worker::execute()\n#5 /var/www/html/src/Console/Worker.php(87): Friendica\\Core\\Worker::processQueue()\n#6 /var/www/html/vendor/asika/simple-console/src/Console.php(86): Friendica\\Console\\Worker->doExecute()\n#7 /var/www/html/src/Core/Console.php(172): Asika\\SimpleConsole\\Console->execute()\n#8 /var/www/html/vendor/asika/simple-console/src/Console.php(86): Friendica\\Core\\Console->doExecute()\n#9 /var/www/html/src/App.php(233): Asika\\SimpleConsole\\Console->execute()\n#10 /var/www/html/bin/console.php(26): Friendica\\App->processConsole()\n#11 {main}","previous":"InvalidArgumentException: Invalid host: \"merveill\u0004s.town\" in /var/www/html/vendor/guzzlehttp/psr7/src/Uri.php:466\nStack trace:\n#0 /var/www/html/vendor/guzzlehttp/psr7/src/Uri.php(743): GuzzleHttp\\Psr7\\Uri::assertValidHost()\n#1 /var/www/html/vendor/guzzlehttp/psr7/src/Uri.php(667): GuzzleHttp\\Psr7\\Uri->filterHost()\n#2 /var/www/html/vendor/guzzlehttp/psr7/src/Uri.php(72): GuzzleHttp\\Psr7\\Uri->applyParts()\n#3 /var/www/html/src/Worker/UpdateBlockedServers.php(28): GuzzleHttp\\Psr7\\Uri->__construct()\n#4 [internal function]: Friendica\\Worker\\UpdateBlockedServers::execute()\n#5 /var/www/html/src/Core/Worker.php(569): call_user_func_array()\n#6 /var/www/html/src/Core/Worker.php(377): Friendica\\Core\\Worker::execFunction()\n#7 /var/www/html/src/Core/Worker.php(111): Friendica\\Core\\Worker::execute()\n#8 /var/www/html/src/Console/Worker.php(87): Friendica\\Core\\Worker::processQueue()\n#9 /var/www/html/vendor/asika/simple-console/src/Console.php(86): Friendica\\Console\\Worker->doExecute()\n#10 /var/www/html/src/Core/Console.php(172): Asika\\SimpleConsole\\Console->execute()\n#11 /var/www/html/vendor/asika/simple-console/src/Console.php(86): Friendica\\Core\\Console->doExecute()\n#12 /var/www/html/src/App.php(233): Asika\\SimpleConsole\\Console->execute()\n#13 /var/www/html/bin/console.php(26): Friendica\\App->processConsole()\n#14 {main}","worker_id":"cc72881","worker_cmd":"UpdateBlockedServers"} - {"file":"Worker.php","line":571,"function":"execFunction","request-id":"6a9ac4631d415","stack":"Worker::execFunction (571), Worker::execute (377), Worker::processQueue (111), Worker::doExecute (87), Console::execute (86), Console::doExecute (172), Console::execute (86), App::processConsole (233)","uid":"2a0fee","process_id":734921}
Als Antwort auf Tuxi ⁂

Sieht für mich eher nach einem separaten Problem aus. In der gespeicherten Server-URL steckt mit \u0004 ein ungültiges Steuerzeichen, deshalb bricht Guzzle beim Parsen ab.

Ich würde den betreffenden gserver-Eintrag prüfen, am besten auch mit HEX(url). Wichtig wäre noch zu sehen, ob UpdateBlockedServers bei so einem Eintrag komplett abbricht oder nur diesen Datensatz überspringt. Falls er komplett abbricht, könnte das zumindest die Wartungsarbeiten teilweise behindern.

Friendica Support hat dies geteilt.

Als Antwort auf Tuxi ⁂

Der Fehler entsteht im Friendica-Worker UpdateBlockedServers. Dieser Worker läuft als tägliche Wartungsaufgabe und geht die bekannten Server aus der gserver-Tabelle durch, um deren Blockierungsstatus neu zu bewerten.

\u0004 ist kein normales Zeichen, sondern das ASCII-Steuerzeichen EOT / End of Transmission, Bytewert 0x04.

Der String sieht also intern ungefähr so aus: merveill<0x04>s.town und nicht etwa wie ein regulärer Hostname.

Guzzle macht deshalb genau das Richtige und verweigert die URI.

Friendica Support hat dies geteilt.

Als Antwort auf Tuxi ⁂

@Tuxi ⁂

bei uns dasselbe:

bandwagon.fm - alle 5 Kontakte:

ID Name URL
876851 Jimmy Halliday bandwagon.fm/@68253...
876855 HYPNOSOVIET bandwagon.fm/@66b2a...
876866 Cucuy bandwagon.fm/@66b11...
876876 Bound To The Earth bandwagon.fm/@6862d...
876884 Atemptat Sonor bandwagon.fm/@67a1f...

Der Server liefert defekte/ungültige ActivityPub-Daten, die JsonLD::compact() zum Absturz bringen. Bei jedem Retry steigt retrial.

Schnell-"Lösung" bei uns: Serverblock und in mysql gelöscht.

$ bin/console serverblock add bandwagon.fm .
The domain pattern 'bandwagon.fm' is now blocked. (Reason: '.')

Als Antwort auf tom s

@tom s
Da ich nicht weitergekommen bin, habe ich die KI befragt.
Bei mir sind es tatsächlih auch Instanzen die aktuell Probleme haben.

Laut DB Abfrage sind das folgende:

+----------------------------+------+-------------+
| inbox_host                 | jobs | max_retrial |
+----------------------------+------+-------------+
| nrw.social                 | 2709 |          15 |
| mastodon-swiss.org         | 1151 |          15 |