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

[ROZWIĄZANE] Problem z Run time error 10: native error (native "SQL_ThreadQuery")


Najlepsza odpowiedź BlackPerfum, 13.07.2014 21:09

Jest jedna przyczyna podam przykład bo wątpię byś to zrozumiał:
• Zostały 3 sekund do końca mapy
• Gracz zmienił klasę na której jeszcze nie grał przez co najpierw zostało wysłane zapytanie z tworzeniem tej klasy
• Po 3 sekundach przyszła odpowiedź z bazy danych o pomyślnym stworzeniu klasy
• Moduł mysql jest w trakcie wyłączania
• Przez nie przemyślane stworzenie cod mod'a serwer wysyła jeszcze raz zapytanie pobierające puste dane z bazy danych dotyczące nowo stworzonej klasy
• Walnęło błędem: Thread worker was unable to start.
• Moduł mysql wyłączył się
• Wykonał się forward plugin_end Wtf?

Powodów takiego zachowania może być kilka:
• Stary metamod lub amxx
• Stary mysql
• Zbyt wczesne zakończenie pracy modułu mysql poprzez wymuszenie w amxx'ie wyłączenia go

Jak to naprawić? Zrób wszystko wszystko na tej liście:
• Uaktualniej metamoda i amxx'a do najnowszych wersji (o ile to możliwe)
• Uaktualnij moduł mysql
• Zastosuj funkcję module_exists przed wysłaniem zapytania tylko w swojej funkcji LoadXP Przejdź do postu


  • Zamknięty Temat jest zamknięty
3 odpowiedzi w tym temacie

#1 Sniper Elite

    Master

  • Power User

Reputacja: 176
Profesjonalista

  • Postów:981
  • GG:
  • Imię:Konrad
  • Lokalizacja:Skryptolandia
Offline

Napisano 13.07.2014 19:56

Witam. na początku chciałbym zapytać czy błąd:

L 07/13/2014 - 20:28:27: [AMXX] Displaying debug trace (plugin "QTMCodMod.amxx")
L 07/13/2014 - 20:28:27: [AMXX] Run time error 10: native error (native "SQL_ThreadQuery")
L 07/13/2014 - 20:28:27: [AMXX]    [0] QTMCodMod.sma::LoadXP (line 15535)
L 07/13/2014 - 20:28:27: [AMXX]    [1] QTMCodMod.sma::create_klass_handle (line 1976)

(za chwilę podam funkcje) może wywoływać crashe serwera? Otóż przy zmianie mapy wyskoczyły mi te error logi i serwer się zrestartował. Log:

