Commit a9790b9e authored by Marc Gravell's avatar Marc Gravell

moar trace

parent ab5327cf
......@@ -284,7 +284,7 @@ protected IServer GetAnyMaster(ConnectionMultiplexer muxer)
};
muxer.Connecting += (e, t) => Writer.WriteLine($"Connecting to {Format.ToString(e)} as {t}");
muxer.TransactionLog += msg => { lock (Writer) { Writer.WriteLine("tran: " + msg); } };
muxer.Heartbeat += msg => Writer.WriteLine($"{Time()}: {msg}");
muxer.InfoMessage += msg => Writer.WriteLine(msg);
muxer.Resurrecting += (e, t) => Writer.WriteLine($"Resurrecting {Format.ToString(e)} as {t}");
muxer.Closing += complete => Writer.WriteLine(complete ? "Closed" : "Closing...");
return muxer;
......
......@@ -262,7 +262,7 @@ internal void KeepAlive()
{
msg.SetInternalCall();
Multiplexer.Trace("Enqueue: " + msg);
Multiplexer.OnHeartbeat($"heartbeat '{msg.CommandAndKey}' on '{PhysicalName}' (v{features.Version})");
Multiplexer.OnInfoMessage($"heartbeat '{msg.CommandAndKey}' on '{PhysicalName}' (v{features.Version})");
var result = TryWrite(msg, ServerEndPoint.IsSlave);
if (result != WriteResult.Success)
......@@ -534,6 +534,7 @@ internal bool TryEnqueue(List<Message> messages, bool isSlave)
private readonly object SingleWriterLock = new object();
private int reentrantCount = 0;
/// <summary>
/// This writes a message to the output stream
/// </summary>
......@@ -557,6 +558,10 @@ internal WriteResult WriteMessageTakingWriteLock(PhysicalConnection physical, Me
return WriteResult.TimeoutBeforeWrite;
}
if(reentrantCount++ != 0)
{
Multiplexer?.OnInfoMessage("reentrant call to WriteMessageTakingWriteLock for " + message.CommandAndKey);
}
var messageIsSent = false;
if (message is IMultiMessage)
{
......@@ -592,7 +597,11 @@ internal WriteResult WriteMessageTakingWriteLock(PhysicalConnection physical, Me
}
finally
{
if (haveLock) Monitor.Exit(SingleWriterLock);
if (haveLock)
{
reentrantCount--;
Monitor.Exit(SingleWriterLock);
}
}
return result;
......
......@@ -254,7 +254,7 @@ internal string GetConnectionName(EndPoint endPoint, ConnectionType connectionTy
internal event Action<string, Exception, string> MessageFaulted;
internal event Action<bool> Closing;
internal event Action<string> PreTransactionExec, TransactionLog, Heartbeat;
internal event Action<string> PreTransactionExec, TransactionLog, InfoMessage;
internal event Action<EndPoint, ConnectionType> Connecting;
internal event Action<EndPoint, ConnectionType> Resurrecting;
......@@ -262,9 +262,9 @@ internal void OnMessageFaulted(Message msg, Exception fault, [CallerMemberName]
{
MessageFaulted?.Invoke(msg?.CommandAndKey, fault, $"{origin} ({path}#{lineNumber})");
}
internal void OnHeartbeat(string message)
internal void OnInfoMessage(string message)
{
Heartbeat?.Invoke(message);
InfoMessage?.Invoke(message);
}
internal void OnClosing(bool complete)
......
......@@ -1799,6 +1799,7 @@ public TracerProcessor(bool establishConnection)
public override bool SetResult(PhysicalConnection connection, Message message, RawResult result)
{
connection?.BridgeCouldBeNull?.Multiplexer.OnInfoMessage($"got '{result}' for '{message.CommandAndKey}' on '{connection}'");
var final = base.SetResult(connection, message, result);
if (result.IsError)
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment