Fix an RPC error in Lighthouse triggered by the getMetadata message

This commit is contained in:
Zahary Karadjov 2020-05-15 20:56:34 +03:00 committed by zah
parent 2f9dc31b2e
commit 24a17f5814

View File

@ -509,15 +509,18 @@ proc handleIncomingStream(network: Eth2Node,
let deadline = sleepAsync RESP_TIMEOUT let deadline = sleepAsync RESP_TIMEOUT
let msg = try: let msg = if sizeof(MsgRec) > 0:
awaitWithTimeout(readChunkPayload(s, noSnappy, MsgRec), deadline): try:
returnInvalidRequest "Request full data not sent in time" awaitWithTimeout(readChunkPayload(s, noSnappy, MsgRec), deadline):
returnInvalidRequest "Request full data not sent in time"
except SerializationError as err: except SerializationError as err:
returnInvalidRequest err.formatMsg("msg") returnInvalidRequest err.formatMsg("msg")
except SnappyError as err: except SnappyError as err:
returnInvalidRequest err.msg returnInvalidRequest err.msg
else:
NetRes[MsgRec].ok default(MsgRec)
if msg.isErr: if msg.isErr:
let (responseCode, errMsg) = case msg.error.kind let (responseCode, errMsg) = case msg.error.kind
@ -556,7 +559,7 @@ proc handleIncomingStream(network: Eth2Node,
await sendErrorResponse(peer, conn, noSnappy, ServerError, err.msg) await sendErrorResponse(peer, conn, noSnappy, ServerError, err.msg)
except CatchableError as err: except CatchableError as err:
debug "Error processing an incoming request", err = err.msg debug "Error processing an incoming request", err = err.msg, msgName
finally: finally:
await safeClose(conn) await safeClose(conn)
@ -1031,7 +1034,7 @@ proc subscribe*[MsgType](node: Eth2Node,
proc traceMessage(fut: FutureBase, digest: MDigest[256]) = proc traceMessage(fut: FutureBase, digest: MDigest[256]) =
fut.addCallback do (arg: pointer): fut.addCallback do (arg: pointer):
if not(fut.failed): 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) = proc broadcast*(node: Eth2Node, topic: string, msg: auto) =
inc gossip_messages_sent inc gossip_messages_sent