L 07/13/2014 - 20:28:26: *** .:Ramerski:. [89.239.97.197] <STEAM_0:0:268195434> *** Stworzyl klase Inzynier ***
L 07/13/2014 - 20:28:26: .:Ramerski:. ma klase Inzynier
L 07/13/2014 - 20:28:26: Server cvar "mp_timelimit" = "24.999999"
L 07/13/2014 - 20:28:27: [MySQL] Thread worker was unable to start.
L 07/13/2014 - 20:28:27: [AMXX] Displaying debug trace (plugin "QTMCodMod.amxx")
L 07/13/2014 - 20:28:27: [AMXX] Run time error 10: native error (native "SQL_ThreadQuery")
L 07/13/2014 - 20:28:27: [AMXX]    [0] QTMCodMod.sma::LoadXP (line 15535)
L 07/13/2014 - 20:28:27: [AMXX]    [1] QTMCodMod.sma::create_klass_handle (line 1976)
L 07/13/2014 - 20:28:27: [META] ini: Begin re-reading plugins list: /home/data/pukawka110779/323201.cs16/cstrike/addons/metamod/plugins.ini
L 07/13/2014 - 20:28:27: [META] ini: Read plugin config for: AMX Mod X
L 07/13/2014 - 20:28:27: [META] ini: Read plugin config for: dproto
L 07/13/2014 - 20:28:27: [META] ini: Finished reading plugins list: /home/data/pukawka110779/323201.cs16/cstrike/addons/metamod/plugins.ini; Found 2 plugins
L 07/13/2014 - 20:28:27: [META] dll: Updating plugins...
L 07/13/2014 - 20:28:27: [META] dll: Finished updating 9 plugins; kept 2, loaded 0, unloaded 0, reloaded 0, delayed 0
L 07/13/2014 - 20:28:27: "Exclibrion<1136><VALVE_0:4:612669431><TERRORIST>" disconnected
L 07/13/2014 - 20:28:27: "Zyleta * aka. `Sergio. ;)<1135><STEAM_0:0:1027267304><TERRORIST>" disconnected
L 07/13/2014 - 20:28:27: "T_R_U_S-K-A_F_K_A<1150><STEAM_0:0:996124566><CT>" disconnected
L 07/13/2014 - 20:28:27: "Vincent<1146><VALVE_0:4:770188363><CT>" disconnected
L 07/13/2014 - 20:28:27: "Int3l<1149><STEAM_0:0:733353815><CT>" disconnected
L 07/13/2014 - 20:28:27: "Sniper Elite<1177><STEAM_0:0:104010051><TERRORIST>" disconnected
L 07/13/2014 - 20:28:27: "sILVER |uLTIMATE<1096><STEAM_0:0:1168475963><TERRORIST>" disconnected
L 07/13/2014 - 20:28:27: "SensimiliaN<1086><STEAM_0:0:691920438><CT>" disconnected
L 07/13/2014 - 20:28:27: ".-*`'`*-._. McPr0 ._.-*`'`*-.<1165><STEAM_0:0:49524340><TERRORIST>" disconnected
L 07/13/2014 - 20:28:27: "FabuLarnY<1176><STEAM_0:0:1647900737><TERRORIST>" triggered "Dropped_The_Bomb"
L 07/13/2014 - 20:28:27: "FabuLarnY<1176><STEAM_0:0:1647900737><TERRORIST>" disconnected
L 07/13/2014 - 20:28:27: ".:Ramerski:.<1173><STEAM_0:0:268195434><CT>" disconnected
L 07/13/2014 - 20:28:27: "CzN DaViD<1054><STEAM_0:1:53936434><CT>" disconnected
L 07/13/2014 - 20:28:27: "-Beowulf-<1131><STEAM_0:0:29965004><CT>" disconnected
L 07/13/2014 - 20:28:27: "R4GandAnal<1159><STEAM_0:0:414186614><CT>" disconnected
L 07/13/2014 - 20:28:27: "UnLieD^<1184><STEAM_0:0:47880255><CT>" disconnected
L 07/13/2014 - 20:28:27: "Space.`<1181><STEAM_0:1:41674664><TERRORIST>" disconnected
L 07/13/2014 - 20:28:27: "Waski<1172><STEAM_0:0:1180413574><TERRORIST>" disconnected
Protocol version 48
Exe version 1.1.2.6/Stdio (cstrike)
Exe build: 11:30:00 Aug 28 2012 (5787)
Server logging data to file logs/L0713058.log
L 07/13/2014 - 20:28:44: Log file started (file "logs/L0713058.log") (game "cstrike") (version "48/1.1.2.6/Stdio/5787")

Serwer padł przy zmianie mapy. Wiem że nawet podczas chwilowego opóźnienia/braku połączenia z bazą danych serwer może paść.

 

Funkcje które wywołują error logi:

public LoadXP(id, klasa) {
    
    if(is_user_bot(id) || asked_sql[id] || klasa == NONE)
    return PLUGIN_HANDLED;

    if(g_boolsqlOK) {
        new data[2];
        data[0] = id;
        data[1] = klasa;
        
        new name[48], q_command[512];
        get_user_name(id, name, 47);
        replace_all(name, 47, "'", "\'");
        formatex(q_command, 511, "SELECT * FROM `%s` WHERE `nick`='%s' AND `klasa`='%i'", g_sqlTable, name, klasa);
        
        SQL_ThreadQuery(g_SqlTuple, "Load_xp_handle", q_command, data, 2);    //ta linijka pluje errorami
        
        asked_sql[id] = 1;
        
    }
    else sql_start();
    
    wybral_klase[id] = floatround(halflife_time())
    asked_klass[id] = 0;

    return PLUGIN_HANDLED;
}

oraz:

