DEBUGS ( BIG PROBLEM) 56c - Avatar - 03-07-2014 04:14 PM
First of all, I'm using 56b for 6 months and server was not closed unless i do so. Actually even 30 days server was online and I've never seen at least 1 times server down because of errors. Actually there are no errors in my server. So, according to sphere developer's advices, I thought It would be better to change 56b 2013 prerelease to 56c. I have more than 100 online players in my shard and I tested 3 days 56c. Server was down fourth times because of debug which was not seen in 56b. Let me show you what debugs I've seen ;
Code:
00:29:DEBUG:__ thread (9180) __ | # | _____ function _____________ | ticks passed from previous function start ______
00:29:DEBUG:>> 9180 | 0 | CWorld::OnTick | +0
00:29:DEBUG:>> 9180 | 1 | CGObList::DeleteAll | +31
00:29:DEBUG:>> 9180 | 2 | CClient::CharDisconnect | +0
00:29:DEBUG:>> 9180 | 3 | CChar::OnTrigger | +0
00:29:DEBUG:>> 9180 | 4 | CScriptObj::OnTriggerScript | +0
00:29:DEBUG:>> 9180 | 5 | CScriptObj::OnTriggerRunVal | +0
00:29:DEBUG:>> 9180 | 6 | CScriptObj::OnTriggerRun | +0
00:29:DEBUG:>> 9180 | 7 | CScriptObj::OnTriggerRun | +0
00:29:DEBUG:>> 9180 | 8 | CChar::r_Verb | +0
00:29:DEBUG:>> 9180 | 9 | CClient::r_Verb | +0
00:29:DEBUG:>> 9180 | 10 | CScriptObj::r_Verb | +0
00:29:DEBUG:>> 9180 | 11 | CItemStone::r_Verb | +0
00:29:DEBUG:>> 9180 | 12 | CItem::r_Verb | +0
00:29:DEBUG:>> 9180 | 13 | CObjBase::r_Verb | +0
00:29:DEBUG:>> 9180 | 14 | CScriptObj::r_Call | +0
00:29:DEBUG:>> 9180 | 15 | CScriptObj::OnTriggerRun | +0
00:29:DEBUG:>> 9180 | 16 | CItemStone::r_Verb | +0
00:29:DEBUG:>> 9180 | 17 | CStoneMember::r_Verb | +0 <-- exception catch point (below is guessed and could be incorrect!)
00:29:DEBUG:>> 9180 | 18 | CStoneMember::r_LoadVal | +0
00:29:CRITICAL:(sphere_guild_functions.scp,227)"Access Violation" (0xbe283), in CStoneMember::Verb()
Code:
00:34:DEBUG:__ thread (9180) __ | # | _____ function _____________ | ticks passed from previous function start ______
00:34:DEBUG:>> 9180 | 0 | NetworkManager::processAllInput | +0
00:34:DEBUG:>> 9180 | 1 | NetworkInput::processInput | +16
00:34:DEBUG:>> 9180 | 2 | NetworkInput::processData | +0
00:34:DEBUG:>> 9180 | 3 | NetworkInput::processData | +0
00:34:DEBUG:>> 9180 | 4 | NetworkInput::processGameClientData | +0
00:34:DEBUG:>> 9180 | 5 | PacketCharPlay::onReceive | +0
00:34:DEBUG:>> 9180 | 6 | CClient::Setup_Play | +0
00:34:DEBUG:>> 9180 | 7 | CClient::Setup_Start | +0
00:34:DEBUG:>> 9180 | 8 | CChar::OnTrigger | +0
00:34:DEBUG:>> 9180 | 9 | CScriptObj::OnTriggerScript | +0
00:34:DEBUG:>> 9180 | 10 | CScriptObj::OnTriggerRunVal | +0
00:34:DEBUG:>> 9180 | 11 | CScriptObj::OnTriggerRun | +0
00:34:DEBUG:>> 9180 | 12 | CScriptObj::OnTriggerRun | +0
00:34:DEBUG:>> 9180 | 13 | CChar::r_Verb | +0
00:34:DEBUG:>> 9180 | 14 | CClient::r_Verb | +0
00:34:DEBUG:>> 9180 | 15 | CScriptObj::r_Verb | +0
00:34:DEBUG:>> 9180 | 16 | CItemStone::r_Verb | +0
00:34:DEBUG:>> 9180 | 17 | CItem::r_Verb | +0
00:34:DEBUG:>> 9180 | 18 | CObjBase::r_Verb | +0
00:34:DEBUG:>> 9180 | 19 | CScriptObj::r_Call | +0
00:34:DEBUG:>> 9180 | 20 | CScriptObj::OnTriggerRun | +0
00:34:DEBUG:>> 9180 | 21 | CItemStone::r_Verb | +0
00:34:DEBUG:>> 9180 | 22 | CStoneMember::r_Verb | +0 <-- exception catch point (below is guessed and could be incorrect!)
00:34:DEBUG:>> 9180 | 23 | CStoneMember::r_LoadVal | +0
00:34:CRITICAL:(sphere_guild_functions.scp,227)"Access Violation" (0xbe283), in CStoneMember::Verb()
Where the 227th raw is ==> AllMembers -1,SYSMESSAGE @,,1 Guild Message: <ARGS>
Code:
00:38:DEBUG:__ thread (8428) __ | # | _____ function _____________ | ticks passed from previous function start ______
00:38:DEBUG:>> 8428 | 0 | NetworkManager::processAllInput | +0
00:38:DEBUG:>> 8428 | 1 | NetworkInput::processInput | +15
00:38:DEBUG:>> 8428 | 2 | NetworkInput::processData | +0
00:38:DEBUG:>> 8428 | 3 | NetworkInput::processData | +0
00:38:DEBUG:>> 8428 | 4 | NetworkInput::processGameClientData | +0
00:38:DEBUG:>> 8428 | 5 | PacketSpeakReqUNICODE::onReceive | +0
00:38:DEBUG:>> 8428 | 6 | CClient::Event_Talk | +0
00:38:DEBUG:>> 8428 | 7 | CChar::OnTriggerSpeech | +0
00:38:DEBUG:>> 8428 | 8 | CObjBase::OnHearTrigger | +0
00:38:DEBUG:>> 8428 | 9 | CScriptObj::OnTriggerRunVal | +0
00:38:DEBUG:>> 8428 | 10 | CScriptObj::OnTriggerRun | +0
00:38:DEBUG:>> 8428 | 11 | CScriptObj::OnTriggerRun | +0
00:38:DEBUG:>> 8428 | 12 | CScriptObj::OnTriggerRun | +0
00:38:DEBUG:>> 8428 | 13 | CChar::r_Verb | +0
00:38:DEBUG:>> 8428 | 14 | CClient::r_Verb | +0
00:38:DEBUG:>> 8428 | 15 | CScriptObj::r_Verb | +0
00:38:DEBUG:>> 8428 | 16 | CChar::r_Verb | +0
00:38:DEBUG:>> 8428 | 17 | CObjBase::r_Verb | +0 <-- exception catch point (below is guessed and could be incorrect!)
00:38:DEBUG:>> 8428 | 18 | CVarDefMap::Empty | +0
00:38:CRITICAL:(sphere_house_system.scp,3765)"Access Violation" (0xc6709), in CObjBase::Verb() #1 "TARGET"
00:38:DEBUG:command 'TARGETF' args 'f_house_banish 0400247e6' [13742AC4]
Where 2765th raw ==> src.targetf itemdown
When I changed src.targetf to only targetf , I've seen that problem is solved. What is this really ? Src.Targetf with src makes server down.
Code:
01:15:DEBUG:__ thread (8428) __ | # | _____ function _____________ | ticks passed from previous function start ______
01:15:DEBUG:>> 8428 | 0 | NetworkManager::processAllInput | +0
01:15:DEBUG:>> 8428 | 1 | NetworkInput::processInput | +15
01:15:DEBUG:>> 8428 | 2 | NetworkInput::processData | +0
01:15:DEBUG:>> 8428 | 3 | NetworkInput::processData | +0
01:15:DEBUG:>> 8428 | 4 | NetworkInput::processGameClientData | +0 <-- exception catch point (below is guessed and could be incorrect!)
01:15:DEBUG:>> 8428 | 5 | PacketSpeakReqUNICODE::onReceive | +0
01:15:DEBUG:>> 8428 | 6 | CClient::Event_Talk | +0
01:15:DEBUG:>> 8428 | 7 | CClient::Event_Talk_Common | +0
01:15:DEBUG:>> 8428 | 8 | CChar::NPC_OnHearPetCmd | +0
01:15:DEBUG:>> 8428 | 9 | CClient::addTarget | +0
01:15:DEBUG:>> 8428 | 10 | CClient::SetTargMode | +0
01:15:DEBUG:>> 8428 | 11 | CObjBase::RemoveFromView | +0
01:15:CRITICAL:"Access Violation" (0xc6709), in SUB: NetworkInput::Message::ProcessMessage()
01:15:DEBUG:157:Parsing Packet len=27 id=0xad [2014/03/05 01:15:14]
0 1 2 3 4 5 6 7 8 9 A B C D E F
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
0000 ad 00 1b c0 01 b6 00 03 54 52 4b 00 00 21 5d 16 ........TRK..!].
0010 80 61 6c 6c 20 6b 69 6c 6c 00 00 €all kill..
One of the player just uses his makro "all kill" and after 10 15 times , server is down. What a pitty.
Code:
00:01:DEBUG:__ thread (8428) __ | # | _____ function _____________ | ticks passed from previous function start ______
00:01:DEBUG:>> 8428 | 0 | NetworkManager::processAllInput | +0
00:01:DEBUG:>> 8428 | 1 | NetworkInput::processInput | +16
00:01:DEBUG:>> 8428 | 2 | NetworkInput::processData | +0
00:01:DEBUG:>> 8428 | 3 | NetworkInput::processData | +0
00:01:DEBUG:>> 8428 | 4 | NetworkInput::processGameClientData | +0 <-- exception catch point (below is guessed and could be incorrect!)
00:01:DEBUG:>> 8428 | 5 | PacketSpeakReqUNICODE::onReceive | +0
00:01:DEBUG:>> 8428 | 6 | CClient::Event_Talk | +0
00:01:DEBUG:>> 8428 | 7 | CClient::Event_Talk_Common | +0
00:01:DEBUG:>> 8428 | 8 | CChar::NPC_OnHearPetCmd | +0
00:01:DEBUG:>> 8428 | 9 | CClient::addTarget | +0
00:01:DEBUG:>> 8428 | 10 | CClient::SetTargMode | +0
00:01:DEBUG:>> 8428 | 11 | CObjBase::RemoveFromView | +0
00:01:CRITICAL:"Access Violation" (0xc6709), in SUB: NetworkInput::Message::ProcessMessage()
00:01:DEBUG:2d0:Parsing Packet len=27 id=0xad [2014/03/04 00:01:10]
0 1 2 3 4 5 6 7 8 9 A B C D E F
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
0000 ad 00 1b c0 01 02 00 03 54 52 4b 00 00 21 5d 16 ........TRK..!].
0010 80 61 6c 6c 20 6b 69 6c 6c 00 00 €all kill..
Code:
12:53:DEBUG:__ thread (1540) __ | # | _____ function _____________ | ticks passed from previous function start ______
12:53:DEBUG:>> 1540 | 0 | CWorld::OnTick | +0
12:53:DEBUG:>> 1540 | 1 | CSector::OnTick | +31
12:53:DEBUG:>> 1540 | 2 | CChar::OnTick | +0 <-- exception catch point (below is guessed and could be incorrect!)
12:53:DEBUG:>> 1540 | 3 | CChar::OnTickStatusUpdate | +0
12:53:DEBUG:>> 1540 | 4 | CObjBase::OnTickStatusUpdate | +0
12:53:DEBUG:>> 1540 | 5 | CObjBase::ResendTooltip | +0
12:53:CRITICAL:"Access Violation" (0xffbfc47a), in SUB: CChar::Char::Ticking items()
So, for now, DO NOT USE 56c, Unless you want trouble... 2013 56b Release is better than 56c. So, I cannot fix the problem with scripts since it is hardcoded. I feel I restricted on this. So fix the problem.
In game, players type all kill and server is gone. I really do not believe this is happening.
Only changing .exe and some def change is not enough. It seems so. It costs my three days for nothing. Also, unsatisfied players made me crazy because of down issue on server at 3-5am while I was sleeping.
Notes : Nightly Release 56c ( Last One ), and client version 6.0.6.1
NetworkThread is off.
RE: DEBUGS ( BIG PROBLEM) 56c - XuN - 03-07-2014 06:55 PM
Maybe you can give some information: What is that targetf function doing, show us the code and on who is it called. Are your Speech blocks modified? i'm not receiving any errors with default script pack. If you show us the code making Sphere giving errors, we can fix it... blaming for blaming is not usefull
RE: DEBUGS ( BIG PROBLEM) 56c - Avatar - 03-07-2014 07:17 PM
As you can guess, f_house_banish is the banning from house function which is as same as mordount house system has. And also Guild system is the default system. There are nothing different than original default script pack regarding house addons and guild system. Every src.targetf function gives debug on server. ıf you instead script it like only targetf , there is no problem. However,as you know, under speech triggers targetf and src.targetf are not the same thing. I should use src there. Anyway, also it is important to mention about Ram and Cpu usage. Sphere Server 56b consumes 220 mb out of 4gb in my host and cpu is about 3-4%. However, 56c consumes about 12-14% and 320mb ram out of 4gb. There are lots of thing wrong in the last nightly build. I'm 100% sure about it. I'm not blaming you. It is not my type that all the time stating bugs than wait weeks ! You are doing great things. I'm really thank you on that but at the same time, you put people off sphereserver.
Anyway, hope you will fix it.
RE: DEBUGS ( BIG PROBLEM) 56c - XuN - 03-08-2014 04:01 AM
Well, i've tried to reproduce that and hope to fix it but I cannot reproduce any of these debugs, no problems with stones, 'all kill' or any other speech command and with f_eject function (nor any other targetf function) from Mordaunt's House system so, again, I ask you to give us more information on what is exactly giving these errors so we can fix it, these errors themselves doesn't tell much information without seeing the code behind, send by PM if you don't want to share it but at this point I can't do anything since I cannot reproduce what is happening, hence I can't fix what I don't know that is failing.
RE: DEBUGS ( BIG PROBLEM) 56c - Avatar - 03-08-2014 06:24 AM
House Speech Part :
Code:
ON=I ban thee
if !<src.region.tag.koyburasi>
if !<src.ctag.i_ban_thee>
if (<src.flags>&statf_dead)
src.sys_error Ölü iken kullanamazsiniz.
return 1
endif
if !(<DEF.scp.House_BanEngine>)
return 0
endif
REF1=<UID.<SRC.REGION.UID>.MORE2>
if (<REF1.HousePlayerAccess <SRC>> >= 2)
TARGETF f_house_banish <REF1>
SRC.SYSMESSAGE @,,1 Lutfen evden kovmak istediginiz kisiyi seciniz.
endif
src.ctag.i_ban_thee 1
src.timerf 5, src.ctag.i_ban_thee
else
src.sys_error 10 saniyede bir evden atabilirsiniz.
return 1
endif
endif
My house system is from CloudBr script pack, it is like mordounts. Therefore, I said so.
Ban Function
Code:
[FUNCTION f_house_banish]
if (strmatch(*Brit_Genel_1*,<region.name>))
src.sys_error Yeni Mahalle Bölgesinde bunu yapamazsınız.
return 1
endif
REF1=<ARGS> //<UID.<SRC.REGION.UID>.MORE2>
IF (<ARGO.ISITEM>)
SRC.SYSMESSAGE @,,1 Bunu atamassiniz.
return 1
//ELIF (<REF1.TAG0.Access.Total.-1> >= <DEF.MAX_HOUSE_BANS>)
// SRC.SYSMESSAGE @,,1 The ban limit for this house has been reached!
// return 1
ELIF (<ARGO.UID>==<SRC>)
SRC.SYSMESSAGE @,,1 Kendinizi atamassiniz!
return 1
//ELIF (<REF1.IsBanned <ARGO.UID>>)
// SRC.SYSMESSAGE @,,1 <ARGO.NAME> is already banned from this house!
// return 1
ELIF (<ARGO.IsHouseVendor>)
SRC.SYSMESSAGE @,,1 Ev vendorunu atamassiniz!
return 1
ELIF (<REF1.IsOwner <ARGO.UID>>)
SRC.SYSMESSAGE @,,1 Evin sahibini atamassiniz!
return 1
ELIF (<REF1.IsCoOwner <ARGO.UID>>)
SRC.SYSMESSAGE @,,1 Evin ortaklarini atamassiniz!
return 1
ELIF (<REF1.IsFriend <ARGO.UID>>)
SRC.SYSMESSAGE @,,1 Evin dostlarini atamassiniz!
return 1
ELIF (<ARGO.REGION.UID> != <REF1.REGION.UID>)
SRC.SYSMESSAGE @,,1 Evinizde olmayan bir kisiyi evinizden nasil ata bilirsiniz ?
return 1
ENDIF
//REF1.HouseAddAccess <ARGO.UID>,-1
ARGO.GO <REF1.P>
ARGO.MOVE S
ARGO.FIX
SRC.SYSMESSAGE @,,1 <ARGO.NAME> evden atildi.
ARGO.SYSMESSAGE @,,1 Evden atildiniz.
What about the guild message problem ?
Code:
[FUNCTION Guild_SendMessage]
IF (<TYPE> != t_stone_guild) || (<isempty <ARGS>>)
return 0
ENDIF
AllMembers -1,SYSMESSAGE @,,1 Guild Message: <ARGS>
|