-
Notifications
You must be signed in to change notification settings - Fork 36
Open
Description
Version Information
Version of Akka.NET?
<ItemGroup>
<!--<PackageVersion Include="Akka" Version="1.5.2" />-->
<PackageVersion Include="Akka.Cluster.Hosting" Version="1.5.2" />
<PackageVersion Include="Akka.Discovery" Version="1.5.2" />
<PackageVersion Include="Akka.Cluster" Version="1.5.2" />
<PackageVersion Include="Akka.Hosting" Version="1.5.2" />
<PackageVersion Include="Akka.HealthCheck.Hosting.Web" Version="1.5.0.1" />
<PackageVersion Include="Akka.Management" Version="1.5.0" />
<PackageVersion Include="Akka.Persistence.MongoDb" Version="1.5.1.1" />
<PackageVersion Include="Mongo2Go" Version="3.1.3" />
<PackageVersion Include="MongoDB.Driver" Version="2.19.1" />
<PackageVersion Include="Petabridge.Cmd.Cluster.Sharding" Version="$(PbmVersion)" />
<PackageVersion Include="Petabridge.Cmd.Cluster" Version="$(PbmVersion)" />
<PackageVersion Include="Petabridge.Cmd.Remote" Version="$(PbmVersion)" />
</ItemGroup>
Describe the bug
When there are a fair number of writes and reads happening at the same time, an event will be skipped. I have tested this against MongoDB running as a single node cluster running in Docker. I have reproduced the same behavior with EventsByTag and AllEvents queries. It may take many thousands of events for one to be skipped.
To Reproduce
I have a sink setup as follows:
protected override void OnReplaySuccess()
{
var materializer = Context.Materializer();
var self = Self;
var startingOffset = _lastProcessedId;
_query.EventsByTag($"PIPELINE:{_versionedPipelineEndpoint.PipelineName}", Offset.Sequence(startingOffset))
.Where(e => e.Event is IDataReceivedEvent)
.Select(e => new SendData(GetTransformedDataFromEvent(e.Event), GetOffsetFromSequence(e.Offset)))
.RunWith(Sink.ActorRef<SendData>(self, UnexpectedEndOfStream.Instance, ex => { _log.Info(ex.Message); return ex; }), materializer);
base.OnReplaySuccess();
}
Expected behavior
Each of the events would be sent to the subscriber.
Actual behavior
Some go missing.
Environment
.NET 7
Windows 11 and MacOS both exhibit the same behavior.
Metadata
Metadata
Assignees
Labels
No labels