Jump to content

[Crash 0.12] Map::Remove


Auntie Mangos

Recommended Posts

  • 40 years later...

Hmm I'm still investigating any problem related to the CleanupsBeforeDelete() function for a Creature type object (since THAT seems to be the problem) but no result so far, except that the Creature object doesn't seem to have it's own CleanupsBeforeDelete function but uses directly the Unit:: one (at least I suppose so), unlike WorldObject and Player objects (but I don't see how this is a problem : the code there didn't change lately AND Creature object is a Unit, so it's normal it uses the Unit::CleanupsBeforeDelete function)

I'm not sure I'm realy clear here :P Anyway, that crash happened to me once, but these last couple of days, no more crashes of that kind. I got a RemoveAura one, thought...

Link to comment
Share on other sites

i've remark that when the server crash, i've got 4/5 chain crash and often i've the same value in "this" var

Map::Remove<Creature> (this=0x33d0000, obj=0x7fb2bad3e080, remove=true) at ../../../src/game/Map.cpp:796

Map::Remove<Creature> (this=0x33d0000, obj=0x7fa844312080, remove=true) at ../../../src/game/Map.cpp:796

Map::Remove<Creature> (this=0x33d0000, obj=0x7fecb4282080, remove=true) at ../../../src/game/Map.cpp:796

Link to comment
Share on other sites

I think I found the problem, and for this crash it's come from possess spell (Since s0074) in fact I think we have a problem when the core try to delete a creature in other map that the owner.

For the moment I've comment the condition for remove pet and only do the movefollow and seem to work

Further I think we can add pet->GetMap() == caster->GetMap() in the condition to remove

Link to comment
Share on other sites

Patman128, I meant there is still chance some characters remains on the same position so the map is requested once again (the server load the map that had the problem once again) so if it has a problem, it's normal some crash come again (Dunno if I'm clear, my english is pretty lame)

Link to comment
Share on other sites

Patman128, I meant there is still chance some characters remains on the same position so the map is requested once again (the server load the map that had the problem once again) so if it has a problem, it's normal some crash come again (Dunno if I'm clear, my english is pretty lame)

Yes this is what I thought you meant, but when you said "right away" it threw me off.

Link to comment
Share on other sites

I confirm my idea it's this the problem

// out of range pet dismissed

if (!pet->IsWithinDistInMap(p_caster, pet->GetMap()->GetVisibilityDistance()))

{

pet->Remove(PET_SAVE_NOT_IN_SLOT, true);

}

else

{

pet->GetMotionMaster()->MoveFollow(caster, PET_FOLLOW_DIST, PET_FOLLOW_ANGLE);

pet->AddSplineFlag(SPLINEFLAG_WALKMODE);

}

I 've remove the Remove() function and now i'm at 3days uptime

I will try this but i'm waiting for a crash so this isn't apply a the moment

// out of range & same map, pet dismissed

if (!pet->IsWithinDistInMap(p_caster, pet->GetMap()->GetVisibilityDistance()) && (pet->GetMap() == caster->GetMap()))

{

pet->Remove(PET_SAVE_NOT_IN_SLOT, true);

}

else

{

pet->GetMotionMaster()->MoveFollow(caster, PET_FOLLOW_DIST, PET_FOLLOW_ANGLE);

pet->AddSplineFlag(SPLINEFLAG_WALKMODE);

}

Link to comment
Share on other sites

Yes after many search and a nice report from one of my players, I got the bug that way :

In stratholme, a hunter using eye of the beast (controlling his pet) makes it enter a Ziggourat in the instance : crash. Then, everytime he tries to reconnect, the server crashes (that could explain why you got repeated crashes, one of your player should have this kind of issue and tried to reconnect regularely too).

After deleted his pet from the DB he could reconnect and the crashes stopped.

So it's definitely about the pet and around the code you pointed.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • 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