public create_klass_handle(FailState, Handle:Query, Error[], Errcode, Data[], DataSize) {
    new id = Data[0];
    database_user_created[id] = 0;

    if(FailState == TQUERY_CONNECT_FAILED) {
        log_to_file("sql.log", "Could not connect to SQL database.");
        return PLUGIN_CONTINUE;
    }
    if(FailState == TQUERY_QUERY_FAILED) {
        log_to_file("sql.log", "create_klass Query failed.");
        return PLUGIN_CONTINUE;
    }
    if(Errcode) {
        log_to_file("sql.log", "Error on create_klass query: %s", Error);
        return PLUGIN_CONTINUE;
    }

    LoadXP(id, Data[1]);   //tu z ta linijka jest cos nie tak

    return PLUGIN_CONTINUE;
}

Bardzo proszę o pomoc/nakierowanie mnie co może być nie tak (w razie czego podam więcej error logów/większy kawałek kodu).

Udało mi się wyeliminować prawie wszystkie błędy na serwerze :) tylko z tym się jeszcze męczę. Dodam że ten problem występuje od czasu do czasu, ale nie zawsze po nim serwer pada.

 

Dzięki za pomoc.


  • +
  • -
  • 0

Kontakt:

Steam: CSnajper

GG: 4394855

 

Na steam i GG pomagam wyłącznie odpłatnie.


#2 BlackPerfum

    Pseudo interakcja??

  • Power User

Reputacja: 459
Wszechobecny

  • Postów:575
  • Lokalizacja:...
Offline

Napisano 13.07.2014 21:09   Najlepsza odpowiedź

Jest jedna przyczyna podam przykład bo wątpię byś to zrozumiał:
• Zostały 3 sekund do końca mapy
• Gracz zmienił klasę na której jeszcze nie grał przez co najpierw zostało wysłane zapytanie z tworzeniem tej klasy
• Po 3 sekundach przyszła odpowiedź z bazy danych o pomyślnym stworzeniu klasy
• Moduł mysql jest w trakcie wyłączania
• Przez nie przemyślane stworzenie cod mod'a serwer wysyła jeszcze raz zapytanie pobierające puste dane z bazy danych dotyczące nowo stworzonej klasy
• Walnęło błędem: Thread worker was unable to start.
• Moduł mysql wyłączył się
• Wykonał się forward plugin_end Wtf?

Powodów takiego zachowania może być kilka:
• Stary metamod lub amxx
• Stary mysql
• Zbyt wczesne zakończenie pracy modułu mysql poprzez wymuszenie w amxx'ie wyłączenia go

Jak to naprawić? Zrób wszystko wszystko na tej liście:
• Uaktualniej metamoda i amxx'a do najnowszych wersji (o ile to możliwe)
• Uaktualnij moduł mysql
• Zastosuj funkcję module_exists przed wysłaniem zapytania tylko w swojej funkcji LoadXP
  • +
  • -
  • 2
Chcesz napisać do mnie na PW to:
Spoiler

Mój tok myślenia jest błędny? Wskaż mi błąd zmienie to!

Aktualnie bije limit 32 graczy (łącze serwery) ale nadal są lagi przy zbyt dużym przesyłu informacji Dołączona grafika
Gra się płynnie do 40~50 graczy potem łącze pada i zamiast biegać ludzie się teleportują Dołączona grafika

#3 Sniper Elite

    Master

  • Autor tematu
  • Power User

Reputacja: 176
Profesjonalista

  • Postów:981
  • GG:
  • Imię:Konrad
  • Lokalizacja:Skryptolandia
Offline

Napisano 14.07.2014 00:21


Jest jedna przyczyna podam przykład bo wątpię byś to zrozumiał:

Dzięki za łopatologię :)

Kod zapisu do bazy danych był kopiowany, dzięki za uwagę, wyrzuciłem zbędne zapytanie i dodałem warunek module_exists.

Co do uaktualniania amxx i metamod mam stare binarki 5787 więc to odpada. Wrzucę jednak z amxx 1.8.2 moduł mysql sprzed aktualizacji lutowej i zobaczymy co będzie :)


  • +
  • -
  • 0

Kontakt:

Steam: CSnajper

GG: 4394855

 

Na steam i GG pomagam wyłącznie odpłatnie.


#4 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

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

Napisano 14.07.2014 10:55

NAJNOWSZA WERSJA AMXX MOŻE BYĆ UŻYWANA ZE STARSZYMI BINARKAMI!!!

Tylko sam moduł hamsandwich się może wysypać, gdyż offsety są inne.

http://amxx.pl/topic...laniu-fullauto/ tutaj jest opisane to dokładniej.
  • +
  • -
  • 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





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

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