From 24a17f58149af8a7240e587ef89a79af7afe32de Mon Sep 17 00:00:00 2001 From: Zahary Karadjov Date: Fri, 15 May 2020 20:56:34 +0300 Subject: [PATCH] Fix an RPC error in Lighthouse triggered by the getMetadata message --- beacon_chain/eth2_network.nim | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/beacon_chain/eth2_network.nim b/beacon_chain/eth2_network.nim index 7dfca96f1..32d7f7240 100644 --- a/beacon_chain/eth2_network.nim +++ b/beacon_chain/eth2_network.nim @@ -509,15 +509,18 @@ proc handleIncomingStream(network: Eth2Node, let deadline = sleepAsync RESP_TIMEOUT - let msg = try: - awaitWithTimeout(readChunkPayload(s, noSnappy, MsgRec), deadline): - returnInvalidRequest "Request full data not sent in time" + let msg = if sizeof(MsgRec) > 0: + try: + awaitWithTimeout(readChunkPayload(s, noSnappy, MsgRec), deadline): + returnInvalidRequest "Request full data not sent in time" - except SerializationError as err: - returnInvalidRequest err.formatMsg("msg") + except SerializationError as err: + returnInvalidRequest err.formatMsg("msg") - except SnappyError as err: - returnInvalidRequest err.msg + except SnappyError as err: + returnInvalidRequest err.msg + else: + NetRes[MsgRec].ok default(MsgRec) if msg.isErr: let (responseCode, errMsg) = case msg.error.kind @@ -556,7 +559,7 @@ proc handleIncomingStream(network: Eth2Node, await sendErrorResponse(peer, conn, noSnappy, ServerError, err.msg) except CatchableError as err: - debug "Error processing an incoming request", err = err.msg + debug "Error processing an incoming request", err = err.msg, msgName finally: await safeClose(conn) @@ -1031,7 +1034,7 @@ proc subscribe*[MsgType](node: Eth2Node, proc traceMessage(fut: FutureBase, digest: MDigest[256]) = fut.addCallback do (arg: pointer): if not(fut.failed): - trace "Outgoing pubsub message has been sent", message_id = `$`(digest) + trace "Outgoing pubsub message sent", message_id = `$`(digest) proc broadcast*(node: Eth2Node, topic: string, msg: auto) = inc gossip_messages_sent