From b2c1ed58a0e29579dfdcb2ca680b575870b06bd6 Mon Sep 17 00:00:00 2001 From: DarthArgus Date: Wed, 14 Dec 2016 04:41:43 +0000 Subject: [PATCH 1/2] forgot to actually commit this fix --- .../src/shared/core/SwgSnapshot.cpp | 136 +++++++++--------- 1 file changed, 68 insertions(+), 68 deletions(-) diff --git a/game/server/application/SwgDatabaseServer/src/shared/core/SwgSnapshot.cpp b/game/server/application/SwgDatabaseServer/src/shared/core/SwgSnapshot.cpp index e008c675..e6f04dd2 100755 --- a/game/server/application/SwgDatabaseServer/src/shared/core/SwgSnapshot.cpp +++ b/game/server/application/SwgDatabaseServer/src/shared/core/SwgSnapshot.cpp @@ -172,40 +172,40 @@ void SwgSnapshot::handleDeleteMessage(const NetworkId &objectId, int reasonCode, bool immediate, bool demandLoadedContainer, bool cascadeReason) { m_objectTableBuffer.handleDeleteMessage(objectId, reasonCode, demandLoadedContainer, cascadeReason); - m_battlefieldMarkerObjectBuffer->removeObject(objectId); - m_battlefieldParticipantBuffer->removeObject(objectId); - m_buildingObjectBuffer->removeObject(objectId); - m_bountyHunterTargetBuffer->removeObject(objectId); - m_cellObjectBuffer->removeObject(objectId); - m_cityObjectBuffer->removeObject(objectId); - m_creatureObjectBuffer->removeObject(objectId); - m_experienceBuffer->removeObject(objectId); - m_factoryObjectBuffer->removeObject(objectId); - m_guildObjectBuffer->removeObject(objectId); - m_harvesterInstallationObjectBuffer->removeObject(objectId); - m_installationObjectBuffer->removeObject(objectId); - m_intangibleObjectBuffer->removeObject(objectId); - m_locationBuffer->removeObject(objectId); - m_manufactureInstallationObjectBuffer->removeObject(objectId); - m_manufactureSchematicAttributeBuffer->removeObject(objectId); - m_manufactureSchematicObjectBuffer->removeObject(objectId); - m_messageBuffer->removeObject(objectId); - m_missionObjectBuffer->removeObject(objectId); - m_objvarBuffer->removeObject(objectId); - m_planetObjectBuffer->removeObject(objectId); - m_playerObjectBuffer->removeObject(objectId); - m_playerQuestObjectBuffer->removeObject(objectId); - m_propertyListBuffer->removeObject(objectId); - m_resourceContainerObjectBuffer->removeObject(objectId); - m_resourceTypeBuffer->removeObject(objectId); - m_scriptBuffer->removeObject(objectId); - m_shipObjectBuffer->removeObject(objectId); - m_staticObjectBuffer->removeObject(objectId); - m_tangibleObjectBuffer->removeObject(objectId); - m_universeObjectBuffer->removeObject(objectId); - m_vehicleObjectBuffer->removeObject(objectId); - m_waypointBuffer->removeObject(objectId); - m_weaponObjectBuffer->removeObject(objectId); + m_battlefieldMarkerObjectBuffer.removeObject(objectId); + m_battlefieldParticipantBuffer.removeObject(objectId); + m_buildingObjectBuffer.removeObject(objectId); + m_bountyHunterTargetBuffer.removeObject(objectId); + m_cellObjectBuffer.removeObject(objectId); + m_cityObjectBuffer.removeObject(objectId); + m_creatureObjectBuffer.removeObject(objectId); + m_experienceBuffer.removeObject(objectId); + m_factoryObjectBuffer.removeObject(objectId); + m_guildObjectBuffer.removeObject(objectId); + m_harvesterInstallationObjectBuffer.removeObject(objectId); + m_installationObjectBuffer.removeObject(objectId); + m_intangibleObjectBuffer.removeObject(objectId); + m_locationBuffer.removeObject(objectId); + m_manufactureInstallationObjectBuffer.removeObject(objectId); + m_manufactureSchematicAttributeBuffer.removeObject(objectId); + m_manufactureSchematicObjectBuffer.removeObject(objectId); + m_messageBuffer.removeObject(objectId); + m_missionObjectBuffer.removeObject(objectId); + m_objvarBuffer.removeObject(objectId); + m_planetObjectBuffer.removeObject(objectId); + m_playerObjectBuffer.removeObject(objectId); + m_playerQuestObjectBuffer.removeObject(objectId); + m_propertyListBuffer.removeObject(objectId); + m_resourceContainerObjectBuffer.removeObject(objectId); + m_resourceTypeBuffer.removeObject(objectId); + m_scriptBuffer.removeObject(objectId); + m_shipObjectBuffer.removeObject(objectId); + m_staticObjectBuffer.removeObject(objectId); + m_tangibleObjectBuffer.removeObject(objectId); + m_universeObjectBuffer.removeObject(objectId); + m_vehicleObjectBuffer.removeObject(objectId); + m_waypointBuffer.removeObject(objectId); + m_weaponObjectBuffer.removeObject(objectId); if (immediate && (getMode() != DB::ModeQuery::mode_INSERT)) { if (!m_immediateDeleteStep) { @@ -466,40 +466,40 @@ bool SwgSnapshot::load(DB::Session *session) { m_objectTableBuffer.getTags(tags); // the buffer list was fucked so we'll do this the old fashioned way - if (!((m_battlefieldMarkerObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; } - if (!((m_battlefieldParticipantBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; } - if (!((m_buildingObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; } - if (!((m_bountyHunterTargetBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; } - if (!((m_cellObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; } - if (!((m_cityObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; } - if (!((m_creatureObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; } - if (!((m_experienceBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; } - if (!((m_factoryObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; } - if (!((m_guildObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; } - if (!((m_harvesterInstallationObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; } - if (!((m_installationObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; } - if (!((m_intangibleObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; } - if (!((m_locationBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; } - if (!((m_manufactureInstallationObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; } - if (!((m_manufactureSchematicAttributeBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; } - if (!((m_manufactureSchematicObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; } - if (!((m_messageBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; } - if (!((m_missionObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; } - if (!((m_objvarBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; } - if (!((m_planetObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; } - if (!((m_playerObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; } - if (!((m_playerQuestObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; } - if (!((m_propertyListBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; } - if (!((m_resourceContainerObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; } - if (!((m_resourceTypeBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; } - if (!((m_scriptBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; } - if (!((m_shipObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; } - if (!((m_staticObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; } - if (!((m_tangibleObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; } - if (!((m_universeObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; } - if (!((m_vehicleObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; } - if (!((m_waypointBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; } - if (!((m_weaponObjectBuffer)->load(session, tags, schema, getUseGoldDatabase()))) { return false; } + if (!((m_battlefieldMarkerObjectBuffer).load(session, tags, schema, getUseGoldDatabase()))) { return false; } + if (!((m_battlefieldParticipantBuffer).load(session, tags, schema, getUseGoldDatabase()))) { return false; } + if (!((m_buildingObjectBuffer).load(session, tags, schema, getUseGoldDatabase()))) { return false; } + if (!((m_bountyHunterTargetBuffer).load(session, tags, schema, getUseGoldDatabase()))) { return false; } + if (!((m_cellObjectBuffer).load(session, tags, schema, getUseGoldDatabase()))) { return false; } + if (!((m_cityObjectBuffer).load(session, tags, schema, getUseGoldDatabase()))) { return false; } + if (!((m_creatureObjectBuffer).load(session, tags, schema, getUseGoldDatabase()))) { return false; } + if (!((m_experienceBuffer).load(session, tags, schema, getUseGoldDatabase()))) { return false; } + if (!((m_factoryObjectBuffer).load(session, tags, schema, getUseGoldDatabase()))) { return false; } + if (!((m_guildObjectBuffer).load(session, tags, schema, getUseGoldDatabase()))) { return false; } + if (!((m_harvesterInstallationObjectBuffer).load(session, tags, schema, getUseGoldDatabase()))) { return false; } + if (!((m_installationObjectBuffer).load(session, tags, schema, getUseGoldDatabase()))) { return false; } + if (!((m_intangibleObjectBuffer).load(session, tags, schema, getUseGoldDatabase()))) { return false; } + if (!((m_locationBuffer).load(session, tags, schema, getUseGoldDatabase()))) { return false; } + if (!((m_manufactureInstallationObjectBuffer).load(session, tags, schema, getUseGoldDatabase()))) { return false; } + if (!((m_manufactureSchematicAttributeBuffer).load(session, tags, schema, getUseGoldDatabase()))) { return false; } + if (!((m_manufactureSchematicObjectBuffer).load(session, tags, schema, getUseGoldDatabase()))) { return false; } + if (!((m_messageBuffer).load(session, tags, schema, getUseGoldDatabase()))) { return false; } + if (!((m_missionObjectBuffer).load(session, tags, schema, getUseGoldDatabase()))) { return false; } + if (!((m_objvarBuffer).load(session, tags, schema, getUseGoldDatabase()))) { return false; } + if (!((m_planetObjectBuffer).load(session, tags, schema, getUseGoldDatabase()))) { return false; } + if (!((m_playerObjectBuffer).load(session, tags, schema, getUseGoldDatabase()))) { return false; } + if (!((m_playerQuestObjectBuffer).load(session, tags, schema, getUseGoldDatabase()))) { return false; } + if (!((m_propertyListBuffer).load(session, tags, schema, getUseGoldDatabase()))) { return false; } + if (!((m_resourceContainerObjectBuffer).load(session, tags, schema, getUseGoldDatabase()))) { return false; } + if (!((m_resourceTypeBuffer).load(session, tags, schema, getUseGoldDatabase()))) { return false; } + if (!((m_scriptBuffer).load(session, tags, schema, getUseGoldDatabase()))) { return false; } + if (!((m_shipObjectBuffer).load(session, tags, schema, getUseGoldDatabase()))) { return false; } + if (!((m_staticObjectBuffer).load(session, tags, schema, getUseGoldDatabase()))) { return false; } + if (!((m_tangibleObjectBuffer).load(session, tags, schema, getUseGoldDatabase()))) { return false; } + if (!((m_universeObjectBuffer).load(session, tags, schema, getUseGoldDatabase()))) { return false; } + if (!((m_vehicleObjectBuffer).load(session, tags, schema, getUseGoldDatabase()))) { return false; } + if (!((m_waypointBuffer).load(session, tags, schema, getUseGoldDatabase()))) { return false; } + if (!((m_weaponObjectBuffer).load(session, tags, schema, getUseGoldDatabase()))) { return false; } DEBUG_REPORT_LOG(ConfigServerDatabase::getLogObjectLoading(), ("Load end.\n")); } else { From 5633f4be856e1f0a951e39163cfffb76ea2fc94f Mon Sep 17 00:00:00 2001 From: DarthArgus Date: Wed, 14 Dec 2016 15:47:20 +0000 Subject: [PATCH 2/2] tcpclient: bump the timeout from 0ms to 3000ms before we decide to die --- engine/shared/library/sharedNetwork/src/linux/TcpClient.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/engine/shared/library/sharedNetwork/src/linux/TcpClient.cpp b/engine/shared/library/sharedNetwork/src/linux/TcpClient.cpp index 8acf1289..e053c695 100755 --- a/engine/shared/library/sharedNetwork/src/linux/TcpClient.cpp +++ b/engine/shared/library/sharedNetwork/src/linux/TcpClient.cpp @@ -373,7 +373,7 @@ void TcpClient::queryConnect () pfd.fd = m_socket; pfd.events = POLLOUT; pfd.revents = 0; - int pollResult = poll(&pfd, 1, 0); + int pollResult = poll(&pfd, 1, 3000); if(pollResult > 0) { if (pfd.revents & POLLERR) @@ -483,7 +483,7 @@ void TcpClient::update() pfd.fd = m_socket; pfd.events = POLLIN|POLLHUP; pfd.revents = 0; - int pollResult = poll (&pfd, 1, 0); + int pollResult = poll (&pfd, 1, 3000); // POLLERR is mutually exclusive with POLLIN and POLLHUP. // POLLIN and POLLHUP are not consistent cross-platform. Additionally, // a POLLHUP doesn't mean that there's not data available. The best,