Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

VMSS #1441

Open
FallenAngelX opened this issue Mar 29, 2014 · 7 comments
Open

VMSS #1441

FallenAngelX opened this issue Mar 29, 2014 · 7 comments

Comments

@FallenAngelX
Copy link

if vmss is disabled why is it still working and on windows as well ????
and have freeze detect and ect setting set to where none of this should be going on this is non stop
https://www.facebook.com/photo.php?fbid=442239702578911&set=a.318907444912138.1073741825.100003786560447&type=1&theater

@rsa
Copy link
Member

rsa commented Mar 29, 2014

This not VMSS system, this - MTMAP system. Problem like this appears, if one thread (map or instance) permanently breaks (crushed) or freezed. Need find source of problem. Or your may switch to one-thread mode.

@FallenAngelX
Copy link
Author

isnt core setup by default to run R2 in single thread if built and ran on windows ... these errors where on fresh built R2

@FallenAngelX
Copy link
Author

MapUpdate.Threads = 1 setting in mangos.config

common.h

if defined WIN64
define NOTSAFE_SEMAPHORE_OVERHANDLING "Win64"
define MANGOSR2_MUTEX_MODEL ACE_Null_Mutex
define MANGOSR2_MUTEX_MODEL_2 MangosR2_Mutex
define MANGOSR2_SINGLE_THREAD "Win64"
elif defined WIN32
define NOTSAFE_SEMAPHORE_OVERHANDLING "Win32"
define MANGOSR2_MUTEX_MODEL ACE_Null_Mutex
define MANGOSR2_MUTEX_MODEL_2 MangosR2_Mutex
define MANGOSR2_SINGLE_THREAD "Win32"
elif defined (FreeBSD)
define NOTSAFE_SEMAPHORE_OVERHANDLING "FreeBSD"
define MANGOSR2_MUTEX_MODEL ACE_RW_Thread_Mutex
define MANGOSR2_MUTEX_MODEL_2 MangosR2_Mutex
undef MANGOSR2_SINGLE_THREAD
elif defined (APPLE)
define NOTSAFE_SEMAPHORE_OVERHANDLING "MacOS"
define MANGOSR2_MUTEX_MODEL ACE_RW_Thread_Mutex
define MANGOSR2_MUTEX_MODEL_2 MangosR2_Mutex
undef MANGOSR2_SINGLE_THREAD
/ All other possibility - linux, android and some other, has all needed methods
else
undef NOTSAFE_SEMAPHORE_OVERHANDLING
define MANGOSR2_MUTEX_MODEL ACE_RW_Thread_Mutex
define MANGOSR2_MUTEX_MODEL_2 MangosR2_Mutex
undef MANGOSR2_SINGLE_THREAD
endif

include <stdint.h>

world.cpp

// VMSS system
setConfig(CONFIG_BOOL_VMSS_ENABLE, "VMSS.Enable", false);
#ifdef MANGOSR2_SINGLE_THREAD
if (getConfig(CONFIG_BOOL_VMSS_ENABLE))
{
sLog.outError(" Your OS (%s) not support VMSS! resetted to off", MANGOSR2_SINGLE_THREAD);
setConfig(CONFIG_BOOL_VMSS_ENABLE, "fakeString", false);
}
#endif

setConfig(CONFIG_UINT32_VMSS_MAXTHREADBREAKS,     "VMSS.MaxThreadBreaks",3);
setConfig(CONFIG_UINT32_VMSS_TBREMTIME,           "VMSS.ThreadBreakRememberTime",3600);
setConfig(CONFIG_UINT32_VMSS_MAPFREEMETHOD,       "VMSS.MapFreeMethod",1);
setConfig(CONFIG_UINT32_VMSS_FREEZECHECKPERIOD,   "VMSS.FreezeCheckPeriod",1000);
setConfig(CONFIG_UINT32_VMSS_FREEZEDETECTTIME,    "VMSS.MapFreezeDetectTime",2000);
setConfig(CONFIG_UINT32_VMSS_FORCEUNLOADDELAY,    "VMSS.ForceUnloadDelay",3000);
setConfig(CONFIG_BOOL_VMSS_TRYSKIPFIRST,          "VMSS.TrySkipFirstThreadBreak", false);
setConfig(CONFIG_BOOL_VMSS_CONTINENTS_SKIP,       "VMSS.ContinentsSkip", true);

