Jump to content

Infinity_return

Members
  • Posts

    26
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Everything posted by Infinity_return

  1. Possbile fix: Add "target.deleted = false;" to void Spell::AddGOTarget too ... // This is new target calculate data for him GOTargetInfo target; target.targetGUID = targetGUID; target.effectMask = (1 << effIndex); target.processed = false; // Effects not apply on target target.deleted = false; ... Need to update patch?
  2. I updated mtmaps and tbb patch. 1) Only ACE mtmaps for rev 10188+ (small code cleanup). http://pastebin.com/m2DKaRHv 2) Only tbb concurrent vector patch for more safety work on spell code and some others crash fixes, patch for rev 10188+. http://pastebin.com/vf50BUmG 3) ACE mtmaps + tbb concurrent vector for rev 10188+. http://pastebin.com/7ji90jDi
  3. Yes, open files (-n) 4096 Clean mangos realm freeze and CPU use 100% after ~1000 ppl connections in one sec. _build = ch->build; - works
  4. I tested this patch, works fine. But there are comments: If you connect more than 2000 people simultaneously realm server stops allowed connections, this is not freeze, and when the number connections to about 1000 people, realm server again begins to function normally. Another problem, if you enter the game, and then go out and seek realm list, they will all be offline. OS: Linux Debian 5.0 x64 ACE 5.7.6
  5. mtmaps with ACE 5.7.6 = mtmaps openmp with gcc 4.4.x(OpenMP 3.0). but i like ACE
  6. Difference is only in the performance. But i reccomend ACE 5.7.6 http://download.dre.vanderbilt.edu/previous_versions/
  7. Excuse that so long had problems with the Internet, could not push a patch. Patch for rev 9426+ include mtmaps, tbb patch and some crash fixes. If you will still be crashes, to write in this topic(crash dumps need in debug mode). http://paste2.org/p/680362
  8. ok, tomorrow i push the full patch with additional checks(mtmaps+tbb+checks).
  9. - std::list<ItemTargetInfo> m_UniqueItemInfo; + tbb::concurrent_vector<ItemTargetInfo> m_UniqueItemInfo; ItemTargetInfo not need. my mangos not lag on 3900 ppl online, with tbb concurrent_vector use.
  10. Could be made simpler, but if this works, then good if you are still crash on other place, write me(i myself almost all the known crashes fixed).
  11. For example: include tbb/concurrent_vector.h, <memory> in Spell.h and Makefile.am in line AM_CPPFLAGS add ../../dep/tbb/include In Spell.cpp/SpellEffects.cpp replace std::list on tbb::concurrent_vector in all TargetInfo and GOTargetInfo cycles, example: for(std::list<TargetInfo>::iterator ihit = m_UniqueTargetInfo.begin(); ihit != m_UniqueTargetInfo.end(); ++ihit) to for (tbb::concurrent_vector<TargetInfo>::iterator ihit= m_UniqueTargetInfo.begin();ihit != m_UniqueTargetInfo.end();++ihit). And in Spell.h, std::list<GOTargetInfo> m_UniqueGOTargetInfo; and std::list<TargetInfo> m_UniqueTargetInfo; replace on tbb::concurrent_vector<GOTargetInfo> m_UniqueGOTargetInfo; and tbb::concurrent_vector<TargetInfo> m_UniqueTargetInfo;
  12. Use tbb::concurrent_vector instead std::list in all cycles TargetInfo and GOTargetInfo(Spell.cpp, SpellEffects.cpp) after this changes, no more crash
  13. 8969 + sd2 1513 + visibility patch + mtmaps(without mtmaps also crash) max uptime 1-2h no ideas... Program received signal SIGSEGV, Segmentation fault. [switching to Thread 0x42003950 (LWP 29540)] Spell::handle_immediate (this=0x2c898860) at ../../../src/game/Spell.cpp:2636 2636 for(std::list<TargetInfo>::iterator ihit= m_UniqueTargetInfo.begin();ihit != m_UniqueTargetInfo.end();++ihit) #0 Spell::handle_immediate (this=0x2c898860) at ../../../src/game/Spell.cpp:2636 #1 0x00000000006e7550 in Spell::cast (this=0x2c898860, skipCheck=true) at ../../../src/game/Spell.cpp:2611 #2 0x000000000072e683 in Unit::CastCustomSpell (this=0x2bef7c60, Victim=0x7fff6d7e0f70, spellInfo=0x7fffed0131e0, bp0=0x42002a48, bp1=0x0, bp2=0x0, triggered=<value optimized out>, castItem=0x0, triggeredByAura=0x292dfb60, originalCaster=0) at ../../../src/game/Unit.cpp:1004 #3 0x00000000007415ab in Unit::HandleDummyAuraProc (this=0x2bef7c60, pVictim=0x7fff6d7e0f70, damage=38600, triggeredByAura=0x292dfb60, procSpell=0x0, procFlag=<value optimized out>, procEx=1, cooldown=0) at ../../../src/game/Unit.cpp:6853 #4 0x00000000007455f6 in Unit::ProcDamageAndSpellFor (this=0x2bef7c60, isVictim=false, pTarget=0x7fff6d7e0f70, procFlag=262144, procExtra=1, attType=BASE_ATTACK, procSpell=0x7fffec4db160, damage=965) at ../../../src/game/Unit.cpp:12055 #5 0x0000000000745ff5 in Unit::ProcDamageAndSpell (this=0x2c898860, pVictim=0x7fff6d7e0f70, procAttacker=<value optimized out>, procVictim=1572864, procExtra=1, amount=965, attType=BASE_ATTACK, procSpell=0x7fffec4db160) at ../../../src/game/Unit.cpp:4710 #6 0x00000000006cd847 in Aura::PeriodicTick (this=0x7fff5f1dcf20) at ../../../src/game/SpellAuras.cpp:6613 #7 0x00000000006cecd6 in Aura::Update (this=0x7fff5f1dcf20, diff=181) at ../../../src/game/SpellAuras.cpp:662 #8 0x000000000073260e in Aura::UpdateAura (this=0x7fff6d7e0f70, time=181) at ../../../src/game/SpellAuras.h:321 #9 Unit::_UpdateSpells (this=0x7fff6d7e0f70, time=181) at ../../../src/game/Unit.cpp:3192 #10 0x00000000007327ff in Unit::Update (this=0x7fff6d7e0f70, p_time=181) at ../../../src/game/Unit.cpp:199 #11 0x00000000006a2893 in Player::Update (this=0x7fff6d7e0f70, p_time=181) at ../../../src/game/Player.cpp:1094 #12 0x00000000005e4b8c in Map::Update (this=0x7fffde510e00, t_diff=@0x2c88f940) at ../../../src/game/Map.cpp:608 #13 0x00000000005f6b72 in MapUpdateRequest::call (this=0x2c88f920) at ../../../src/game/MapUpdater.cpp:47 #14 0x00000000007f9ad1 in DelayExecutor::svc (this=0x7fffe600cae8) at ../../../src/shared/DelayExecutor.cpp:60 #15 0x00007ffff7b79257 in ACE_Task_Base::svc_run (args=<value optimized out>) at ../../ace/Task.cpp:275 #16 0x00007ffff7b7a905 in ACE_Thread_Adapter::invoke (this=0x182b9a0) at ../../ace/Thread_Adapter.cpp:98 #17 0x00007ffff5e9efc7 in start_thread () from /lib/libpthread.so.0 #18 0x00007ffff546b5ad in clone () from /lib/libc.so.6 #19 0x0000000000000000 in ?? () #0 Spell::handle_immediate (this=0x2c898860) at ../../../src/game/Spell.cpp:2636 No locals. #1 0x00000000006e7550 in Spell::cast (this=0x2c898860, skipCheck=true) at ../../../src/game/Spell.cpp:2611 castResult = <value optimized out> #2 0x000000000072e683 in Unit::CastCustomSpell (this=0x2bef7c60, Victim=0x7fff6d7e0f70, spellInfo=0x7fffed0131e0, bp0=0x42002a48, bp1=0x0, bp2=0x0, triggered=<value optimized out>, castItem=0x0, triggeredByAura=0x292dfb60, originalCaster=0) at ../../../src/game/Unit.cpp:1004 spell = <value optimized out> targets = {m_srcX = 0, m_srcY = 0, m_srcZ = 0, m_destX = -8893.4541, m_destY = 636.841919, m_destZ = 99.5232849, m_strTarget = { static npos = 18446744073709551615, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0xb3dc58 ""}}, m_targetMask = 2, m_unitTarget = 0x7fff6d7e0f70, m_GOTarget = 0x0, m_itemTarget = 0x0, m_unitTargetGUID = 25273, m_GOTargetGUID = 0, m_CorpseTargetGUID = 0, m_itemTargetGUID = 0, m_itemTargetEntry = 0} #3 0x00000000007415ab in Unit::HandleDummyAuraProc (this=0x2bef7c60, pVictim=0x7fff6d7e0f70, damage=38600, triggeredByAura=0x292dfb60, procSpell=0x0, procFlag=<value optimized out>, procEx=1, cooldown=0) at ../../../src/game/Unit.cpp:6853 dummySpell = 0x7fffed0138c0 effIndex = 3976280256 triggerAmount = <value optimized out> castItem = 0x0 triggered_spell_id = 63106 target = 0x7fff6d7e0f70 basepoints0 = 386 #4 0x00000000007455f6 in Unit::ProcDamageAndSpellFor (this=0x2bef7c60, isVictim=false, pTarget=0x7fff6d7e0f70, procFlag=262144, procExtra=1, attType=BASE_ATTACK, procSpell=0x7fffec4db160, damage=965) at ../../../src/game/Unit.cpp:12055 triggeredByAura = 0x292dfb60 spellProcEvent = <value optimized out> spellInfo = <value optimized out> cooldown = 0 removedSpells = {<std::_List_base<unsigned int, std::allocator<unsigned int> >> = { _M_impl = {<std::allocator<std::_List_node<unsigned int> >> = {<__gnu_cxx::new_allocator<std::_List_node<unsigned int> >> = {<No data fields>}, <No data fields>}, _M_node = {_M_next = 0x42002b60, _M_prev = 0x42002b60}}}, <No data fields>} procTriggered = {<std::_List_base<ProcTriggeredData, std::allocator<ProcTriggeredData> >> = { _M_impl = {<std::allocator<std::_List_node<ProcTriggeredData> >> = {<__gnu_cxx::new_allocator<std::_List_node<ProcTriggeredData> >> = {<No data fields>}, <No data fields>}, _M_node = {_M_next = 0x2c898830, _M_prev = 0x88a7d70}}}, <No data fields>} #5 0x0000000000745ff5 in Unit::ProcDamageAndSpell (this=0x2c898860, pVictim=0x7fff6d7e0f70, procAttacker=<value optimized out>, procVictim=1572864, procExtra=1, amount=965, attType=BASE_ATTACK, procSpell=0x7fffec4db160) at ../../../src/game/Unit.cpp:4710 No locals. #6 0x00000000006cd847 in Aura::PeriodicTick (this=0x7fff5f1dcf20) at ../../../src/game/SpellAuras.cpp:6613 pCaster = <value optimized out> absorb = 0 resist = 0 amount = <value optimized out> cleanDamage = {damage = 0, attackType = BASE_ATTACK, hitOutCome = MELEE_HIT_NORMAL} isCrit = false pInfo = {aura = 0x7fff5f1dcf20, damage = 965, overDamage = 0, absorb = 0, resist = 0, multiplier = 0, critical = false} procVictim = 0 pdamage = 965
  14. hm... works fine on my core, i test on mangos soon....
  15. mtmaps ACE (8799+): http://paste2.org/p/508050
  16. If you are using mtmaps, need: MapUpdate.Threads = 2 in mangosd.conf, 4+ very unstable disable save,saveall commands and server save time interval 10-20 min. And patch for database, prevent crashes on SqlDelayThread and removed ACE_Based::Thread::Sleep(10), thx Derex and Ambal. http://paste2.org/p/528578 - updated, fixed typo in include, sorry
  17. -DFD_SETSIZE=4096 - for login 1k+ -O2 - optimize compile flag -pipe - optimize compile flag -m64 - for 64bit OS -march=core2 - optimization for CPU, if gcc 4.3+ core2 or if Xeon -march=nocona if Core 2 Duo, Quad Core -march=prescott -ffast-math - fast mathematical operations -fno-strength-reduce -fno-strict-aliasing -frename-registers -fomit-frame-pointer not remember, but not over
  18. Intel® Core i7 CPU 975 @ 3.33GHz Quad Core x 2, 8 cores vmap.enableLOS = 1 vmap.enableHeight = 1 vmap.ignoreMapIds = "369, 0, 1, 571, 530" vmap.ignoreSpellIds = "7720" vmap.totems = 1(my patch) vmap.pets = 1(my patch) DetectPosCollision = 0 TargetPosRecalculateRange = 2 Visibility.GroupMode = 0 Visibility.Distance.Continents = 66 Visibility.Distance.Instances = 60 Visibility.Distance.BGArenas = 66 Visibility.Distance.Object = 60 Visibility.Distance.InFlight = 50 Visibility.Distance.Grey.Unit = 1 Visibility.Distance.Grey.Object = 10 #Visibility patch Visibility.Notify.Period.OnContinents = 1100 Visibility.Notify.Period.InInstances = 1100 Visibility.Notify.Period.InBGArenas = 1100 innodb_buffer_pool_size normal ~900, no problems Info for innodb plugin and mysql 5.1: http://greenmice.info/en/node/85(russian)
  19. I'm used ace mtmaps on last rev, very stable in MapUpdate.Threads = 2 uptime 8-21 h on 2800-3100 ppl online, without lags My mysql.conf max_allowed_packet = 128M table_cache = 4096 join_buffer_size = 8M sort_buffer_size = 4M read_buffer_size = 4M read_rnd_buffer_size = 16M myisam_sort_buffer_size = 128M thread_cache_size = 64 thread_stack = 256K query_cache_size = 512M query_cache_limit = 32M thread_concurrency = 16 innodb_file_per_table=1 innodb_file_format=Barracuda innodb_buffer_pool_size = 955M innodb_additional_mem_pool_size = 32M innodb_flush_log_at_trx_commit = 0 innodb_flush_method = O_DSYNC innodb_table_locks = 0 innodb_thread_concurrency = 8 Need install Innodb plugin, +10% performance and added in my.conf Innodb plugin for mysql 5.1.37 http://www.innodb.com/download/innodb_plugin/innodb_plugin-1.0.4-linux-x86_64-glibc23.tar.gz ignore_builtin_innodb plugin_load=innodb=ha_innodb.so;innodb_trx=ha_innodb.so;innodb_locks=ha_innodb.so;innodb_lock_waits=ha_innodb.so;innodb_cmp=ha_innodb.so;innodb_cmp_reset=ha_innodb.so;innodb_cmpmem=ha_innodb.so;innodb_cmpmem_reset=ha_innodb.so Mangos compile flags: ../configure CFLAGS="-O2 -m64 -pipe -DFD_SETSIZE=4096 -march=core2 -fomit-frame-pointer -ffast-math -fno-strength-reduce -fno-strict-aliasing -frename-registers" CXXFLAGS="-O2 -m64 -pipe -DFD_SETSIZE=4096 -march=core2 -fomit-frame-pointer -ffast-math -fno-strength-reduce -fno-strict-aliasing -frename-registers" --prefix=/home/server --sysconfdir=/home/server/etc --datadir=/home/server --enable-cli --enable-ra --disable-builtin-ace Packets and OS: ACE 5.7.2, gcc 4.4.2, mysql 5.1.37-2, Linux Debian 5.0 64 bit CPU Core i7 975 3.3Ghz Quad Core x2 12GB RAM DDR3 HDD 300 Gb SAS 15000rpm x2
  20. OpenMP: In gcc 4.3.x OpenMP 2.0, gcc 4.4.x OpenMP 3.0 maybe in gcc 4.1.x, 4.2.x OpenMP 1.0 ? i tested on gcc 4.3.3, 4.3.4, 4.4.2 works fine ACE: latest version(5.7.4): http://download.dre.vanderbilt.edu/previous_versions/?C=M;O=D i tested on ACE 5.6.9, 5.7.0, 5.7.2 but on 5.7.4 i have had problems with stability, i use 5.7.2 I recommend to use gcc 4.4.2 and ACE 5.7.2
  21. I'm using -march=core2 and gcc 4.4.2;) uses 2 cores, 2500 with no lag In a choice between OpenMP and ACE, i choose ACE(5.7.x)
  22. I will update ACE and OpenMP in the evening -- updated: mtmaps OpenMP (8799+): http://paste2.org/p/508049 mtmaps ACE (8799+): http://paste2.org/p/508050
  23. For 8786+ http://paste2.org/p/504873 but old too would work
  24. try again #pragma omp critical(UpdateThreadSafety) { m_Events.Update( p_time ); _UpdateSpells( p_time ); } in Unit.cpp, updated m_Events.Update, _UpdateSpells in 1 thread
  25. Patch for rev 8779+(master) http://paste2.org/p/502055 - Updated(fixed link on nix) What new in patch: 1) Update to last rev 8779+ 2) Added some Guard in ObjectAccessor, Map(for more stable work) 3) Added ACE_Thread_Mutex for LinkMap/UnlinkMap/FindHelper in ObjectAccessor(for more stable work) 4) Small cleanup code in MapManager::Update 5) Removed wrong #pragma omp task of World 6) Removed wrong #pragma omp critical of Util(these functions are safe in a multithreaded) 7) Removed win support(only *nix)
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use