f35bfe1b8c
Deploy PROD / deploy (push) Successful in 26s
Kilka rzeczy w tej platformie zyje dluzej niz zadanie HTTP, ktore je uruchomilo: nagranie u dostawcy, wiadomosc w kolejce, podejscie do quizu, otwarta sesja obecnosci. Kazda moze utknac, a administrator nie mial jak sie o tym dowiedziec: w panelu widac skutek (brak nagrania, niewyslany mail), a nie przyczyne. POWSTALO PO REALNYM ZDARZENIU Nagranie zostalo osierocone, bo webinar usunieto w trakcie: wpis znikl kaskadowo z bazy, a zadanie u dostawcy nagrywalo dalej. Przegladarka Chrome po stronie Egress krecila sie KILKANASCIE GODZIN i zjadala jedna piata procesora na serwerze dzielonym z dwiema innymi aplikacjami. Zaden ekran tego nie pokazywal; wyszlo przypadkiem, przy sprawdzaniu czegos innego. Zadanie osierocone jest przy tym nie do zatrzymania zwyklymi srodkami: scheduler domykajacy nagrania szuka po NASZYCH wpisach, wiec czegos, czego w bazie nie ma, nigdy nie zobaczy. CO POKAZUJE Sekcje w kolejnosci waznosci: zadania osierocone (dzialaja u dostawcy, brak wpisu w bazie), nagrania w toku z oznaczeniem wiszacych po szesciu godzinach, kolejka wiadomosci QUEUED i FAILED wraz z trescia bledu, liczniki porzuconych podejsc do quizow i nieswiezych sesji obecnosci. Kazda pozycja ma akcje: zatrzymanie, usuniecie wpisu, ponowienie wysylki, reczne domkniecie. Zatrzymanie nagrania idzie po identyfikatorze U DOSTAWCY, a nie naszym: to jedyna droga do czegos, co po naszej stronie juz nie istnieje. Usuniecie wpisu najpierw probuje zatrzymac zadanie, dopiero potem kasuje: odwrotna kolejnosc zostawialaby dzialajace nagranie bez zadnego sladu, czyli dokladnie ten stan, ktoremu ten ekran ma zapobiegac. BLAD JEDNEJ SEKCJI NIE PRZEWRACA CALOSCI Odpytanie dostawcy idzie po sieci i bywa niedostepne. Wtedy pokazujemy ostrzezenie i informacje, ze lista osieroconych moze byc niepelna, a reszta ekranu dziala. Ekran diagnostyczny, ktory sam sie nie otwiera, jest bezuzyteczny dokladnie wtedy, gdy jest potrzebny. CZEGO TU NIE MA I NIE BEDZIE Procesow systemowych ani kontenerow Dockera. Backend nie ma dostepu do gniazda Dockera i to jest bariera bezpieczenstwa, nie przeoczenie: kto przejmie panel, przejalby caly serwer razem z aplikacjami stojacymi obok. Do zarzadzania kontenerami sluzy SSH. Ekran pokazuje wylacznie to, co aplikacja wie o sobie. Dostep wylacznie dla ADMIN, regula w `SecurityConfig` przed ogolna `/admin/**`: zatrzymanie zadania dotyczy calej instancji, takze cudzych webinarow, a moderator prowadzi spotkania, nie zarzadza infrastruktura. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>