PluginCatcher

PluginCatcher

Narzędzie deweloperskie do wykrywania błędów

0 polubień • 0 pobrań
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.

Stabilne v1.7.9
plugincatcher.jar 11.05.2014
Przed instalacją

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.

Zobacz pełną instrukcję instalacji