World.cpp

#ifdef MANGOSR2_SINGLE_THREAD
if (getConfig(CONFIG_UINT32_NUMTHREADS) > 1)
{
sLog.outError(" Your OS (%s) not support set MapUpdate.Threads > 1! Resetted to 1", MANGOSR2_SINGLE_THREAD);
setConfig(CONFIG_UINT32_NUMTHREADS, "fakeString", 1);
}
#endif

so technicial no matter how i build it as long as its on windows threads and vmss shouldnt work

also still dealing with weird crashes in windows but not at home right now so cant post crash logs

@Undergarun
Copy link
Member

Latest version is completely unstable under windows. With VMSS = 0 continuosly crashes happens and with VMSS attempts to restart threads once and other...

@ottowayne
Copy link

MapUpdate.Threads = 1 will afaik result in 2 map update threads.

@FallenAngelX
Copy link
Author

ottowayne = true but still with current code windows build should be single thread no mater what configs say

@FallenAngelX
Copy link
Author

Revision: * * 12614 3de088f
Date 29:3:2014. Time 19:39
//=====================================================
*** Hardware ***
Processor: Intel(R) Core(TM) i7-4700MQ CPU @ 2.40GHz
Number Of Processors: 8
Physical Memory: 4194303 KB (Available: 2796612 KB)
Commit Charge Limit: 4194303 KB

*** Operation System ***
Windows 8 (Version 6.2, Build 9200)

//=====================================================
Exception code: C0000005 ACCESS_VIOLATION
Fault address: 0046278D 01:0006178D C:\Infinity_Server\Testing_Server\MaNGOS\World.exe

Registers:
EAX:00000000
EBX:7CD23BE0
ECX:7CD23BE4
EDX:A5218F90
ESI:A5218F94
EDI:A5218D10
CS:EIP:0023:0046278D
SS:ESP:002B:1C03ED50 EBP:1C03ED60
DS:002B ES:002B FS:0053 GS:002B
Flags:00010206

Call stack:
Address Frame Function SourceFile
0046278D 00000000 GridReference::targetObjectBuildLink+1D c:\users\fallenangel\desktop\i_mangosx\src\framework\gamesystem\gridreference.h line 34
00503B46 00000000 MaNGOS::Insert+66 c:\users\fallenangel\desktop\i_mangosx\src\framework\gamesystem\typecontainerfunctions.h line 72
00503B70 00000000 MaNGOS::Insert<GameObject,GameObject,TypeList<Creature,TypeList<DynamicObject,TypeList<Corpse,TypeNull> > > >+10 c:\users\fallenangel\desktop\i_mangosx\src\framework\gamesystem\typecontainerfunctions.h line 92
005040F3 00000000 Map::LoadObjectToGrid+E3 c:\users\fallenangel\desktop\i_mangosx\src\game\map.cpp line 2765
00517EC1 00000000 Map::Update+121 c:\users\fallenangel\desktop\i_mangosx\src\game\map.cpp line 622
006F08A0 00000000 MapManager::Update+B0 c:\users\fallenangel\desktop\i_mangosx\src\game\mapmanager.cpp line 187
004A4DCE 00000000 World::Update+36E c:\users\fallenangel\desktop\i_mangosx\src\game\world.cpp line 1913
0046A085 00000000 WorldRunnable::run+A5 c:\users\fallenangel\desktop\i_mangosx\src\mangosd\worldrunnable.cpp line 66
0047F362 00000000 ACE_Based::Thread::ThreadTask+32 c:\users\fallenangel\desktop\i_mangosx\src\shared\threading.cpp line 193
63F074FF 00000000 ACE_OS_Thread_Adapter::invoke+7F c:\users\fallenangel\desktop\i_mangosx\dep\ace_wrappers\ace\os_thread_adapter.cpp line 86
63DBF2E9 00000000 __get_tlsindex+61
63DBF2CD 00000000 __get_tlsindex+45
76E2495D 00000000 BaseThreadInitThunk+E
774498EE 00000000 RtlInitializeExceptionChain+84

