Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Błąd 21909 Aborted


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
19 odpowiedzi w tym temacie

#1 csMaster

    Wszechwiedzący

  • Power User

Reputacja: 14
Początkujący

  • Postów:542
  • Lokalizacja:localhost
Offline

Napisano 24.08.2020 18:37

Spoiler

 

Ktoś wie czym to może być spowodowane ?


  • +
  • -
  • 0

#2 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 381
Offline

Napisano 24.08.2020 19:33

Log pokazuje strony pamięci (wraz z lokacją w pamięci, uprawnieniami itp) zaalokowane przez dany proces (w tym przypadku jest to serwer csa)

Na samym końcu jest błąd, który pokazuje tylko linię z pliku .sh czyli de facto skryptu uruchomieniowego.

 

Nie ma tu żadnych informacji co mogło pójść nie tak. Najczęściej serwerki się wywalają jak coś nie tak z pluginami :/ ale to każdy wie


  • +
  • -
  • 0

#3 csMaster

    Wszechwiedzący

  • Autor tematu
  • Power User

Reputacja: 14
Początkujący

  • Postów:542
  • Lokalizacja:localhost
Offline

Napisano 24.08.2020 20:41

Log pokazuje strony pamięci (wraz z lokacją w pamięci, uprawnieniami itp) zaalokowane przez dany proces (w tym przypadku jest to serwer csa)

Na samym końcu jest błąd, który pokazuje tylko linię z pliku .sh czyli de facto skryptu uruchomieniowego.

 

Nie ma tu żadnych informacji co mogło pójść nie tak. Najczęściej serwerki się wywalają jak coś nie tak z pluginami :/ ale to każdy wie

 

Podobno taki log pojawia się jeśli jakiś plugin wychodzi poza dostępny mu obszar pamięci. Poza takim błędem w logach pojawia się też segmentation fault. Wiem że mógłbym wyłączać pluginy po kolei i w ten sposób znaleźć problematyczny plugin. No jednak w moim przypadku to się nie sprawdzi. Wiem który jest to plugin bo poza standardowymi pluginami amxx na serwerze jest tylko jeden i jest to silnik moda. Nie wiem w jaki sposób zlokalizować miejsce w którym wystąpił problem. Ten plugin ma ponad 20 tysięcy linijek. Natomiast crash serwera razem z jednym z tych błędów pojawia się właściwie to w losowym momencie. Najczęściej przy zmianie mapy (jeśli już widać tabele) lub jeśli ktoś wchodzi na serwer lub zmienia drużynę. Jednak to chyba nie jedyne przypadki kiedy następuje crash. Można jakoś znaleźć w tym pluginie co powoduje ten błąd ?


  • +
  • -
  • 0

#4 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 381
Offline

Napisano 24.08.2020 21:16


Podobno taki log pojawia się jeśli jakiś plugin wychodzi poza dostępny mu obszar pamięci

 

Dokładnie tak, dlatego w logu dostajemy zrzut stron pamięci. Powiem tak, ręcznie znaleźć trzeba innej drogi nie ma. Niestety nie mamy w dyspozycji jakiś programów testujących (np. jakiś fuzzer lub address sanitizer) co by można go było zapiąć pod plugin i on by naparzał danymi w niego i testował różne corner-case'y. Przeglądanie 20k linijek to będzie mordęga, ale jeśli chcesz to robić to polecam najpierw sprawdzić wszystkie formatex, format, fmt, add, etc etc. Generalnie tam gdzie podaje się jakiś bufor (tablice) i jego rozmiar.

 

W csgo modzie który utrzymuję była taka sytuacja, że ktoś (bo ja przerabiałem go) uzywał format i tablice 128 znaków. I to było używane tak wiesz, że się dopisuje formatem do tablicy coś jak:

new buf[128];
for(...){
	format(buf, charsmax(buf), "%s%s", buf, tu_jakas_tablica);
}

No i czasem się tak działo jakoś, że z d*py gracz dostawał losowa ilość expa, zmieniało mu tag na czacie i pare innych rzeczy (czasem też crashowało, ale to rzadko było, raczej jakieś dziwne takie błędy) xD No generalnie śmiesznie było, ale że to było takie losowe to wiedziałem, że gdzieś jest wredny bug - jakiś memory corruption. No i grzebałem i grzebałem dużo poprawiałem jakiś dziwacznych błędów, że np bufor był na 16 znaków, a format miał podane na sztywno 64. Wszystko przeglądnąłem i poprawiłem i ustało. Do dziś czysto z crashami, ale niesmak pozostał. No i opinia o ruskich koderach co wszystko na odwal się robią :D


  • +
  • -
  • 0

