SphereServer BugTracker - SphereServer
View Issue Details
0001819SphereServerexecutable - genericpublic17-09-10 08:4627-09-10 22:23
babidi 
MrSugarCube 
normalmajoralways
resolvedfixed 
allwindows (not tested linux)
20-09-2009, 0.56b Prerelease 
0.56c Nightly 
Automated (specify build number)
None
None
1333
0001819: world save initiated when finish
When saving all the triggers are runned toghether
When the "World save initiated" is show the world is already saved.

put a message on all the functions and wathc that all are triggered toghether.

thanks

buid #1333 and other before
No tags attached.
Issue History
17-09-10 08:46babidiNew Issue
22-09-10 01:58ShiryuXNote Added: 0000658
22-09-10 08:36babidiNote Added: 0000662
22-09-10 16:08IncanusNote Added: 0000664
22-09-10 16:56babidiNote Added: 0000665
22-09-10 18:29ShiryuXNote Added: 0000666
22-09-10 19:30babidiNote Added: 0000667
22-09-10 21:33ShiryuXNote Added: 0000668
22-09-10 21:33ShiryuXStatusnew => closed
22-09-10 21:33ShiryuXAssigned To => ShiryuX
22-09-10 21:33ShiryuXResolutionopen => no change required
23-09-10 19:41babidiNote Added: 0000671
23-09-10 19:41babidiStatusclosed => feedback
23-09-10 19:41babidiResolutionno change required => reopened
23-09-10 19:41babidiNote Edited: 0000671bug_revision_view_page.php?bugnote_id=0000671#r24
23-09-10 19:41babidiNote Edited: 0000671bug_revision_view_page.php?bugnote_id=0000671#r25
27-09-10 22:23MrSugarCubeStatusfeedback => resolved
27-09-10 22:23MrSugarCubeFixed in Version => 0.56c Nightly
27-09-10 22:23MrSugarCubeResolutionreopened => fixed
27-09-10 22:23MrSugarCubeAssigned ToShiryuX => MrSugarCube

Notes
(0000658)
ShiryuX   
22-09-10 01:58   
Are you using EF_NetworkOutThread? The server 'freezes' at the world save, so it should be expected. Anyway, doing a quick 'serv.log' on the f_onserv_save* functions shows the order and the trigger is correct.

With EF_NetworkOutThread this should not happens since it is in a separate thread.
(0000662)
babidi   
22-09-10 08:36   
i canfirm the order of function triggering is ok.
the problem is that the save starts, stuck the game, and when finished, says "word save initated"; but it is finished!
all the fuction are triggered in the right order but at the same time.
you cas apreciate this by joining the game and to a serv.b under all the save function, then wait the world to save (dont .save)

// Experimental flags
// Flags for options that affect server behaviour and which might affect compatibility
// See the revisions.txt file for more details on this
// EF_DiagonalWalkCheck = 00000001
// EF_UNICODE = 00000002 // No on Linux
// EF_New_Triggers = 00000008
// EF_Intrinsic_Locals = 00000020
// EF_Item_Strict_Comparison = 00000040
// EF_NewPositionChecks = 00000080 // Do not set while server is running !!!
// EF_WalkCheck = 00000100
// EF_AllowTelnetPacketFilter = 00000200 // Enables packet filtering for telnet connections as well
// EF_Script_Profiler = 00000400
// EF_Size_Optimise = 00000800
// EF_Minimize_Triggers = 00001000 // Minimize trigger calls (use only 0.51 triggers)
// EF_DamageTools = 00002000 // damage tools (and fire @damage on them) while mining or lumberjacking
// EF_PetSlots = 00004000 // INCOMPLETE YET! DO NOT USE until this warning is removed!
// EF_UsePingServer = 00008000 // Enable the experimental Ping Server (for showing pings on the server list, uses UDP port 12000)
// EF_NPCAct_Triggers = 00010000 // Enable @NPCSpecialAction and @NPCAction triggers (mutual exclusive with EF_Minimize_Triggers)
// EF_NoWalkingThroughStairsFix = 00400000 // Disables a fix for GMs walking through stairs (see revisions file, this flag should not be needed)
// EF_UseNetworkMulti = 00800000 // Enable optimized network routines (better) - Do not set while server is running !!!
// EF_Specific = 01000000 // Specific behaviour, not completly tested
Experimental=00000001|00000008|00000040|00000100|00000800|00010000

