From 9a324379e748d56ff09c016ffa5d9580f7daf5bb Mon Sep 17 00:00:00 2001 From: Oren Hurvitz Date: Mon, 16 Apr 2018 14:59:53 +0300 Subject: [PATCH 1/3] Added a warning if we can't send some of an entity's properties to the entity server. This can happen if a property is too large to be sent in a single UDP packet. This commit doesn't fix the underlying problem, but it makes it possible to see that the problem happened. See: Large 'userData' can't be sent to the entity server https://github.com/highfidelity/hifi/issues/12794 --- libraries/entities/src/EntityEditPacketSender.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libraries/entities/src/EntityEditPacketSender.cpp b/libraries/entities/src/EntityEditPacketSender.cpp index 5d7bd61854..d458c36f79 100644 --- a/libraries/entities/src/EntityEditPacketSender.cpp +++ b/libraries/entities/src/EntityEditPacketSender.cpp @@ -119,7 +119,10 @@ void EntityEditPacketSender::queueEditEntityMessage(PacketType type, while (encodeResult == OctreeElement::PARTIAL) { encodeResult = EntityItemProperties::encodeEntityEditPacket(type, entityItemID, propertiesCopy, bufferOut, requestedProperties, didntFitProperties); - if (encodeResult != OctreeElement::NONE) { + if (encodeResult == OctreeElement::NONE) { + qCWarning(entities).nospace() << "queueEditEntityMessage: some of the properties don't fit and can't be sent. entityID=" << uuidStringWithoutCurlyBraces(entityItemID); + } + else { #ifdef WANT_DEBUG qCDebug(entities) << "calling queueOctreeEditMessage()..."; qCDebug(entities) << " id:" << entityItemID; From c0052004de51ea04ca9dbe8ba415ca8a5f4a1093 Mon Sep 17 00:00:00 2001 From: Oren Hurvitz Date: Sun, 22 Apr 2018 13:51:41 +0300 Subject: [PATCH 2/3] Explained an edge case that can cause us to fail to send some entity properties --- libraries/entities/src/EntityEditPacketSender.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libraries/entities/src/EntityEditPacketSender.cpp b/libraries/entities/src/EntityEditPacketSender.cpp index d458c36f79..3d2f0bd069 100644 --- a/libraries/entities/src/EntityEditPacketSender.cpp +++ b/libraries/entities/src/EntityEditPacketSender.cpp @@ -120,6 +120,10 @@ void EntityEditPacketSender::queueEditEntityMessage(PacketType type, encodeResult = EntityItemProperties::encodeEntityEditPacket(type, entityItemID, propertiesCopy, bufferOut, requestedProperties, didntFitProperties); if (encodeResult == OctreeElement::NONE) { + // This can happen for two reasons: + // 1. One of the properties is too large to fit in a single packet. + // 2. The requested properties don't exist in this entity type (e.g., 'modelUrl' in a Zone Entity). + // Since case #1 is more likely (and more critical), that's the one we warn about. qCWarning(entities).nospace() << "queueEditEntityMessage: some of the properties don't fit and can't be sent. entityID=" << uuidStringWithoutCurlyBraces(entityItemID); } else { From b9306a35cc906e2a2259c0c5a785a48f003ab4f8 Mon Sep 17 00:00:00 2001 From: Oren Hurvitz Date: Wed, 30 May 2018 11:01:07 +0300 Subject: [PATCH 3/3] Fixed formatting --- libraries/entities/src/EntityEditPacketSender.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libraries/entities/src/EntityEditPacketSender.cpp b/libraries/entities/src/EntityEditPacketSender.cpp index 3d2f0bd069..dfbb4b4871 100644 --- a/libraries/entities/src/EntityEditPacketSender.cpp +++ b/libraries/entities/src/EntityEditPacketSender.cpp @@ -125,8 +125,7 @@ void EntityEditPacketSender::queueEditEntityMessage(PacketType type, // 2. The requested properties don't exist in this entity type (e.g., 'modelUrl' in a Zone Entity). // Since case #1 is more likely (and more critical), that's the one we warn about. qCWarning(entities).nospace() << "queueEditEntityMessage: some of the properties don't fit and can't be sent. entityID=" << uuidStringWithoutCurlyBraces(entityItemID); - } - else { + } else { #ifdef WANT_DEBUG qCDebug(entities) << "calling queueOctreeEditMessage()..."; qCDebug(entities) << " id:" << entityItemID;