#5 csMaster

    Wszechwiedzący

  • Autor tematu
  • Power User

Reputacja: 14
Początkujący

  • Postów:542
  • Lokalizacja:localhost
Offline

Napisano 24.08.2020 23:41


Powiem tak, ręcznie znaleźć trzeba innej drogi nie ma. Niestety nie mamy w dyspozycji jakiś programów testujących (np. jakiś fuzzer lub address sanitizer) co by można go było zapiąć pod plugin i on by naparzał danymi w niego i testował różne corner-case'y. Przeglądanie 20k linijek to będzie mordęga, ale jeśli chcesz to robić to polecam najpierw sprawdzić wszystkie formatex, format, fmt, add, etc etc. Generalnie tam gdzie podaje się jakiś bufor (tablice) i jego rozmiar.

 

Widziałem plugin metamoda który ma zlokalizować segmentation fault ale projekt nie jest skończony. No jeśli innego sposobu nie ma to widocznie muszę przejrzeć cały kod. Jednak znacznie ułatwiło by mi to zadanie gdybym wiedział co dokładnie znaczy 'wyjść poza obszar pamięci' dla pluginu amxx.

 

1. Czy oznacza to na przykład że tablica będzie mieć za duży rozmiar (np. 10000) ?

2. Czy może to być spowodowane przez tablice dynamiczne (Array/Trie) ? Raczej przy zwykłej tablicy po prostu utnie się fragment tekstu, natomiast przy zbyt wysokim indeksie będzie zwykły błąd pluginu.

3. Czy get_addr_var() może to spowodować ?

4. Czy operacja na pliku (odczyt/zapis) może spowodować taki wyciek pamięci ?

5. Słyszałem że błąd pojawi się również np. przy próbie usunięcia już nieistniejącego entity. Czy to prawda ?

6. Czy może to spowodować jakaś wiadomość message_begin() ?

7. Czy jest coś jeszcze innego co spowoduje wyciek pamięci ? Najczęstszy problem chyba był z tablicami Array bo wtedy przez podanie zbyt dużego numeru Array pojawiał się błąd 'memory access'.

8. Czy taki błąd może być też spowodowany przez zbyt duże obciążenie procesora ? Jakby nie patrzeć w pluginie na start ustawiłem dość duży #pragma dynamic. Może to też jest problemem ?

 

Wiem że sporo tych pytań, ale gdybym wiedział czego konkretnie szukać to poszłoby dużo szybciej.


  • +
  • -
  • 0

#6 csMaster

    Wszechwiedzący

  • Autor tematu
  • Power User

Reputacja: 14
Początkujący

  • Postów:542
  • Lokalizacja:localhost
Offline

Napisano 25.08.2020 17:52

Zamierza ktoś odpowiedzieć ? Co mi dała informacja że mam poprawić plugin skoro nie wiem co mam poprawić. Czego mam w tym pluginie szukać ? Format/formatex ? I co mam z tym niby zrobić, usunąć całkiem ? Jak na razie temat mi nie pomógł bo dalej niczego nowego się nie dowiedziałem.


  • +
  • -
  • 0

#7 csMaster

    Wszechwiedzący

  • Autor tematu
  • Power User

Reputacja: 14
Początkujący

  • Postów:542
  • Lokalizacja:localhost
Offline

Napisano 26.08.2020 15:14

Naprawdę nikt nie wie co oznacza 'wyciek pamięci' w amxx ? Co może to spowodować ?

Wywaliłem 500 zł na reklamy a serwer cały czas stoi pusty bo co pół godziny serwer się crashuje jeśli tylko wejdzie jakaś większa ilość osób. Nie rozumiem, to ja źle tłumacze i jestem dla was takim debilem że nie chcecie odpowiadać, czy naprawdę nikt nic na ten temat nie wie ? Już tydzień szukam rozwiązania problemu ale nic nie mogę znaleźć. Zmieniałem wersje metamoda, amxx, używałem reapi zamiast engine lub fakemety, wyłączałem inne pluginy, parę godzin siedziałem nad kodem i nawet znalazłem błędy których normalnie bym nie znalazł, ale zero zmian - cały czas są crashe. Chciałbym chociaż dowiedzieć się czego mam szukać bo jak mogę znaleźć w pluginie błąd skoro nawet nie wiem czego szukać. Współczuje właścicielom którzy nie potrafią pisać pluginów, skoro nawet mi nikt nie potrafi czegoś wytłumaczyć żebym sam to poprawił, to jak zwykły właściciel nie umiejący nic miałby sobie poradzić ? Tyle tu osób które znają się na tym lepiej ode mnie a nie ma nikogo kto by pomógł ?


