From 6cd8e1519f17c8ed3569ded3f4cd394f2a07b51f Mon Sep 17 00:00:00 2001 From: John Knox Date: Tue, 19 Feb 2019 08:47:57 -0800 Subject: [PATCH] Log start of payloads that are too big to send Summary: We've seen some crashes from toRSocketPayload, but aren't sure of the cause. When we fail the DCHECK, there won't be any log output, so log before it if it's going to fail. Reviewed By: passy Differential Revision: D14131409 fbshipit-source-id: b71e043f0b5feac3d2e44a34cc38c72086f966ad --- xplat/Flipper/FlipperConnectionManagerImpl.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/xplat/Flipper/FlipperConnectionManagerImpl.cpp b/xplat/Flipper/FlipperConnectionManagerImpl.cpp index 9935b1e54..e3475dbd2 100644 --- a/xplat/Flipper/FlipperConnectionManagerImpl.cpp +++ b/xplat/Flipper/FlipperConnectionManagerImpl.cpp @@ -341,15 +341,16 @@ rsocket::Payload toRSocketPayload(dynamic data) { std::string json = folly::toJson(data); rsocket::Payload payload = rsocket::Payload(json); auto payloadLength = payload.data->computeChainDataLength(); - - DCHECK_LE(payloadLength, maxPayloadSize); if (payloadLength > maxPayloadSize) { auto logMessage = std::string( "Error: Skipping sending message larger than max rsocket payload: ") + - json; + json.substr(0, 100) + "..."; + log(logMessage); + DCHECK_LE(payloadLength, maxPayloadSize); throw new std::length_error(logMessage); } + return payload; }