774498C4 00000000 RtlInitializeExceptionChain+5A

Local Variables And Parameters

Call stack:
Address Frame Function SourceFile
0046278D 00000000 GridReference::targetObjectBuildLink+1D c:\users\fallenangel\desktop\i_mangosx\src\framework\gamesystem\gridreference.h line 34

00503B46 00000000 MaNGOS::Insert+66 c:\users\fallenangel\desktop\i_mangosx\src\framework\gamesystem\typecontainerfunctions.h line 72
Local 'elements' = 1C03ED60
Local 'obj' = 1C03ED60

00503B70 00000000 MaNGOS::Insert<GameObject,GameObject,TypeList<Creature,TypeList<DynamicObject,TypeList<Corpse,TypeNull> > > >+10 c:\users\fallenangel\desktop\i_mangosx\src\framework\gamesystem\typecontainerfunctions.h line 92
Local 'elements' = 1C03ED74
Local 'obj' = 1C03ED74

005040F3 00000000 Map::LoadObjectToGrid+E3 c:\users\fallenangel\desktop\i_mangosx\src\game\map.cpp line 2765
Local 'guid' = 1C03EDA8
Local 'grid' = 1C03EDA8
Local 'bg' = 1C03EDA8
Local 'Guard' = 1C03EDA8

00517EC1 00000000 Map::Update+121 c:\users\fallenangel\desktop\i_mangosx\src\game\map.cpp line 622
Local 't_diff' = 1C03FE50
Local 'updater' = 1C03FE50
Local 'world_object_update' = 1C03FE50
Local 'updateQueue' = 1C03FE50
Local 'grid_object_update' = 1C03FE50
Local 'guid' = 1C03FE50
Local 'updater' = 1C03FE50
Local 'guid' = 1C03FE50
Local 'helper' = 1C03FE50
Local 'helper' = 1C03FE50
Local 'area' = 1C03FE50
Local 'guid' = 1C03FE50
Local 'cell' = 1C03FE50
Local 'st' = 1C03FE50

006F08A0 00000000 MapManager::Update+B0 c:\users\fallenangel\desktop\i_mangosx\src\game\mapmanager.cpp line 187
Local unsigned int 'diff' = 1C03FEC4
Local 'updaterErr' = 1C03FEA4
Local 'updaterErr' = 1C03FEA4
Local 'guard' = 1C03FEA4
Local 'pMap' = 1C03FEA4

004A4DCE 00000000 World::Update+36E c:\users\fallenangel\desktop\i_mangosx\src\game\world.cpp line 1913
Local unsigned int 'diff' = 1C03FEE4

0046A085 00000000 WorldRunnable::run+A5 c:\users\fallenangel\desktop\i_mangosx\src\mangosd\worldrunnable.cpp line 66

0047F362 00000000 ACE_Based::Thread::ThreadTask+32 c:\users\fallenangel\desktop\i_mangosx\src\shared\threading.cpp line 193
Local param* = 1C03FF48 void 'param' = 1C03FF48

63F074FF 00000000 ACE_OS_Thread_Adapter::invoke+7F c:\users\fallenangel\desktop\i_mangosx\dep\ace_wrappers\ace\os_thread_adapter.cpp line 86
Local unsigned long 'status' = 1C03FF80

63DBF2E9 00000000 __get_tlsindex+61

63DBF2CD 00000000 __get_tlsindex+45

76E2495D 00000000 BaseThreadInitThunk+E

774498EE 00000000 RtlInitializeExceptionChain+84

774498C4 00000000 RtlInitializeExceptionChain+5A

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants