Details
-
Bug
-
Status: Resolved
-
Critical
-
Resolution: Fixed
-
None
-
None
Description
ConnectionManager#handleMessage sent empty messages to another peer if some error occurred or not in onReceiveCalback.
val ackMessage = if (onReceiveCallback != null) { logDebug("Calling back") onReceiveCallback(bufferMessage, connectionManagerId) } else { logDebug("Not calling back as callback is null") None } if (ackMessage.isDefined) { if (!ackMessage.get.isInstanceOf[BufferMessage]) { logDebug("Response to " + bufferMessage + " is not a buffer message, it is of type " + ackMessage.get.getClass) } else if (!ackMessage.get.asInstanceOf[BufferMessage].hasAckId) { logDebug("Response to " + bufferMessage + " does not have ack id set") ackMessage.get.asInstanceOf[BufferMessage].ackId = bufferMessage.id } } // We have no way to tell peer whether error occurred or not sendMessage(connectionManagerId, ackMessage.getOrElse { Message.createBufferMessage(bufferMessage.id) }) }
Attachments
Issue Links
- is related to
-
SPARK-2942 Report error messages back from server to client
- Resolved
- links to