Skip to content

Dead lock with bad locking. #25

@billw2012

Description

@billw2012

SendPacket can cause RemoveConnectionReference and AddConnectionReference can call SendPacket.
The first takes sendLocker then globalDictAndDelegateLocker, the second takes them in reverse.

NetworkCommsDotNetComplete.dll!NetworkCommsDotNet.Connections.Connection.SendPacket<byte[]>(NetworkCommsDotNet.IPacket packet, out long packetSequenceNumber) Line 527	 
NetworkCommsDotNetComplete.dll!NetworkCommsDotNet.Connections.Connection.SendReceiveObject<byte[], byte[]>(string sendingPacketTypeStr, string expectedReturnPacketTypeStr, int returnPacketTimeOutMilliSeconds, byte[] sendObject, NetworkCommsDotNet.SendReceiveOptions sendOptions, NetworkCommsDotNet.SendReceiveOptions receiveOptions, out long sentPacketSequenceNumber) Line 256	 
NetworkCommsDotNetComplete.dll!NetworkCommsDotNet.Connections.Connection.ConnectionAlive(int aliveRespondTimeoutMS, out long responseTimeMS) Line 474	 
NetworkCommsDotNetComplete.dll!NetworkCommsDotNet.Connections.Connection.ConnectionAlive() Line 428	 
NetworkCommsDotNetComplete.dll!NetworkCommsDotNet.NetworkComms.AddConnectionReferenceByRemoteEndPoint(NetworkCommsDotNet.Connections.Connection connection, System.Net.EndPoint remoteEndPointToUse, System.Net.EndPoint localEndPointToUse) Line 1897	 
NetworkCommsDotNetComplete.dll!NetworkCommsDotNet.NetworkComms.UpdateConnectionReferenceByEndPoint(NetworkCommsDotNet.Connections.Connection connection, System.Net.EndPoint newRemoteEndPoint, System.Net.EndPoint newLocalEndPoint) Line 1985	 
NetworkCommsDotNetComplete.dll!NetworkCommsDotNet.Connections.Connection.ConnectionSetupHandlerFinal(NetworkCommsDotNet.ConnectionInfo remoteConnectionInfo, ref bool possibleClashWithExistingConnection, ref NetworkCommsDotNet.Connections.Connection existingConnection) Line 488	 
NetworkCommsDotNetComplete.dll!NetworkCommsDotNet.Connections.Connection.ConnectionSetupHandler(System.IO.MemoryStream packetDataSection) Line 343	 
NetworkCommsDotNetComplete.dll!NetworkCommsDotNet.NetworkComms.CompleteIncomingItemTask(object priorityQueueItemObj) Line 334	 
NetworkCommsDotNetComplete.dll!NetworkCommsDotNet.Connections.Connection.IncomingPacketHandleHandOff(NetworkCommsDotNet.Tools.PacketBuilder packetBuilder) Line 163	 
NetworkCommsDotNetComplete.dll!NetworkCommsDotNet.Connections.TCP.TCPConnection.IncomingTCPPacketHandler(System.IAsyncResult ar) Line 405	 

NetworkCommsDotNetComplete.dll!NetworkCommsDotNet.NetworkComms.RemoveConnectionReference(NetworkCommsDotNet.Connections.Connection connection, bool maintainConnectionInfoHistory) Line 1809	 
NetworkCommsDotNetComplete.dll!NetworkCommsDotNet.Connections.Connection.CloseConnection(bool closeDueToError, int logLocation) Line 369	 
NetworkCommsDotNetComplete.dll!NetworkCommsDotNet.Connections.Connection.SendPacket<object>(NetworkCommsDotNet.IPacket packet, out long packetSequenceNumber) Line 659	 
NetworkCommsDotNetComplete.dll!NetworkCommsDotNet.Connections.Connection.SendReceiveObject<object, string[]>(string sendingPacketTypeStr, string expectedReturnPacketTypeStr, int returnPacketTimeOutMilliSeconds, object sendObject, NetworkCommsDotNet.SendReceiveOptions sendOptions, NetworkCommsDotNet.SendReceiveOptions receiveOptions, out long sentPacketSequenceNumber) Line 256	 
NetworkCommsDotNetComplete.dll!NetworkCommsDotNet.Connections.Connection.SendReceiveObject<object, string[]>(string sendingPacketTypeStr, string expectedReturnPacketTypeStr, int returnPacketTimeOutMilliSeconds, object sendObject, NetworkCommsDotNet.SendReceiveOptions sendOptions, NetworkCommsDotNet.SendReceiveOptions receiveOptions) Line 201	 
NetworkCommsDotNetComplete.dll!NetworkCommsDotNet.Connections.Connection.SendReceiveObject<string[]>(string sendingPacketTypeStr, string expectedReturnPacketTypeStr, int returnPacketTimeOutMilliSeconds) Line 298	 

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions