Crashs core - Besoin d'aide
Bonjour à tous,

voilà mon core fonctionnait très bien après quelques modifications (ajout d'un patch annonce broadcast, interfactions, etc.).

Afin de l'améliorer encore, j'ai voulu passer le patch vehicules sur mon core. Je précise que je n'utilise pas Git et que dans un souci de compréhension du core je mets les patches "à la main". Je n'ai pas eu de souci particulier, le core a bien compilé.

Mais maintenant, le serveur est très instable et j'ai des crashs lorsque j'essaye de dégrouper, ou même de me déconnecter...

Ci-dessous les logs :

Dégroupage
Code :
Revision: * * 10878 *
Date 14:3:2011. Time 18:2
//=====================================================
*** Hardware ***
Processor: Intel(R) Core(TM) i5 CPU       M 460  @ 2.53GHz
Number Of Processors: 4
Physical Memory: 4110412 KB (Available: 1859916 KB)
Commit Charge Limit: 4194303 KB

*** Operation System ***
Windows Vista or Windows Server 2008 Home Edition (Version 6.1, Build 7600)

//=====================================================
Exception code: C0000005 ACCESS_VIOLATION
Fault address:  004C9372 01:000C8372 D:\Opus Dei Serveur\master_r1.17\master\bin\win32_release\mangosd.exe

Registers:
EAX:00000000
EBX:0848FCBC
ECX:00000000
EDX:00000000
ESI:00000097
EDI:00000000
CS:EIP:0023:004C9372
SS:ESP:002B:0848FC98  EBP:0848FCA8
DS:002B  ES:002B  FS:0053  GS:002B
Flags:00010246

Call stack:
Address   Frame     Function      SourceFile
004C9372  00000000  std::_Hash<std::tr1::_Umap_traits<unsigned __int64,Creature *,std::_Hash_compare<unsigned __int64,std::hash<unsigned __int64>,std::equal_to<unsigned __int64> >,std::allocator<std::pair<unsigned __int64 const ,Creature *> >,0> >::lower_bound+12
0056F858  00000000  Map::GetCreature+28
00498DF6  00000000  Unit::GetTotem+36
004D5D7B  00000000  Group::BroadcastGroupUpdate+11B
004DACBF  00000000  Group::RemoveMember+2F
004F645C  00000000  Player::RemoveFromGroup+1C
00738AEC  00000000  WorldSession::HandleGroupDisbandOpcode+11C
005F3241  00000000  WorldSession::ExecuteOpcode+21
005F7BD9  00000000  WorldSession::Update+C9
00475018  00000000  World::UpdateSessions+98
00476C03  00000000  World::Update+143
004479C9  00000000  WorldRunnable::run+E9
00455F60  00000000  ACE_Based::Thread::ThreadTask+10
6A287064  00000000  ACE_OS_Thread_Adapter::invoke+74
6A1CC6DE  00000000  _endthreadex+3A
6A1CC788  00000000  _endthreadex+E4
75643677  00000000  BaseThreadInitThunk+12
77179F02  00000000  RtlInitializeExceptionChain+63
77179ED5  00000000  RtlInitializeExceptionChain+36
========================
Local Variables And Parameters

Call stack:
Address   Frame     Function      SourceFile
004C9372  00000000  std::_Hash<std::tr1::_Umap_traits<unsigned __int64,Creature *,std::_Hash_compare<unsigned __int64,std::hash<unsigned __int64>,std::equal_to<unsigned __int64> >,std::allocator<std::pair<unsigned __int64 const ,Creature *> >,0> >::lower_bound+12
    Local  <user defined> '_Keyval'
    Local  <user defined> '_Where'

0056F858  00000000  Map::GetCreature+28
    Local  <user defined> 'guid'

00498DF6  00000000  Unit::GetTotem+36
    Local  <user defined> 'slot'

004D5D7B  00000000  Group::BroadcastGroupUpdate+11B
    Local  <user defined> 'citr'

004DACBF  00000000  Group::RemoveMember+2F
    Local  <user defined> 'guid'
punting on symbol method
punting on symbol leaderChanged
    Local  <user defined> 'data'
    Local  <user defined> 'data'

004F645C  00000000  Player::RemoveFromGroup+1C
    Local  <user defined> 'group'
    Local  <user defined> 'guid'

00738AEC  00000000  WorldSession::HandleGroupDisbandOpcode+11C
    Local  <user defined> '__formal'

005F3241  00000000  WorldSession::ExecuteOpcode+21
    Local  <user defined> 'opHandle'
    Local  <user defined> 'packet'

005F7BD9  00000000  WorldSession::Update+C9
punting on symbol diff
    Local  <user defined> 'updater'
    Local  <user defined> 'packet'

00475018  00000000  World::UpdateSessions+98
punting on symbol diff
    Local  <user defined> 'sess'
    Local  <user defined> 'next'
    Local  <user defined> 'updater'

00476C03  00000000  World::Update+143
punting on symbol diff
punting on symbol maxClientsNum

004479C9  00000000  WorldRunnable::run+E9
punting on symbol prevSleepTime

00455F60  00000000  ACE_Based::Thread::ThreadTask+10
punting on symbol param

6A287064  00000000  ACE_OS_Thread_Adapter::invoke+74
punting on symbol status

6A1CC6DE  00000000  _endthreadex+3A

6A1CC788  00000000  _endthreadex+E4

75643677  00000000  BaseThreadInitThunk+12

77179F02  00000000  RtlInitializeExceptionChain+63

77179ED5  00000000  RtlInitializeExceptionChain+36

========================
Global Variables

et celui de la déconnexion :
Code :
Revision: * * 10878 *
Date 14:3:2011. Time 18:6
//=====================================================
*** Hardware ***
Processor: Intel(R) Core(TM) i5 CPU       M 460  @ 2.53GHz
Number Of Processors: 4
Physical Memory: 4110412 KB (Available: 1871940 KB)
Commit Charge Limit: 4194303 KB

*** Operation System ***
Windows Vista or Windows Server 2008 Home Edition (Version 6.1, Build 7600)

//=====================================================
Exception code: C0000005 ACCESS_VIOLATION
Fault address:  004C9372 01:000C8372 D:\Opus Dei Serveur\master_r1.17\master\bin\win32_release\mangosd.exe

Registers:
EAX:00000000
EBX:082EDC40
ECX:00000000
EDX:00000000
ESI:00000097
EDI:00000000
CS:EIP:0023:004C9372
SS:ESP:002B:082EDC1C  EBP:082EDC2C
DS:002B  ES:002B  FS:0053  GS:002B
Flags:00010246

Call stack:
Address   Frame     Function      SourceFile
004C9372  00000000  std::_Hash<std::tr1::_Umap_traits<unsigned __int64,Creature *,std::_Hash_compare<unsigned __int64,std::hash<unsigned __int64>,std::equal_to<unsigned __int64> >,std::allocator<std::pair<unsigned __int64 const ,Creature *> >,0> >::lower_bound+12
0056F858  00000000  Map::GetCreature+28
00498DF6  00000000  Unit::GetTotem+36
004D5D7B  00000000  Group::BroadcastGroupUpdate+11B
004DACBF  00000000  Group::RemoveMember+2F
004F645C  00000000  Player::RemoveFromGroup+1C
005F76E1  00000000  WorldSession::LogoutPlayer+801
007E1DBC  00000000  WorldSession::HandleLogoutRequestOpcode+1EC
005F3241  00000000  WorldSession::ExecuteOpcode+21
005F7BD9  00000000  WorldSession::Update+C9
00475018  00000000  World::UpdateSessions+98
00476C03  00000000  World::Update+143
004479C9  00000000  WorldRunnable::run+E9
00455F60  00000000  ACE_Based::Thread::ThreadTask+10
6A287064  00000000  ACE_OS_Thread_Adapter::invoke+74
6A1CC6DE  00000000  _endthreadex+3A
6A1CC788  00000000  _endthreadex+E4
75643677  00000000  BaseThreadInitThunk+12
77179F02  00000000  RtlInitializeExceptionChain+63
77179ED5  00000000  RtlInitializeExceptionChain+36
========================
Local Variables And Parameters

Call stack:
Address   Frame     Function      SourceFile
004C9372  00000000  std::_Hash<std::tr1::_Umap_traits<unsigned __int64,Creature *,std::_Hash_compare<unsigned __int64,std::hash<unsigned __int64>,std::equal_to<unsigned __int64> >,std::allocator<std::pair<unsigned __int64 const ,Creature *> >,0> >::lower_bound+12
    Local  <user defined> '_Keyval'
    Local  <user defined> '_Where'

0056F858  00000000  Map::GetCreature+28
    Local  <user defined> 'guid'

00498DF6  00000000  Unit::GetTotem+36
    Local  <user defined> 'slot'

004D5D7B  00000000  Group::BroadcastGroupUpdate+11B
    Local  <user defined> 'citr'

004DACBF  00000000  Group::RemoveMember+2F
    Local  <user defined> 'guid'
punting on symbol method
punting on symbol leaderChanged
    Local  <user defined> 'data'
    Local  <user defined> 'data'

004F645C  00000000  Player::RemoveFromGroup+1C
    Local  <user defined> 'group'
    Local  <user defined> 'guid'

005F76E1  00000000  WorldSession::LogoutPlayer+801
punting on symbol Save
    Local  <user defined> 'data'
    Local  <user defined> 'aset'
    Local  <user defined> 'itr'
    Local  <user defined> 'guild'

007E1DBC  00000000  WorldSession::HandleLogoutRequestOpcode+1EC
    Local  <user defined> '__formal'
    Local  <user defined> 'data'
    Local  <user defined> 'data'
    Local  <user defined> 'data'

005F3241  00000000  WorldSession::ExecuteOpcode+21
    Local  <user defined> 'opHandle'
    Local  <user defined> 'packet'

005F7BD9  00000000  WorldSession::Update+C9
punting on symbol diff
    Local  <user defined> 'updater'
    Local  <user defined> 'packet'

00475018  00000000  World::UpdateSessions+98
punting on symbol diff
    Local  <user defined> 'sess'
    Local  <user defined> 'next'
    Local  <user defined> 'updater'

00476C03  00000000  World::Update+143
punting on symbol diff
punting on symbol maxClientsNum

004479C9  00000000  WorldRunnable::run+E9
punting on symbol prevSleepTime

00455F60  00000000  ACE_Based::Thread::ThreadTask+10
punting on symbol param

6A287064  00000000  ACE_OS_Thread_Adapter::invoke+74
punting on symbol status

6A1CC6DE  00000000  _endthreadex+3A

6A1CC788  00000000  _endthreadex+E4

75643677  00000000  BaseThreadInitThunk+12

77179F02  00000000  RtlInitializeExceptionChain+63

77179ED5  00000000  RtlInitializeExceptionChain+36

========================
Global Variables

Je vois bien que l'erreur se situe au même endroit dans les 2 cas, mais la je sèche pour trouver d'où vient l'erreur Triste
Véhicules n'est pas au point du tout, ça fait crash le serveur a répétition sinon y aurait belle lurette que mangos l'aurait intégré.
Alors la seule soluce c'est de virer ton patch vehicule
Bonjour Jethro, et merci de ta réponse.

Dans l'absolu je vais donc reprendre mon core tel qu'il était avant l'insertion de ce patch.

N'y a t'il pas moyen cependant via ces logs de savoir de quel appel de méthode provient l'erreur afin d'essayer de la corriger ?
Virer le patch ? jerry

Tu peut mettre le patch vehicle ici ? on dirais un problème d'update
Voici le patch.
Pièce(s) jointe(s)
.diff  11064-vehicules.diff (Taille : 210.16 Ko)
Sinon le nouveau patch vehicle : [dl]http://paste2.org/followup/1292649[/dl]


sinon test ça pour l'ancien

[code=diff]diff --git a/src/game/MiscHandler.cpp b/src/game/MiscHandler.cpp
index b32add4..fa37a48 100644
--- a/src/game/MiscHandler.cpp
+++ b/src/game/MiscHandler.cpp
@@ -359,8 +359,8 @@ void WorldSession::HandleLogoutRequestOpcode( WorldPacket & /*recv_data*/ )
//Can not logout if...
if( GetPlayer()->isInCombat() || //...is in combat
GetPlayer()->duel || //...is in Duel
- GetPlayer()->GetVehicleGUID() || //...is in vehicle
- GetPlayer()->GetVehicleKit() || //...is in vehicle mount
+ //GetPlayer()->GetVehicleGUID() || //...is in vehicle
+ //GetPlayer()->GetVehicleKit() || //...is in vehicle mount
//...is jumping ...is falling
GetPlayer()->m_movementInfo.HasMovementFlag(MovementFlags(MOVEFLAG_FAL​LING | MOVEFLAG_FALLINGFAR)))
{
[/code]
et pour le groupe j'vois pas trop

Tiens j'ai un compte(forum) sur ce serveur(root)
(15-03-2011 11:44)Mick3y3d a écrit :  Bonjour Jethro, et merci de ta réponse.

Dans l'absolu je vais donc reprendre mon core tel qu'il était avant l'insertion de ce patch.

N'y a t'il pas moyen cependant via ces logs de savoir de quel appel de méthode provient l'erreur afin d'essayer de la corriger ?

Via ces logs, tu peux aussi. Mais tu peux aussi le débogueur intégré à Visual C++ qui te donnera exactement ce que tu voudras Clin
Oui utilise le crash dump de VC , met doboguer en natif et met nous un screen du résultat Clin
Merci pour vos réponses, ça fait toujours plaisir de voir que la communauté Emu est prête à aider les débutants Smile

J'ai modifié les 2 lignes de Kaios mais le problème reste le même : crash lors d'un dégroupage et dès la déconnexion.
Cela dit après avoir épluché les logs en long et en travers j'ai l'impression que le serveur crashe au moment du commit SQL, donc ce soir je vais essayer de purger et de relaoder ma base pour voir si ça peut résoudre le souci.

Je vais aussi utiliser le debug et vous mettrais le résultat dès que je l'aurais.
Et Asedic félicitations pour votre serveur, le concept guilde contre guilde est tout simplement génial Clin
Citation :Et Asedic félicitations pour votre serveur, le concept guilde contre guilde est tout simplement génial

On a des dev en or Heureux

Retourner en haut Accueil