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
This commit is contained in:
committed by
Facebook Github Bot
parent
4e295f3247
commit
6cd8e1519f
@@ -341,15 +341,16 @@ rsocket::Payload toRSocketPayload(dynamic data) {
|
|||||||
std::string json = folly::toJson(data);
|
std::string json = folly::toJson(data);
|
||||||
rsocket::Payload payload = rsocket::Payload(json);
|
rsocket::Payload payload = rsocket::Payload(json);
|
||||||
auto payloadLength = payload.data->computeChainDataLength();
|
auto payloadLength = payload.data->computeChainDataLength();
|
||||||
|
|
||||||
DCHECK_LE(payloadLength, maxPayloadSize);
|
|
||||||
if (payloadLength > maxPayloadSize) {
|
if (payloadLength > maxPayloadSize) {
|
||||||
auto logMessage =
|
auto logMessage =
|
||||||
std::string(
|
std::string(
|
||||||
"Error: Skipping sending message larger than max rsocket payload: ") +
|
"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);
|
throw new std::length_error(logMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
return payload;
|
return payload;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user