git.iko.soy/distributed-process
on master help sign in
Node: Provide more detail in invalidRequest messages
commit0ff691f8936ee373b9bb5f2edf86d5b7c5d883dc authorBen Gamari <ben@smart-cactus.org> dateThu 2 Jun 2016, 10:18 (10 years ago) parentf03446e
1 file changed+10−10
src/Control/Distributed/Process/Node.hs+10−10
src/Control/Distributed/Process/Node.hs+10−10
@@ -516,7 +516,7 @@ handleIncomingMessages node = go initConnectionState
516516 . (incomingFrom theirAddr ^: Set.insert cid)
517517 $ st
518518 )
519− else invalidRequest cid st
519+ else invalidRequest cid st ("unsupported reliability: "++show rel)
520520 NT.Received cid payload ->
521521 case st ^. incomingAt cid of
522522 Just (_, ToProc pid weakQueue) -> do
@@ -549,7 +549,7 @@ handleIncomingMessages node = go initConnectionState
549549 Just proc ->
550550 go (incomingAt cid ^= Just (src, ToProc pid (processWeakQ proc)) $ st)
551551 Nothing ->
552− invalidRequest cid st
552+ invalidRequest cid st "unknown local process id"
553553 SendPortIdentifier chId -> do
554554 let lcid = sendPortLocalId chId
555555 lpid = processLocalId (sendPortProcessId chId)
@@ -561,19 +561,19 @@ handleIncomingMessages node = go initConnectionState
561561 Just channel ->
562562 go (incomingAt cid ^= Just (src, ToChan channel) $ st)
563563 Nothing ->
564− invalidRequest cid st
564+ invalidRequest cid st "unknown channel"
565565 Nothing ->
566− invalidRequest cid st
566+ invalidRequest cid st "unknown process id"
567567 NodeIdentifier nid ->
568568 if nid == localNodeId node
569569 then go (incomingAt cid ^= Just (src, ToNode) $ st)
570− else invalidRequest cid st
570+ else invalidRequest cid st "invalid node id"
571571 Nothing ->
572− invalidRequest cid st
572+ invalidRequest cid st "invalid request target"
573573 NT.ConnectionClosed cid ->
574574 case st ^. incomingAt cid of
575575 Nothing ->
576− invalidRequest cid st
576+ invalidRequest cid st "closed unknown connection id"
577577 Just (src, _) -> do
578578 trace node (MxDisconnected cid src)
579579 go ( (incomingAt cid ^= Nothing)
@@ -604,13 +604,13 @@ handleIncomingMessages node = go initConnectionState
604604 -- and we just give up
605605 fail "Cloud Haskell fatal error: received unexpected multicast"
606606
607− invalidRequest :: NT.ConnectionId -> ConnectionState -> IO ()
608− invalidRequest cid st = do
607+ invalidRequest :: NT.ConnectionId -> ConnectionState -> String -> IO ()
608+ invalidRequest cid st msg = do
609609 -- TODO: We should treat this as a fatal error on the part of the remote
610610 -- node. That is, we should report the remote node as having died, and we
611611 -- should close incoming connections (this requires a Transport layer
612612 -- extension).
613− traceEventFmtIO node "" [(TraceStr " [network] invalid request: "),
613+ traceEventFmtIO node "" [(TraceStr $ " [network] invalid request ("++msg++"): "),
614614 (Trace cid)]
615615 go ( incomingAt cid ^= Nothing
616616 $ st