// Option flags
// Flags for options that affect server behaviour but not compatibility
// See the revisions.txt file for more details on this
// OF_Command_Sysmsgs = 00000008 //Shows status of hearall, allshow, allmove... commands after toggling them
// OF_OSIMultiSight = 00000020
// OF_Items_AutoName = 00000040
// OF_FileCommands = 00000080
// OF_NoItemNaming = 00000100
// OF_NoHouseMuteSpeech = 00000200
// OF_Flood_Protection = 00001000
// OF_Buffs = 00002000
// OF_NoPrefix = 00004000 // Add prefix "A" and "An" to itemnames or not
// OF_DyeType = 00008000 // if set allows using i_dye on all t_dye_vat instead of only i_dye_tub
// OF_DrinkIsFood = 00010000 // type T_DRINK will increase FOOD lvl like T_FOOD
// OF_Specific = 01000000 // Specific behaviour, not completly tested
OptionFlags=08|020|0200|02000
(0000664)
Incanus   
22-09-10 16:08   
I can confirm that the "word save initated" message appears after the save has finished.
(0000665)
babidi   
22-09-10 16:56   
the f_onserver_save whould trigger before game stucks
the f_onserver_save_finished when the stucks finish
the f_onserver_save_ok & f_onserver_save_fail after _finished ad a result of the save action


i think this should be the right order and way this should go
there is something changet trught version
version of 1-2 months ago worked well as i say
(0000666)
ShiryuX   
22-09-10 18:29   
The functions works fine. Try doing serv.log instead of serv.b.

Babidi, according to your report you're using Automated Builds, but your ini settings are pretty old, update sphere.ini also. And as I said: It's not a bug, when the server starts saving it will freeze and it won't send any packet, just like a resync, so if there's a packet queue, it won't be send until the world save is finished. Enable EF_NetworkOutThread in your Experimental settings and it won't happen anymore.
(0000667)
babidi   
22-09-10 19:30   
can't simply put the packet before the save?
so it will not queue?
(0000668)
ShiryuX   
22-09-10 21:33   
Is not really easy to clear the packet queue in a frozen server. It may lead to unexpected behavior.
As I said, enable EF_NetworkOutThread and you won't have this 'problem'.

Thank you.
(0000671)
babidi   
23-09-10 19:41   
updated nightly and sphere.ini, enabled EF_NetworkOutThread the things does not change!

// Experimental flags
// Flags for options that affect server behaviour and which might affect compatibility
// See the revisions.txt file for more details on this
//*EF_DiagonalWalkCheck = 00000001
//*EF_New_Triggers = 00000008
// EF_Intrinsic_Locals = 00000020
//*EF_Item_Strict_Comparison = 00000040
// EF_NewPositionChecks = 00000080 // Do not set while server is running !!!
//*EF_WalkCheck = 00000100
// EF_AllowTelnetPacketFilter = 00000200 // Enables packet filtering for telnet connections as well
// EF_Script_Profiler = 00000400
//*EF_Size_Optimise = 00000800
// EF_Minimize_Triggers = 00001000 // Minimize trigger calls (use only 0.51 triggers)
// EF_DamageTools = 00002000 // damage tools (and fire @damage on them) while mining or lumberjacking
// EF_PetSlots = 00004000 // INCOMPLETE YET! DO NOT USE until this warning is removed!
// EF_UsePingServer = 00008000 // Enable the experimental Ping Server (for showing pings on the server list, uses UDP port 12000)
//*EF_NPCAct_Triggers = 00010000 // Enable @NPCSpecialAction and @NPCAction triggers (mutual exclusive with EF_Minimize_Triggers)
// EF_FixCanSeeInClosedConts = 00020000 // Change CANSEE to return 0 for items inside containers that a client hasn't opened
//*EF_NetworkOutThread = 00800000 // Send network data in a separate thread
// EF_Specific = 01000000 // Specific behaviour, not completly tested
Experimental=01|08|040|0100|0800|010000|0800000