From 34d841161eb2a0c3fee03c45536f8e73b779418f Mon Sep 17 00:00:00 2001 From: DarthArgus Date: Thu, 15 Dec 2016 04:00:30 +0000 Subject: [PATCH 1/2] if we don't find an object, request it be unloaded regardless of existence, to hopefully clear it to work next load attempt --- .../library/serverGame/src/shared/core/GameServer.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/engine/server/library/serverGame/src/shared/core/GameServer.cpp b/engine/server/library/serverGame/src/shared/core/GameServer.cpp index 816f34a9..18315bda 100755 --- a/engine/server/library/serverGame/src/shared/core/GameServer.cpp +++ b/engine/server/library/serverGame/src/shared/core/GameServer.cpp @@ -1340,11 +1340,14 @@ void GameServer::receiveMessage(const MessageDispatch::Emitter & source, const M LoadObjectMessage const t(ri); ServerObject *const target = ServerWorld::findObjectByNetworkId(t.getId()); - if (target) + if (target) { createRemoteProxy(t.getProcess(), target); - else - WARNING(true, ("Told to create object %s on %d we know nothing about (received LoadObjectMessage for an object not on this server, PlanetServer is probably confused)", t - .getId().getValueString().c_str(), t.getProcess())); + } else { + WARNING(true, ("Told to create object %s on %d we know nothing about. Requesting unload.", t.getId().getValueString().c_str(), t.getProcess())); + + UnloadObjectMessage const t(ri); + target->unload(); + } break; } case constcrc("UnloadObjectMessage") : { From fc750011bc30c377b9c9e92d5c55c7effd4a0b99 Mon Sep 17 00:00:00 2001 From: DarthArgus Date: Thu, 15 Dec 2016 04:47:37 +0000 Subject: [PATCH 2/2] strike that... --- .../server/library/serverGame/src/shared/core/GameServer.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/engine/server/library/serverGame/src/shared/core/GameServer.cpp b/engine/server/library/serverGame/src/shared/core/GameServer.cpp index 18315bda..436d2722 100755 --- a/engine/server/library/serverGame/src/shared/core/GameServer.cpp +++ b/engine/server/library/serverGame/src/shared/core/GameServer.cpp @@ -1343,10 +1343,7 @@ void GameServer::receiveMessage(const MessageDispatch::Emitter & source, const M if (target) { createRemoteProxy(t.getProcess(), target); } else { - WARNING(true, ("Told to create object %s on %d we know nothing about. Requesting unload.", t.getId().getValueString().c_str(), t.getProcess())); - - UnloadObjectMessage const t(ri); - target->unload(); + WARNING(true, ("Told to create object %s on %d we know nothing about", t.getId().getValueString().c_str(), t.getProcess())); } break; }