Ecran de chargement fige : le serveur ne repondait pas aux tables DB2 inconnues

Preuve dans Server.log, exactement une fois par tentative de connexion
bloquee :
  CMSG_DB_QUERY_BULK: [Daemon] requested unsupported unknown hotfix type:
  3386291891

HandleDBQueryBulk se contentait de journaliser puis de RETURN sans envoyer
la moindre reponse. Le client, qui attend une reponse par enregistrement
demande, restait bloque indefiniment a lecran de chargement.

Corrige en emettant une reponse negative (Allow a false) pour chaque
enregistrement demande, comme le fait deja la branche enregistrement
introuvable juste en dessous.

Portee generale : nimporte quel client reclamant une table que ce core ne
connait pas restait bloque, quelle que soit la carte. La table en cause ici
etait 0xC9D6B6B3, absente des metadonnees du core.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
SylvaniaCore deploy
2026-08-21 22:56:32 +02:00
parent 67ed679f9c
commit d10873b2b2
@@ -29,6 +29,22 @@ void WorldSession::HandleDBQueryBulk(WorldPackets::Hotfix::DBQueryBulk& dbQuery)
if (!store)
{
TC_LOG_ERROR("network", "CMSG_DB_QUERY_BULK: %s requested unsupported unknown hotfix type: %u", GetPlayerInfo().c_str(), dbQuery.TableHash);
// Repondre malgre tout, une reponse negative par enregistrement demande.
// Sans cela le serveur ne renvoyait RIEN et le client attendait
// indefiniment : ecran de chargement fige, joueur incapable dentrer
// dans le monde. Constate le 21/08/2026 sur la carte 1468 (Caveau des
// Gardiennes) : le client reclamait la table 0xC9D6B6B3, que ce core ne
// connait pas, et lerreur apparaissait exactement une fois par
// tentative de connexion bloquee.
for (WorldPackets::Hotfix::DBQueryBulk::DBQueryRecord const& record : dbQuery.Queries)
{
WorldPackets::Hotfix::DBReply dbReply;
dbReply.TableHash = dbQuery.TableHash;
dbReply.RecordID = record.RecordID;
dbReply.Timestamp = time(NULL);
SendPacket(dbReply.Write());
}
return;
}