Użytkownik csMaster edytował ten post 26.08.2020 15:18

  • +
  • -
  • 0

#8 dredek

    Wszechobecny

  • Użytkownik

Reputacja: 162
Profesjonalista

  • Postów:476
  • GG:
  • Imię:Dawid
  • Lokalizacja:OLK
Offline

Napisano 26.08.2020 18:16

Napisz z jakich pluginów korzystasz, jaką posiadasz obecnie wersje hlds/rehlds, metamod, amxx'a.


  • +
  • -
  • 0

#9 csMaster

    Wszechwiedzący

  • Autor tematu
  • Power User

Reputacja: 14
Początkujący

  • Postów:542
  • Lokalizacja:localhost
Offline

Napisano 26.08.2020 19:02

Wersja rehlds 3.7.0.695-dev

Wersja metamod-r v1.3.0.128

Wersja amxx 1.9.0.5263

Plugin jest tylko jeden i jest on napisany w dużej części przeze mnie.


  • +
  • -
  • 0

#10 dredek

    Wszechobecny

  • Użytkownik

Reputacja: 162
Profesjonalista

  • Postów:476
  • GG:
  • Imię:Dawid
  • Lokalizacja:OLK
Offline

Napisano 27.08.2020 17:59

Spróbuj wgrać wersje metamoda konkretnie 1.3.0.127, a co do wersji rehlds to spróbuj build 2228.

Jeśli to nie pomoże możesz ewentualnie w ramach testów wrzucić amxx 1.8.2/1.8.3, metamod 1.21p37, rehlds build 2117.

Jeszcze tak zapytam, posiadasz może jakieś pluginy do metamoda? Jeśli tak to jakie

W załączniku jeszcze zamieściłem Ci dwa pliki hlds_linux, które możesz spróbować wgrać jeśli powyższe zmiany nie pomogą. Ostatnio też borykałem się z podobnym problemem i w dwóch przypadkach na siedem pomogła podmiana powyższego pliku.

Załączone pliki


Użytkownik dredek edytował ten post 27.08.2020 18:06

  • +
  • -
  • 0

#11 csMaster

    Wszechwiedzący

  • Autor tematu
  • Power User

Reputacja: 14
Początkujący

  • Postów:542
  • Lokalizacja:localhost
Offline

Napisano 29.08.2020 12:32

Spróbuj wgrać wersje metamoda konkretnie 1.3.0.127, a co do wersji rehlds to spróbuj build 2228.

Jeśli to nie pomoże możesz ewentualnie w ramach testów wrzucić amxx 1.8.2/1.8.3, metamod 1.21p37, rehlds build 2117.

Jeszcze tak zapytam, posiadasz może jakieś pluginy do metamoda? Jeśli tak to jakie

W załączniku jeszcze zamieściłem Ci dwa pliki hlds_linux, które możesz spróbować wgrać jeśli powyższe zmiany nie pomogą. Ostatnio też borykałem się z podobnym problemem i w dwóch przypadkach na siedem pomogła podmiana powyższego pliku.

 

Niestety w ciągu tych kilku dni dalej nic się nie zmieniło. Crashe zarówno te z "aborted" jak i "segmentation fault" występują bez względu na wersje silnika gry czy metamoda.

 

Pluginy metamoda:

