git.iko.soy/distributed-process
on master help sign in
Enhance error messages for incoming connections.
commit633baf79408ff1f2360370e579ed8e507621822d authorFacundo Domínguez <facundo.dominguez@tweag.io> dateFri 10 Jun 2016, 09:26 (10 years ago) parentad3a400
1 file changed+23−9
src/Control/Distributed/Process/Node.hs+23−9
src/Control/Distributed/Process/Node.hs+23−9
@@ -524,7 +524,8 @@ handleIncomingMessages node = go initConnectionState
524524 . (incomingFrom theirAddr ^: Set.insert cid)
525525 $ st
526526 )
527− else invalidRequest cid st ("unsupported reliability: "++show rel)
527+ else invalidRequest cid st $
528+ "attempt to connect with unsupported reliability " ++ show rel
528529 NT.Received cid payload ->
529530 case st ^. incomingAt cid of
530531 Just (_, ToProc pid weakQueue) -> do
@@ -557,7 +558,9 @@ handleIncomingMessages node = go initConnectionState
557558 Just proc ->
558559 go (incomingAt cid ^= Just (src, ToProc pid (processWeakQ proc)) $ st)
559560 Nothing ->
560− invalidRequest cid st "unknown local process id"
561+ invalidRequest cid st $
562+ "incoming attempt to connect to unknown process "
563+ ++ show pid
561564 SendPortIdentifier chId -> do
562565 let lcid = sendPortLocalId chId
563566 lpid = processLocalId (sendPortProcessId chId)
@@ -569,19 +572,28 @@ handleIncomingMessages node = go initConnectionState
569572 Just channel ->
570573 go (incomingAt cid ^= Just (src, ToChan channel) $ st)
571574 Nothing ->
572− invalidRequest cid st "unknown channel"
575+ invalidRequest cid st $
576+ "incoming attempt to connect to unknown channel of"
577+ ++ " process " ++ show (sendPortProcessId chId)
573578 Nothing ->
574− invalidRequest cid st "unknown process id"
579+ invalidRequest cid st $
580+ "incoming attempt to connect to channel of unknown"
581+ ++ " process " ++ show (sendPortProcessId chId)
575582 NodeIdentifier nid ->
576583 if nid == localNodeId node
577584 then go (incomingAt cid ^= Just (src, ToNode) $ st)
578− else invalidRequest cid st "invalid node id"
585+ else invalidRequest cid st $
586+ "incoming attempt to connect to a different node -"
587+ ++ " I'm " ++ show (localNodeId node)
588+ ++ " but the remote peer wants to connect to "
589+ ++ show nid
579590 Nothing ->
580− invalidRequest cid st "invalid request target"
591+ invalidRequest cid st
592+ "message received from an unknown connection"
581593 NT.ConnectionClosed cid ->
582594 case st ^. incomingAt cid of
583595 Nothing ->
584− invalidRequest cid st "closed unknown connection id"
596+ invalidRequest cid st "closed unknown connection"
585597 Just (src, _) -> do
586598 trace node (MxDisconnected cid src)
587599 go ( (incomingAt cid ^= Nothing)
@@ -618,8 +630,10 @@ handleIncomingMessages node = go initConnectionState
618630 -- node. That is, we should report the remote node as having died, and we
619631 -- should close incoming connections (this requires a Transport layer
620632 -- extension).
621− traceEventFmtIO node "" [(TraceStr $ " [network] invalid request ("++msg++"): "),
622− (Trace cid)]
633+ traceEventFmtIO node "" [ TraceStr $ " [network] invalid request"
634+ ++ " (" ++ msg ++ "): "
635+ , (Trace cid)
636+ ]
623637 go ( incomingAt cid ^= Nothing
624638 $ st
625639 )