Zum Inhalt springen

← Alle Beiträge

Release

Fünfzehn Dinge, die jetzt stimmen

SicherheitFehlerbehebungMedienserver

Behoben

  • **Passwörter ließen sich über zwei Adressen durchprobieren, die keine Anmeldung brauchen.** Die Anmeldebremse kannte drei Türen, an denen ein Passwort geprüft wird. Es gab eine vierte: das erneute Verschicken der Bestätigungsmail und das Korrigieren einer unbestätigten Adresse. Nachgemessen: hundert falsche Passwörter, hundertmal abgelehnt, kein einziges Mal gebremst, und die Antwort verriet, wann ein Versuch richtig war. Wer Nexview im Netz erreichen konnte, konnte für jedes Konto Passwörter durchprobieren, auch für das des Betreibers, ohne selbst eines zu haben.
  • Zugangsschlüssel überlebten „Überall abmelden". Sie nehmen einen zweiten Weg durch die Anmeldung, der nie gefragt hat, ob die Sitzung noch gilt. Wem der Laptop gestohlen wurde, der sperrte den Dieb aus den Sitzungen aus, aber nicht aus den Schlüsseln. „Überall abmelden" zieht sie jetzt mit ein und sagt das vorher; ein gewöhnlicher Passwortwechsel lässt sie in Ruhe und zeigt, wo man sie widerruft.
  • **Ein langsames Jellyfin oder Emby verliert nicht mehr den ganzen Bibliotheks-Abgleich.** Jede Abfrage an einen Medienserver hatte fünfzehn Sekunden, gleich wonach sie fragte. Eine Bibliothek, die groß genug ist, oder ein Server, der langsam genug ist, riss diese Grenze. Und weil ein einziges gerissenes Häppchen den ganzen Durchlauf mitnimmt, stand danach nicht „halb fertig" in der Karte, sondern „Noch nicht abgeglichen". Die Zeitgrenze ist jetzt keine feste Zahl mehr. Eine größere wäre dieselbe Falle einen Schritt weiter hinten gewesen: Es gibt immer eine größere Bibliothek und einen langsameren Server. Nexview fragt stattdessen in Häppchen, deren Größe **der Server bestimmt**: Was die Zeit reißt, wird halbiert und dieselbe Stelle erneut gefragt, und was durchgeht, gilt für den Rest des Durchlaufs. Eine doppelt so große Bibliothek braucht doppelt so viele Häppchen, aber jedes einzelne passt. Einzustellen gibt es nichts. Gemeldet wurde es für Jellyfin, während Emby auf derselben Installation lief. Beide laufen durch denselben Code, Emby ist technisch Jellyfins jüngerer Bruder; der Jellyfin-Server war schlicht der langsamere von beiden.
  • Ein stiller Radarr löschte die ganze Speicher-Abrechnung. Keine Antwort hieß keine Titel, und alles, was die Instanz gemeldet hätte, galt als weg. Nachgemessen: die Belegung fiel von 28 GB auf 20, das Haus von 2 GB auf 0, und weil die Zeilen gelöscht wurden, waren Löschfristen und Freigaben endgültig verloren. Es gilt jetzt dieselbe Regel wie beim Status-Abgleich: keine Antwort ist kein Nein.
  • **Mehrere Qualitätsprofile auf einmal aufzuräumen vergaß bei allen den Besitzvermerk**, auch bei denen, die die Instanz gar nicht löschen wollte. Die blieben in Radarr und galten hier als fremd.
  • Sechzehn Fehlermeldungen kamen bei jedem auf Deutsch an, gleich welche Sprache er eingestellt hatte, darunter ausgerechnet der allererste Kontakt mit Nexview: ein abgelaufener Einladungslink. Sie sind jetzt alle benannt, sodass die Oberfläche sie in der Sprache des Lesers sagen kann; der deutsche Satz bleibt als Rückfall. Die Zeitüberschreitungen der Medienserver sind in dieser Fassung dazugekommen.
  • Ein Freigeber wurde auf neues Feedback hingewiesen und konnte es dann nicht lesen. Die Glocke führte auf eine Adresse, die einen Administrator verlangte, und die Seite sagte „es gibt kein unbeantwortetes Feedback". Lesen dürfen Freigeber jetzt, antworten weiterhin nicht.
  • Drei Seiten zeigten ihren Leertext, wenn das Laden fehlgeschlagen war: die eigenen Anfragen, „Mag ich" und die Wünsche eines Kindes. Wer zwölf laufende Anfragen hatte, las „du hast noch nichts angefragt".
  • Die Glocke schickte zwei Arten von Benachrichtigung auf die falsche Seite. Wohin ein Klick führt, stand an zwei Stellen, die sich uneinig waren; jetzt gibt es eine Liste, und sie deckt alle 26 Arten ab, ohne Rückfall.
  • Ein Absturz beim Zeichnen räumte die ganze Oberfläche ab, Navigation eingeschlossen. Der wahrscheinlichste Auslöser ist ein Update mit einem offen gebliebenen Reiter. Jetzt steht dort ein Netz, mit genau einem sichtbaren Ausgang.
  • Das Herz und der Papierkorb schluckten jeden fehlgeschlagenen Klick. Sie melden es jetzt selbst, dort wo das Auge ohnehin ist, und ein Vorleseprogramm sagt es mit. Das Löschen aus der Aufräumliste scheiterte aus demselben Grund lautlos.
  • Ein Kind bekam den technischen Text von TMDB zu lesen. Der Grund geht jetzt ins Protokoll.
  • **Ein Verweis auf einen bedingten Unterreiter der Einstellungen landete immer auf „Allgemein".** Beim ersten Zeichnen ist die Konfiguration noch nicht geladen, also fiel jeder Unterreiter mit einer Bedingung aus der sichtbaren Liste, und der Rückfall sprang weg, bevor die Konfiguration da war. ?unter=radarr funktionierte weiter, genau das verdeckte die Ursache.
  • „Bibliothek berührt" zeigte „0 %" über „2 von 0 Titeln". Ohne Bestand ist der Anteil nicht null, sondern unbekannt, und ein Strich sagt das, wo eine Null etwas behauptet.
  • Die Gesundheitsprüfung in docker-compose.yml übersah NEXVIEW_PORT, sodass unsere eigene Anleitung zu einem Container führte, der läuft und trotzdem als ungesund gilt. Und ESLint prüfte erzeugte Ausgabe und schlug deshalb immer fehl.

Unter der Haube

  • Sicherungen werden jetzt danach geprüft, was im Datenverzeichnis liegt, nicht nach einer Liste von Teilen, an die jemand gedacht hat. data/trash/ hätte unbemerkt verschwinden können: Es war nicht vergessen worden, es war nie danach gefragt worden. Jeder Name ist nun entweder im Archiv oder mit einer aufgeschriebenen Begründung draußen.
  • Fünf neue Wächter, jeder gegen eine Mutation erprobt: dass jedes wörtliche t('a.b') in beiden Sprachen existiert (2.204 Schlüssel), dass keine neue Fehlerantwort ohne Kennung dazukommt, dass alle 26 Benachrichtigungsarten wissen, wohin ihr Klick führt, dass das v1-Versprechen auch verschachtelte Felder deckt (252 statt nur der obersten Ebene), und dass ein Medienserver, der nur auf kleine Abfragen antwortet, trotzdem jeden Titel liefert.

Danke

  • @ldoctoru für die Meldung von #7, mit zwei Bildschirmfotos und einem Protokollausschnitt. Genau das hat aus „Jellyfin gleicht nicht ab" etwas gemacht, das sich nachmessen ließ: Die Karte sagte „Noch nicht abgeglichen", und im Protokoll stand dreimal 502 in 15011ms, dieselbe Zahl bei jedem Versuch, und damit unsere eigene Uhr und nicht die des Servers. Wenn dir etwas auffällt, mach bitte ein Issue auf. So wird diese Liste kürzer.