Currently loaded plugins:
description stat pend file vers src load unload
[ 1] SafeNameAndChat RUN - SafeNameAndChat.so v1.1 ini ANY ANY
[ 2] Reunion RUN - reunion_mm_i386.so v0.1.0.92c ini Start Never
[ 3] AMX Mod X RUN - amxmodx_mm_i386.so v1.9.0.5263 ini Start ANY
[ 4] ReAuthCheck RUN - reauthcheck_mm_i386.so v0.1.6 ini Start Never
[ 5] Revoice RUN - revoice_mm_i386.so v0.1.0.34 ini Start Never
[ 6] Rechecker RUN - rechecker_mm_i386.so v2.5 ini Chlvl ANY
[ 7] WHBlocker RUN - whblocker_mm_i386.so v1.5.696 ini Chlvl ANY
[ 8] NetBufExtender RUN - nbex.so v1.0 ini ANY Never
[ 9] Placeholders disabler RUN - plfix_mm_i386.so v0.0.3 ini Start Never
[10] MySQL RUN - mysql_amxx_i386.so v1.9.0.5263 pl3 ANY ANY
[11] NetDB RUN - netdb_amxx_i386.so v1.1 pl3 ANY ANY
[12] ReAPI RUN - reapi_amxx_i386.so v5.15.0.197-dev pl3 ANY Never
[13] Fun RUN - fun_amxx_i386.so v1.9.0.5263 pl3 ANY ANY
[14] Engine RUN - engine_amxx_i386.so v1.9.0.5263 pl3 ANY ANY
[15] FakeMeta RUN - fakemeta_amxx_i386.so v1.9.0.5263 pl3 ANY ANY
[16] GeoIP RUN - geoip_amxx_i386.so v1.9.0.5263 pl3 ANY ANY
[17] CStrike RUN - cstrike_amxx_i386.so v1.9.0.5263 pl3 ANY ANY
[18] CSX RUN - csx_amxx_i386.so v1.9.0.5263 pl3 ANY ANY
[19] Ham Sandwich RUN - hamsandwich_amxx_i386.so v1.9.0.5263 pl3 ANY ANY
19 plugins, 19 running

  • +
  • -
  • 0

#12 dredek

    Wszechobecny

  • Użytkownik

Reputacja: 162
Profesjonalista

  • Postów:476
  • GG:
  • Imię:Dawid
  • Lokalizacja:OLK
Offline

Napisano 29.08.2020 16:18

Przy wyłączonych pluginach od metamoda nadal crashuje?

SafeNameAndChat
ReAuthCheck
Rechecker
WHBlocker
Placeholders
ReAPI

Chodzi o te dokładniej


  • +
  • -
  • 0

#13 csMaster

    Wszechwiedzący

  • Autor tematu
  • Power User

Reputacja: 14
Początkujący

  • Postów:542
  • Lokalizacja:localhost
Offline

Napisano 29.08.2020 17:23

Przy wyłączonych pluginach od metamoda nadal crashuje?

SafeNameAndChat
ReAuthCheck
Rechecker
WHBlocker
Placeholders
ReAPI

Chodzi o te dokładniej

 

Tak, jednak i tak nie mógłbym ich wyłączyć bo są mi potrzebne, SafeNameAndChat żeby ludzie serwera nie crashowali znakami #, reauthcheck bo często na serwer są ataki i wchodzą boty, rechecker banuje część steam changerów, placeholders disabler poprawia client_print() na amxx 1.9.0 i 1.10.0, a reapi nie jest mi potrzebne ale na rosyjskim forum przeczytałem że pev_valid() czasem zwraca prawdę nawet jeśli byt nie istnieje, więc zamiast tego użyłem is_entity z reapi. Jednak bez tych pluginów i tak są crashe. Najczęściej przy wchodzeniu/wychodzeniu kogoś z serwera lub starcie rundy. Więc podejrzewam że tam jest coś nie tak. Ale tak jak mówiłem nie wiem czego mam szukać, więc nie widzę w tych miejscach kodu czegoś dziwnego.


  • +
  • -
  • 0

#14 Zeky

    Nowy

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:5
Offline

Napisano 30.08.2020 21:32

Um... I think, problem is in engine... Did you try reinstall server?

Second... Did you try clear HLDS without metamod ?
  • +
  • -
  • 0

#15 csMaster

    Wszechwiedzący

  • Autor tematu
  • Power User

Reputacja: 14
Początkujący

  • Postów:542
  • Lokalizacja:localhost
Offline

Napisano 31.08.2020 15:45

Um... I think, problem is in engine... Did you try reinstall server?

Second... Did you try clear HLDS without metamod ?

 

Yes, i tried reinstalling the server. The error must be in my plugin but i don't know what to look for.


  • +
  • -
  • 1

#16 Robiin

    Godlike

  • Support Team

Reputacja: 1 107
Super Hero

  • Postów:2 053
  • Imię:Robert
  • Lokalizacja:Wrocław
Offline

Napisano 31.08.2020 16:42

Proponuję napisać jakiś skrypt (bo raczej nie ma sensu robić tego ręcznie), który doda do .sma logi w tym stylu:

#if defined DEBUG
log_amx("Start public: %s", "nazwa_publica");
#endif

// Body publica

