Skip to content

Commit f2274f6

Browse files
DantharAarononthewebdependabot-preview[bot]
authored
Release 1.4.11 (#120)
* Resolved Akka.Remote LogSource race condition (#118) * Recreating Akka.Remote LogSource race condition added reproduction for akkadotnet/akka.net#4579 * close #4579 for Serliog only - need to make a similar change for NLog * minor fixup * Bump AkkaVersion from 1.4.10 to 1.4.11 (#119) Bumps `AkkaVersion` from 1.4.10 to 1.4.11. Updates `Akka` from 1.4.10 to 1.4.11 - [Release notes](https://github.com/akkadotnet/akka.net/releases) - [Changelog](https://github.com/akkadotnet/akka.net/blob/dev/RELEASE_NOTES.md) - [Commits](akkadotnet/akka.net@1.4.10...1.4.11) Updates `Akka.TestKit.Xunit2` from 1.4.10 to 1.4.11 - [Release notes](https://github.com/akkadotnet/akka.net/releases) - [Changelog](https://github.com/akkadotnet/akka.net/blob/dev/RELEASE_NOTES.md) - [Commits](akkadotnet/akka.net@1.4.10...1.4.11) Updates `Akka.Cluster` from 1.4.10 to 1.4.11 - [Release notes](https://github.com/akkadotnet/akka.net/releases) - [Changelog](https://github.com/akkadotnet/akka.net/blob/dev/RELEASE_NOTES.md) - [Commits](akkadotnet/akka.net@1.4.10...1.4.11) Signed-off-by: dependabot-preview[bot] <[email protected]> Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> * Update Release Notes for Release 1.4.11 Co-authored-by: Aaron Stannard <[email protected]> Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
1 parent f9d8f5d commit f2274f6

File tree

5 files changed

+82
-4
lines changed

5 files changed

+82
-4
lines changed

RELEASE_NOTES.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
#### 1.4.11 November 7 2020 ####
2+
3+
* Updated to [Akka.NET v1.4.11](https://github.com/akkadotnet/akka.net/releases/tag/1.4.11)
4+
* Resolved a Akka.Remote LogSource race condition
5+
16
#### 1.4.10 October 28 2020 ####
27

38
* Updated to [Akka.NET v1.4.10](https://github.com/akkadotnet/akka.net/releases/tag/1.4.10)

src/Akka.Logger.Serilog.Tests/Akka.Logger.Serilog.Tests.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
<PackageReference Include="xunit.runner.visualstudio" Version="$(XunitVersion)" />
1111
<PackageReference Include="xunit" Version="$(XunitVersion)" />
1212
<PackageReference Include="Akka.TestKit.Xunit2" Version="$(AkkaVersion)" />
13+
<PackageReference Include="Akka.Cluster" Version="$(AkkaVersion)" />
1314
<PackageReference Include="FluentAssertions" Version="5.10.3" />
1415
<PackageReference Include="Serilog.Sinks.ColoredConsole" Version="3.0.1" />
1516
</ItemGroup>
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Text;
5+
using System.Threading.Tasks;
6+
using Akka.Actor;
7+
using Akka.Cluster;
8+
using Akka.Configuration;
9+
using Akka.Event;
10+
using FluentAssertions;
11+
using Serilog;
12+
using Xunit;
13+
using Xunit.Abstractions;
14+
15+
namespace Akka.Logger.Serilog.Tests
16+
{
17+
public class Bugfix4579Spec : TestKit.Xunit2.TestKit
18+
{
19+
public Bugfix4579Spec(ITestOutputHelper output) : base(GetConfig(), output: output)
20+
{
21+
global::Serilog.Log.Logger = new LoggerConfiguration()
22+
.WriteTo.Sink(_sink)
23+
.MinimumLevel.Information()
24+
.CreateLogger();
25+
26+
var logSource = Sys.Name;
27+
var logClass = typeof(ActorSystem);
28+
29+
}
30+
31+
private readonly TestSink _sink = new TestSink();
32+
33+
public static Config GetConfig()
34+
{
35+
return @"akka.actor.provider = cluster
36+
akka.remote.dot-netty.tcp.hostname = localhost
37+
akka.remote.dot-netty.tcp.port = 5110
38+
akka.cluster.seed-nodes = [""akka.tcp://test@localhost:5110""]
39+
akka.loglevel = DEBUG
40+
akka.loggers=[""Akka.Logger.Serilog.SerilogLogger, Akka.Logger.Serilog""]";
41+
}
42+
43+
private class LoggerActor : UntypedActor
44+
{
45+
private readonly ILoggingAdapter _logger = Context.GetLogger<SerilogLoggingAdapter>(); // correct
46+
47+
protected override void OnReceive(object message)
48+
{
49+
_logger.ForContext("semantic", true);
50+
_logger.Info("My boss makes me use {msg} logging", message);
51+
}
52+
}
53+
54+
/// <summary>
55+
/// Reproduction of https://github.com/akkadotnet/akka.net/issues/4579
56+
/// </summary>
57+
[Fact]
58+
public async Task SerilogShouldNotCrashWhileAkkaRemoteIsBound()
59+
{
60+
var upProbe = CreateTestProbe();
61+
var semanticLogger = Sys.ActorOf(Props.Create(() => new LoggerActor()));
62+
Sys.EventStream.Subscribe(TestActor, typeof(Info));
63+
Cluster.Cluster.Get(Sys).Subscribe(upProbe, ClusterEvent.SubscriptionInitialStateMode.InitialStateAsEvents, typeof(ClusterEvent.MemberUp));
64+
upProbe.FishForMessage(f => f is ClusterEvent.MemberUp);
65+
Sys.Log.Info("Foo");
66+
Sys.Log.Info("Foo");
67+
semanticLogger.Tell("hit");
68+
semanticLogger.Tell("hit");
69+
var logs = ReceiveN(4); // receive all 4 logs
70+
}
71+
72+
}
73+
}

src/Akka.Logger.Serilog/SerilogLogger.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,11 @@ namespace Akka.Logger.Serilog
2323
/// </summary>
2424
public class SerilogLogger : ReceiveActor, IRequiresMessageQueue<ILoggerMessageQueueSemantics>
2525
{
26-
private readonly ILoggingAdapter _log = Context.GetLogger();
26+
private readonly ILoggingAdapter _log = Logging.GetLogger(Context.System.EventStream, "SerilogLogger");
2727

2828
private static string GetFormat(object message)
2929
{
30-
var logMessage = message as LogMessage;
31-
return logMessage != null ? logMessage.Format : "{Message:l}";
30+
return message is LogMessage logMessage ? logMessage.Format : "{Message:l}";
3231
}
3332

3433
private static object[] GetArgs(object message)

src/common.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
<XunitVersion>2.4.1</XunitVersion>
1515
<TestSdkVersion>16.7.1</TestSdkVersion>
1616
<NBenchVersion>2.0.1</NBenchVersion>
17-
<AkkaVersion>1.4.10</AkkaVersion>
17+
<AkkaVersion>1.4.11</AkkaVersion>
1818
<NetCoreTestVersion>netcoreapp3.1</NetCoreTestVersion>
1919
<NetFrameworkTestVersion>net461</NetFrameworkTestVersion>
2020
<NetStandardLibVersion>netstandard2.0</NetStandardLibVersion>

0 commit comments

Comments
 (0)