That crash occurs when realmd get an unknown packet and try to "shutdown" the socket.
Note that: don't try to release an ACE_Message_Block if it is _not_ dynamically allocated.
--HG--
branch : trunk
NOTE: reload is limited to one creature at a time
Usage: .reload creature_template $entry
Warning: this is mainly for developers, reloading a creature can cause unexpected behaviors!!
--HG--
branch : trunk
Original patch by thenecromancer, was removed for ungrounded reasons.
Thanks to Zor for the insight.
Please give feedback on how this affects mtmaps usage.
--HG--
branch : trunk
It's handled correctly via table spell_linked_spell.
Also, this commit fixes the bug that spell Mutating Injection casted on the target two times by each casts.
--HG--
branch : trunk
- Update SqlAsyncTask´s destructor, properly NULLpoint SqlOperation* m_op so other threads can deal with it accordingly.
- Don´t keep NULL´d elements in transaction queues, remove them instead.
This now means you should be able to run a stable server with > 2 MapUpdate threads. Please leave feedback.
Courtesy of click and myself.
--HG--
branch : trunk
- Added blizzlike content, like texts.
- Corrected some spells and timers.
- As i saw in offi can be more than 1 player doing different parts of the chain at the same time.
- Added code to prevent the npc gets out of the ring.
- Added support for The Amphitheater of Anguish: From Beyond.
--HG--
branch : trunk
Remove it from one file and also merge the 2 scripts in one file.
The error message:
ScriptName: 'go_gilded_brazier' already assigned with the same ScriptName, so the script can't work.
--HG--
branch : trunk
The crash was mostly noticable on servers with relatively high MapUpdate Threads, since the window between SqlAsyncTask::call()´s NULLpointer check for m_op and the usage of this pointer was larger when more map threads are calling Database::CommitTransaction()´s and NULLing this pointer.
Fixes crash specified in comment #24 in issue #1259, and most likely will affect other crashes specified there as well.
Courtesy of click and myself, and our lengthy and deep brainstorming session.
--HG--
branch : trunk
This means if that happened the core override the older script.
As a result, the earlier one doesn't work and can't deallocate so generates memory leak.
This commit also fixes memory leaks caused by that.
Valgrind log:
==4753== 354 (312 direct, 42 indirect) bytes in 1 blocks are definitely lost in loss record 1,194 of 1,218
==4753== at 0x4C2626C: operator new(unsigned long) (vg_replace_malloc.c:230)
==4753== by 0x1039D85: AddSC_go_scripts() (go_scripts.cpp:1015)
==4753== by 0xDC196F: AddScripts() (ScriptLoader.cpp:534)
==4753== by 0xC19943: ScriptMgr::ScriptsInit() (ScriptMgr.cpp:70)
==4753== by 0xD1CCAE: World::SetInitialWorldSettings() (World.cpp:1608)
==4753== by 0x9100A6: Master::Run() (Master.cpp:234)
==4753== by 0x90F5D6: main (Main.cpp:146)
--HG--
branch : trunk
Log:
==31592== 312 bytes in 1 blocks are definitely lost in loss record 423 of 1,232
==31592== at 0x4C2626C: operator new(unsigned long) (vg_replace_malloc.c:230)
==31592== by 0xFC12AF: AddSC_borean_tundra() (borean_tundra.cpp:2408)
==31592== by 0xDC0BF0: AddScripts() (ScriptLoader.cpp:917)
==31592== by 0xC183F3: ScriptMgr::ScriptsInit() (ScriptMgr.cpp:70)
==31592== by 0xD1B75F: World::SetInitialWorldSettings() (World.cpp:1608)
==31592== by 0x90F34E: Master::Run() (Master.cpp:234)
==31592== by 0x90E87E: main (Main.cpp:146)
--HG--
branch : trunk
Deallocate memory in Free() which allocated by WaypointMgr.
This fixes memory leaks caused by waypoints.
Valgrind log:
==31592== 2,203,488 (59,400 direct, 2,144,088 indirect) bytes in 2,475 blocks are definitely lost in loss record 1,230 of 1,232
==31592== at 0x4C2626C: operator new(unsigned long) (vg_replace_malloc.c:230)
==31592== by 0xD0EC23: WaypointStore::Load() (WaypointManager.cpp:70)
==31592== by 0xD1B55D: World::SetInitialWorldSettings() (World.cpp:1565)
==31592== by 0x90F34E: Master::Run() (Master.cpp:234)
==31592== by 0x90E87E: main (Main.cpp:146)
==31592==
==31592==
==31592== 160 bytes in 5 blocks are possibly lost in loss record 10 of 1,232
==31592== at 0x4C2626C: operator new(unsigned long) (vg_replace_malloc.c:230)
==31592== by 0xD0EC0D: WaypointStore::Load() (WaypointManager.cpp:67)
==31592== by 0xD1B55D: World::SetInitialWorldSettings() (World.cpp:1565)
==31592== by 0x90F34E: Master::Run() (Master.cpp:234)
==31592== by 0x90E87E: main (Main.cpp:146)
==31592==
==31592==
==31592== 384 bytes in 2 blocks are possibly lost in loss record 285 of 1,232
==31592== at 0x4C2626C: operator new(unsigned long) (vg_replace_malloc.c:230)
==31592== by 0xD0F2D4: __gnu_cxx::new_allocator<WaypointData*>::allocate(unsigned long, void const*) (new_allocator.h:92)
==31592== by 0xD0F303: std::_Vector_base<WaypointData*, std::allocator<WaypointData*> >::_M_allocate(unsigned long) (stl_vector.h:144)
==31592== by 0xD0F87B: std::vector<WaypointData*, std::allocator<WaypointData*> >::_M_insert_aux(__gnu_cxx::__normal_iterator<WaypointData**, std::vector<WaypointData*, std::allocator<WaypointData*> > >, WaypointData* const&) (vector.tcc:308)
==31592== by 0xD0F9F7: std::vector<WaypointData*, std::allocator<WaypointData*> >::push_back(WaypointData* const&) (stl_vector.h:694)
==31592== by 0xD0ED0B: WaypointStore::Load() (WaypointManager.cpp:89)
==31592== by 0xD1B55D: World::SetInitialWorldSettings() (World.cpp:1565)
==31592== by 0x90F34E: Master::Run() (Master.cpp:234)
==31592== by 0x90E87E: main (Main.cpp:146)
--HG--
branch : trunk