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.