#if defined DEBUG
log_amx("End public: %s", "nazwa_publica");
#endif

Nie jest to definitywne rozwiązanie problemu, ale temat ciągnie się już na tyle długo, że moim zdaniem lepiej jest rozwiązać problem w sposób niewydajny, niż przetrzymywać Cię dłużej z crashującym serwerem.


  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#17 Zeky

    Nowy

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:5
Offline

Napisano 01.09.2020 08:40

So... Try to run only default amxx plugins, if still... Try to upgrade your AMX Mod X to dev (1.8.3/1.9/1.10)

Or downgrade to stable 1.8.2
  • +
  • -
  • 0

#18 csMaster

    Wszechwiedzący

  • Autor tematu
  • Power User

Reputacja: 14
Początkujący

  • Postów:542
  • Lokalizacja:localhost
Offline

Napisano 01.09.2020 16:04

So... Try to run only default amxx plugins, if still... Try to upgrade your AMX Mod X to dev (1.8.3/1.9/1.10)

Or downgrade to stable 1.8.2

 

It has no effect. Server doesn't have crashes only if main mod plugin isn't enabled. I can't disable this plugin, I must find a bug in the code.

 

 

Proponuję napisać jakiś skrypt (bo raczej nie ma sensu robić tego ręcznie), który doda do .sma logi w tym stylu:

#if defined DEBUG
log_amx("Start public: %s", "nazwa_publica");
#endif

// Body publica

#if defined DEBUG
log_amx("End public: %s", "nazwa_publica");
#endif

Nie jest to definitywne rozwiązanie problemu, ale temat ciągnie się już na tyle długo, że moim zdaniem lepiej jest rozwiązać problem w sposób niewydajny, niż przetrzymywać Cię dłużej z crashującym serwerem.

 

Dodałem taki fragment do każdej z 400 funkcji. Problem w tym że log_amx() powodował że serwer nie chciał się włączyć, więc zamiast tego użyłem log_to_file. Plik osiąga 2 GB w ciągu max 2 map. Ale może coś w ten sposób znajdę, na razie czekam na crash żeby zobaczyć na jakim public plugin się zatrzyma.


  • +
  • -
  • 0

#19 Robiin

    Godlike

  • Support Team

Reputacja: 1 107
Super Hero

  • Postów:2 053
  • Imię:Robert
  • Lokalizacja:Wrocław
Offline

Napisano 01.09.2020 17:18


Problem w tym że log_amx() powodował że serwer nie chciał się włączyć

To dziwne, nie spotkałem się jeszcze z czymś takim.

 


zamiast tego użyłem log_to_file

 

log_to_file sprawi, że plik osiągnie kosmiczne rozmiary bardzo szybko, tak jak to opisałeś dalej.

 

 

Jeśli dodałeś kod tylko do 400 funkcji, to domyślam się, że przemyślałeś które z nich taki log powinny dostać. Niemniej, proponuję dodać np. warunek sprawdzający timeleft, żeby przykładowo ograniczyć logi tylko do ostatniej minuty mapy.

 

 


  • +
  • -
  • 1

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#20 csMaster

    Wszechwiedzący

  • Autor tematu
  • Power User

Reputacja: 14
Początkujący

  • Postów:542
  • Lokalizacja:localhost
Offline

Napisano 01.09.2020 18:46

 


Problem w tym że log_amx() powodował że serwer nie chciał się włączyć

To dziwne, nie spotkałem się jeszcze z czymś takim.

 

 

 


zamiast tego użyłem log_to_file

 

log_to_file sprawi, że plik osiągnie kosmiczne rozmiary bardzo szybko, tak jak to opisałeś dalej.

 

 

Jeśli dodałeś kod tylko do 400 funkcji, to domyślam się, że przemyślałeś które z nich taki log powinny dostać. Niemniej, proponuję dodać np. warunek sprawdzający timeleft, żeby przykładowo ograniczyć logi tylko do ostatniej minuty mapy.

 

 

Do 400 funkcji czyli do całego kodu. Całość składa się z ponad 400 funkcji public/stock. Jeśli było log_amx to serwer od razu wyłączał się z powodu 'segmentation fault'. Zamieniłem to na log_to_file, również są logi w konsoli ale też zapisują się do pliku. Hosting ogranicza wielkość pliku do 2 GB. Mam log z dokładnym czasem kiedy następuje crash więc będę wiedział które logi z funkcjami pojawiły się bezpośrednio przed crashem.


  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych