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
GmAMXBans

[Fix] Thread worker was unable to start

gmamxbans

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

#1 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 25.05.2012 23:05

*
Popularny

Fix ten dotyczy błędu
L 05/23/2012 - 10:57:16: [MySQL] Thread worker was unable to start.
L 05/23/2012 - 10:57:16: [AMXX] Displaying debug trace (plugin "amxbans_main.amxx")
L 05/23/2012 - 10:57:16: [AMXX] Run time error 10: native error (native "SQL_ThreadQuery")
L 05/23/2012 - 10:57:16: [AMXX]    [0] check_flag.inl::check_flagged (line 38)
L 05/23/2012 - 10:57:16: [AMXX]    [1] check_player.inl::check_player_ (line 106)
Do pliku "amxbans_main.sma" należy dodać
public plugin_end() {
g_SqlX = Empty_Handle;
}

lub samo, jeśli funkcja "plugin_end" już istnieje
g_SqlX = Empty_Handle;

Następnie otwieramy "check_flag.inl" oraz "check_player.inl" i wszędzie przed
SQL_ThreadQuery(g_SqlX

dodajemy
if(g_SqlX)

Na sam koniec należy skompilować i nowy plik "amxbans_main.amxx" wgrać na serwer.
  • +
  • -
  • 14

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#2 QuahodronN

    Godlike

  • Power User

Reputacja: 230
Wszechwidzący

  • Postów:1 262
  • GG:
  • Steam:steam
  • Imię:Olo
  • Lokalizacja:Śląsk
Offline

Napisano 25.05.2012 23:58

wiele osób posiada ten problem, no i w końcu dobre rozwiązanie (chyba) xD

+ leci :)
  • +
  • -
  • 0

| CPU: I7-6700K @4.7GHz | Cooling: Corsair H110 | GPU: MSI GTX 1080 Gaming X | MOBO: Asus Maximus VIII Hero | RAM: Kingston Savage 16GB DDR4 @2800MHz |

| SSD: Samsung 840 Pro 128GB | SSD2: Samsung 840 Pro 256GB  |  PSU: Be Quiet L8 630W | Case: Gladius M40 | Mouse: Gigabyte M6980X | Keyboard: Sharkoon SHARK ZONE K20 Headphones: HyperX HX Cloud Black Display: Triple LG 24MP67VQ-P |

 

TS3: ts.kreedzmania.pl - 512 Slotów - Darmowe Kanały ;)


#3 sebul

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 26.05.2012 00:09

Oczywiście jeśli mamy wersję amxbansa gdzie w pliku "amxbans_main.sma" jest już dodana funkcja "plugin_end", to nie robimy drugiej takiej funkcji, tylko dodajemy do niej tą jedną linijkę
g_SqlX = Empty_Handle;

Sam zostałem przy 1.5.1 + różne poprawki (z różnych źródeł) i jak na razie przez kilka dni error, który został podany w pierwszym poście, się nie pojawił.
  • +
  • -
  • 1

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#4 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 28.05.2012 14:49

Fix ten absolutnie nic nie daje, gdyż zwalnianie Tuple w plugin_end jest zbędne, i tak to się dzieje, mimo że tego nie wpiszemy do kodu. Problem z ThreadWorkerem występuje, gdy serwer nie ma odpowiedniej ilości zasobów (ramu głównie), aby uruchomić wątek threadWorkera (co dzieje się przy wczytywaniu mapy). Błąd ten nie ma związku z AMX. Jedynym sposobem jest ograniczenie ilości pluginów, aby zwolnić trochę zasobów + restartowanie fizyczne serwera co jakiś czas, aby oczyścić ram ze śmieci.

Jeśli ten fix faktycznie działa, to albo jest to zbieg okoliczności, albo coś faktycznie ktoś pochrzanił w amx i tuple nie jest usuwany z pamięci przy plugin_end, przez co dalej ją zajmuje, ale przeglądając kod modułu sql i amx wygląda na to, że usuwany z pamięci jest mimo tego.
  • +
  • -
  • 1

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#5 sebul

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 28.05.2012 16:43

Przed napisaniem tego fixa, przejrzałem dokładnie kod amxbansa i Tobie też bym radził ^ ^
Amxbans tworzy uchwyt do bazy i potem przekazuje go jako parametr w forwardzie, forward wysyła ten uchwyt do funkcji, gdzie przypisuje się on do zmiennej globalnej "g_SqlX", której używa się właśnie do sprawdzania graczy, itp. Uchwyt (ten co jest wysyłany forwardem) jest zwalniany, więc połączenia niby już nie ma, ale zmienna globalna o tym "nie wie", dlatego trzeba ją zerować w taki sposób jaki podałem.
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#6 freetu

    Wszechwiedzący

  • Power User

Reputacja: 71
Pomocny

  • Postów:505
  • Lokalizacja:Kwidzyn
Offline

Napisano 28.05.2012 17:03

Oczywiście jeśli mamy wersję amxbansa gdzie w pliku "amxbans_main.sma" jest już dodana funkcja "plugin_end", to nie robimy drugiej takiej funkcji, tylko dodajemy do niej tą jedną linijkę

g_SqlX = Empty_Handle;

Sam zostałem przy 1.5.1 + różne poprawki (z różnych źródeł) i jak na razie przez kilka dni error, który został podany w pierwszym poście, się nie pojawił.


To w końcu ten błąd dotyczy 1.5.1 ?
Ten fix jest zawarty w http://amxx.pl/topic...guracja-dproto/ ??
  • +
  • -
  • 0

#7 sebul

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 28.05.2012 17:22

To w końcu ten błąd dotyczy 1.5.1 ?
Ten fix jest zawarty w http://amxx.pl/topic...guracja-dproto/ ??

Jeśli masz takie error logi jak w pierwszym poście na serwerze to wtedy ten fix jest od tego, aby je wyeliminować. A co do tamtej wersji amxbansa to nie wiem, pytajcie szyfranta.
  • +
  • -
  • 1

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#8 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 29.05.2012 04:30

@sebul, widocznie jednak ten handler nie jest do końca zwalniany i pozostaje luka w pamięci. Jednak gdyby tylko to było przyczyną błędu, serwer tuż po fizycznym restarcie nie miałby prawa wysypywać tego błędu. Jednak wysypuje... Im dłużej serwer działa, tym częściej zdarza się ten błąd. Przyznam rację, fix ten zmniejsza częstość wystąpień błędu, ale nie usuwa go całkiem. Udało mi się zasymulować ten błąd bez AmxBans, z pluginem dobrze napisanym, jeśli chodzi o obsługę SQL. Obciążyłem serwer czym się da i błąd wyskoczył. Po odciążeniu serwera nie występował. Winny jest tu niestety wyłącznie brak zasobów serwera, a AmxBans pożera ich mnóstwo...
  • +
  • -
  • 0

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#9 sebul

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 29.05.2012 07:23

A czytałeś to co napisałem? Jak ma wiedzieć globalna zmienna "g_SqlX" (która nie ma nic wspólnego z samym tworzeniem uchwytu), że uchwyt jest zwalniany? Przy normalnym używaniu amxbansa fix działa w 100% i to nie jest żaden zbieg okoliczności (tak jak pisałeś), no chyba, że mamy jakąś badziewną bazę, to wtedy nie wiem, mi na unixie wszystko śmiga i jestem pewien, że takich błędów już nie będę miał ani razu, a tym bardziej, że mam także inny fix dodany, czyli warunek
if(g_SqlX)

przy wykonywaniu zapytania.

  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#10 Szyfrant

    Godlike

  • Przyjaciel

Reputacja: 1 374
Godlike

  • Postów:3 072
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Sztokholm
Offline

Napisano 29.05.2012 09:04

To w końcu ten błąd dotyczy 1.5.1 ?
Ten fix jest zawarty w [gmamxbans] AMXBans MIX + Odpowiednia Konfiguracja DPROTO - Nowości - AMXX.pl: Support AMX Mod X ??

Jeśli masz takie error logi jak w pierwszym poście na serwerze to wtedy ten fix jest od tego, aby je wyeliminować. A co do tamtej wersji amxbansa to nie wiem, pytajcie szyfranta.


nie ma zaraz dodam
  • +
  • -
  • 2

#11 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 16.06.2012 13:36

Nie wiem jakim cudem to może działać, ponieważ:
  • g_SqlX jest handlerem, czyli po prostu zmienną z etykietą handlera, o wartości równej jakiejś liczbie. Dzięki tej liczbie silnik amx odnajduje w pamięci odpowiednią strukturę danych i jej używa w funkcji, do której podaje się zmienną. Rozumiem, jakbyśmy używali tutaj freeHandle, ale przypisanie po prostu wartości Empty_Handle, czyli 0 nie ma prawa zmieniać nic w tej strukturze, a po plugin_end zmienna ta jest usuwana, więc nie widzę w tym żadnego sensu
  • nawet jeśli to jest równoznaczne z "anihilacją" struktury, to robi się ona automatycznie po plugin_end na każdej strukturze
  • nie też ma tutaj znaczenia coś takiego, jak to, gdzie przekazaliśmy handler do struktury (czy przekazany został z amxbans_core, czy utworzony w amxbans_main). Handler jest tylko liczbą, wskaźnikiem można rzec, więc po prostu jeśli nie przypiszemy do niego 0, będzie wskazywał na nieistniejącą strukturę.

Ale jednak, jak mówią ludzie, fix działa... Nie mam pojęcia jakim cudem, a faktycznie na zbieg okoliczności to nie wygląda, bo nikt się nie zgłasza, że błąd powraca. Zresztą nie wiem nawet jaki to ma wszystko związek z Thread Workerem... Patrząc na kod źródłowy modułu SQLx nie mogę do żadnych sensownych wniosków dojść... Nie powinno, a działa... Cóż, już nie będę negował działania fixa, nie zaszkodzi na pewno, więc feel free to use... Idę badać dalej moduł i dochodzić do wniosku, dlaczego to cholerstwo działa...


Co ciekawe... stosuję dokładnie takie samo przekazywanie tuple między pluginami, w swoich pluginach. Tyle,. że tam mam jeden plugin main i ok 6ciu podrzędnych, do których jest to przekazywane. Nie stosuję takiego "fixa", a pluginy nie powodują błędu thread workera (dopóki nie włączę amxbans, jest to jedyny plugin jaki znam, który to powoduje). Używam tego od roku, na wielu serwerach sieci, na różnych hostingach, nic się nie dzieje... Żadnych błędów, wszystko ok. Dziwne, naprawdę dziwne to jest...

Użytkownik GwynBleidD edytował ten post 16.06.2012 13:41

  • +
  • -
  • 0

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#12 sebul

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 16.06.2012 16:37

Fix działa, bo mając taki warunek przy zapytaniu
if(g_SqlX)
{
SQL_ThreadQuery(g_SqlX, "_check_flagged", pquery, data, 1);
}

nie wykona się to gdy "g_SqlX" będzie "fałszem" i chyba już rozwiałem wątpliwości, przynajmniej mam taką nadzieję.
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#13 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 16.06.2012 17:06

To nie ma związku z Thread Workerem. Thread Worker startuje jeszcze przed plugin_natives i gdy mu się nie uda, to wszystkie SQL_ThreadQuery zwracają błąd. Zaglądnij sobie w źródła modułu sqlx, a dowiesz się czym tak naprawdę ten błąd jest. W przypadku braku tego warunku, lub gdy handler prowadzi do nieistniejącego tuple, dostałbyś błąd o nieprawidłowym tuple bądź błąd połączenia, a nie o Thread Workerze (i dostałbyś to w formie stringa w handlerze, a nie w formie errora w error logach).

Użytkownik GwynBleidD edytował ten post 16.06.2012 17:09

  • +
  • -
  • 1

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#14 sebul

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 16.06.2012 17:30

Nie rozumiem Ciebie w tym momencie. Szukasz dziury w całym i chyba tak naprawdę nie wiesz do końca co piszesz, albo przynajmniej już się gubisz. Dziwisz się czemu ten fix działa, więc Ci ponownie odpisałem, ale dla Ciebie dalej to jest za mało ;>
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#15 QuahodronN

    Godlike

  • Power User

Reputacja: 230
Wszechwidzący

  • Postów:1 262
  • GG:
  • Steam:steam
  • Imię:Olo
  • Lokalizacja:Śląsk
Offline

Napisano 16.06.2012 22:17

Nie wiem po co ta rozmowa w ogóle, ważne że działa :)
  • +
  • -
  • 0

| CPU: I7-6700K @4.7GHz | Cooling: Corsair H110 | GPU: MSI GTX 1080 Gaming X | MOBO: Asus Maximus VIII Hero | RAM: Kingston Savage 16GB DDR4 @2800MHz |

| SSD: Samsung 840 Pro 128GB | SSD2: Samsung 840 Pro 256GB  |  PSU: Be Quiet L8 630W | Case: Gladius M40 | Mouse: Gigabyte M6980X | Keyboard: Sharkoon SHARK ZONE K20 Headphones: HyperX HX Cloud Black Display: Triple LG 24MP67VQ-P |

 

TS3: ts.kreedzmania.pl - 512 Slotów - Darmowe Kanały ;)


#16 xstrime

    Banned

  • Zbanowany

Reputacja: 6
Nowy

  • Postów:29
  • Imię:kamil
  • Lokalizacja:polska
Offline

Napisano 19.06.2012 07:20

To nie pomaga errory dalej sypią !! .

#17 sebul

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 19.06.2012 10:55

To nie pomaga errory dalej sypią !! .

Skąd masz amxbansa?
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#18 xstrime

    Banned

  • Zbanowany

Reputacja: 6
Nowy

  • Postów:29
  • Imię:kamil
  • Lokalizacja:polska
Offline

Napisano 20.06.2012 09:41

Stąd amxbans mix
sebul (20.06.2012 11:02):
A może tak link do tematu?


#19 sebul

    Godlike

  • Autor tematu
  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 20.06.2012 11:06

Jeśli stąd http://amxx.pl/topic...guracja-dproto/ to widzę, że jednak szyfrant się nie postarał.
Fix jest niekompletny, jeśli ktoś ma czystego amxbansa, ale już napisałem w pierwszym poście co trzeba jeszcze zrobić.
  • +
  • -
  • 1

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#20 xstrime

    Banned

  • Zbanowany

Reputacja: 6
Nowy

  • Postów:29
  • Imię:kamil
  • Lokalizacja:polska
Offline

Napisano 21.06.2012 15:50

Nadal to samo !! .
L 06/21/2012 - 16:38:42: [AMXX] Run time error 25: parameter error L 06/21/2012 - 16:38:42: [AMXX] [0] color_chat.inl::ColorChat (line 72) L 06/21/2012 - 16:38:42: [AMXX] [1] check_player.inl::prebanned_check_ (line 65)


Fix NO FOUND !!





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

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