PluginCatcher
Narzędzie deweloperskie do wykrywania błędów
- Dostępne pliki
- 1
- Obsługiwane wersje
- 0
- Najnowszy plik
- 11.05.2014
Uwaga: Ten plugin nie jest magicznym rozwiązaniem problemów.
PluginCatcher
PluginCatcher to narzędzie deweloperskie do wykrywania potencjalnych przyczyn awarii serwera opartych na wtyczkach. Jest to złożona wtyczka, która podczas działania będzie powodować niewielkie obniżenie wydajności serwera, aby wykryć ryzykowne zachowania wtyczek. Obecnie przede wszystkim wykrywa sytuacje, które mogą prowadzić do ConcurrentModificationException. Ważne, aby zauważyć, że ta wtyczka nie może wykryć wszystkich scenariuszy prowadzących do takich awarii, ale z pewnością może wykryć dużą ich liczbę.
Właściciele serwerów
Jeśli nie wiesz dokładnie, co to robi i dlaczego tu jesteś, odwróć się teraz. Lub skontaktuj się z mbaxterem ze swoimi raportami z awarii serwera, a on powie, czy to zadziała.
Programiści
Hej, Ty! Chcesz wykryć potencjalne przyczyny CME w swoich wtyczkach? Świetnie! Zaczynajmy.
Co może powodować CME?
Serwer Minecraft obsługuje prawie całą funkcjonalność na jednym wątku, którego nazwiemy głównym wątkiem. W związku z tym większość jego metod (a co za tym idzie, większość Bukkit API) nie została zaprojektowana do obsługi wywołań z innych wątków. Asynchroniczne wywołania wykonywane podczas iterowania po serwerze lub w inny sposób interakcji z wewnętrznymi strukturami danych, które nie są bezpieczne wątkowo, mają potencjał do wywołania CME. Duże miejsce, gdzie to się pojawia, to sytuacja, gdy twórcy wtyczek wywołują metody Bukkit API z wydarzenia AsyncPlayerChatEvent.
Polecenia
Ich nie ma! Ha!
Uprawnienia
Żadnych! Jasne!
Konfiguracja
Jest jedna ważna wartość konfiguracyjna, nazywana onlydangerous. Domyślnie ustawiona na true, to ustawienie określa, jakie typy problemów będą raportowane. Domyślne ustawienie będzie raportować tylko potencjalnych sprawców CME, które mogą spowodować awarię serwera. Jeśli ustawisz to na false, zrobi to to plus wykryje również inne potencjalnie złe wywołania asynchroniczne, które mogłyby powodować inne problemy na twoim własnym wątku asynchronicznym.
Drugą wartością konfiguracyjną jest meow. Jeśli true, kot!
Lokalizacja danych wyjściowych
Wtyczka zapisuje wszystkie te informacje w folderze swojej wtyczki w pliku o nazwie async.log. Zarejestruje jedną linię w konsoli, gdy wykryje problemy i zarejestruje je. Jeśli pozostanie pusty, nie było jeszcze potencjalnego problemu. Świetna robota!
Co to wypisuje?
PluginCatcher próbuje ustalić, która wtyczka wykonała ryzykowne wywołanie, porównując linie stosu wywołań z załadowanymi klasami wtyczek. Jeśli znajdzie dopasowanie (lub dopasowania), zapisuje tę wtyczkę i jej wersję do logu. W przeciwnym razie zgłasza to jako nieznane źródło. Zgadywanie wtyczek jest prezentowane wyłącznie dla wygody. Nigdy nie zakładaj, że wymieniona wtyczka jest ostatecznym źródłem.
Następnie wypisuje stos wywołań, abyś mógł zobaczyć, która wtyczka wykonała wywołanie, gdzie zostało wykonane itp. To tutaj poprawisz swój kod, aby nie wykonywał tego wywołania asynchronicznie.
Opis projektu pochodzi z CurseForge i został udostępniony po polsku. Szczegóły konfiguracji, zależności oraz aktualne komunikaty autora sprawdź na w źródłowym katalogu CurseForge.
plugincatcher.jar 11.05.2014
Jak bezpiecznie sprawdzić ten plugin
Wybierz zgodny plik
Oznaczenia wersji pochodzą z metadanych autora. Dobierz również właściwe oprogramowanie serwera i Javę.
Zachowaj kopię
Przed pierwszym startem skopiuj świat, konfigurację oraz dane pozostałych pluginów.
Przeczytaj log
Po uruchomieniu sprawdź brakujące zależności i pierwszy błąd związany z nazwą pluginu.