Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Dec 12 15:42
    Aaronontheweb synchronize #4086
  • Dec 12 15:42
    Aaronontheweb closed #4083
  • Dec 12 15:42

    Aaronontheweb on dev

    Fix #4083 - Endpoint receive bu… (compare)

  • Dec 12 15:42
    Aaronontheweb closed #4089
  • Dec 12 15:42
    Aaronontheweb labeled #4093
  • Dec 12 15:42
    Aaronontheweb labeled #4093
  • Dec 12 15:42
    Aaronontheweb labeled #4093
  • Dec 12 15:42
    Aaronontheweb opened #4093
  • Dec 12 14:20
    Aaronontheweb commented #4092
  • Dec 12 14:14
    Aaronontheweb labeled #4089
  • Dec 12 14:14
    Aaronontheweb labeled #4089
  • Dec 12 14:11
    Aaronontheweb synchronize #4089
  • Dec 12 14:10
    Aaronontheweb synchronize #4086
  • Dec 12 14:09

    Aaronontheweb on dev

    Convert to ImmutableHashSet for… (compare)

  • Dec 12 14:09
    Aaronontheweb closed #4090
  • Dec 12 12:04
    nagytech synchronize #4092
  • Dec 12 11:53
    nagytech synchronize #4092
  • Dec 12 11:49
    nagytech edited #4092
  • Dec 12 11:40
    nagytech opened #4092
  • Dec 12 11:32
    nagytech edited #4091
Bart de Boer
@boekabart
The app is using 1.3.14
Aaron Stannard
@Aaronontheweb
the plugin might need to be upgraded
Bart de Boer
@boekabart
ah, but maybe not common 1.3.14, let me check
Aaron Stannard
@Aaronontheweb
it definitely needs to be upgraded for the serialization fixes
which affected things like Cluster.Sharding
Bart de Boer
@boekabart
Gotta love good logging:
| Assembly (N=189)                                           | Version     |
|------------------------------------------------------------+-------------|
| Akka                                                       | 1.3.14.0    |
| Akka.Logger.log4net                                        | 1.3.1.0     |
| Akka.Persistence                                           | 1.3.14.0    |
| Akka.Persistence.PostgreSql                                | 1.3.9.0     |
| Akka.Persistence.Sql.Common                                | 1.3.14.0    |
| Akka.Persistence.Sqlite                                    | 1.3.14.0    |
Aaron Stannard
@Aaronontheweb
nice
been meaning to add something like that to Petabridge.Cmd
Bart de Boer
@boekabart

But I don't think that means a rebuild/fix to PostgreSql would be needed right?

Btw we switched to Sqlite for a while, which works 100% ok

Aaron Stannard
@Aaronontheweb
yeah, that looks exactly right
Bart de Boer
@boekabart
I'm writing a fresh one in that project now, maybe if indeed it turns out related, they can be linked.
Aaron Stannard
@Aaronontheweb
sounds good
but what you're describing sounds like that type of side effect
Bart de Boer
@boekabart
Aaron Stannard
@Aaronontheweb
ty
Bart de Boer
@boekabart
... and 2 issues on akka.net wrt Config, while I'm at it.
Bart de Boer
@boekabart
@Aaronontheweb @Horusiath I found a clear correlation between smth in the logging, and the recovery leading to a phantom SnapshotOffer.
In all the BAD cases, these two lines are immediately followed by the Snapshot offer
akka.persistence.journal.postgresql] Started (Akka.Persistence.PostgreSql.Journal.PostgreSqlJournal)
akka.persistence.snapshot-store.postgresql] Started (Akka.Persistence.PostgreSql.Snapshot.PostgreSqlSnapshotStore)
and only after THAT, the ReplayFilter creation is logged:
[akka://TitleCatalogizerPPTEST/system/akka.persistence.journal.postgresql/$a] Started (Akka.Persistence.Journal.ReplayFilter)
[akka://TitleCatalogizerPPTEST/system/akka.persistence.journal.postgresql] now supervising akka://TitleCatalogizerPPTEST/system/akka.persistence.journal.postgresql/$a
Aaron Stannard
@Aaronontheweb
@boekabart we might transfer those config issues to the stand-alone HOCON repo
we're going to replace the built-in HOCON with the external library lock stock and barrel
Bart de Boer
@boekabart
np

in all the GOOD cases, the order is the other way around:

[akka://TitleCatalogizerPPTEST/system/akka.persistence.journal.postgresql] Started (Akka.Persistence.PostgreSql.Journal.PostgreSqlJournal)
[akka://TitleCatalogizerPPTEST/system/akka.persistence.snapshot-store.postgresql] Started (Akka.Persistence.PostgreSql.Snapshot.PostgreSqlSnapshotStore)

[akka://TitleCatalogizerPPTEST/system/akka.persistence.journal.postgresql/$a] Started (Akka.Persistence.Journal.ReplayFilter)
[akka://TitleCatalogizerPPTEST/system/akka.persistence.journal.postgresql] now supervising akka://TitleCatalogizerPPTEST/system/akka.persistence.journal.postgresql/$a

[[akka://TitleCatalogizerPPTEST/user/TitleCatalogizer/Queue/RuntimeActor#384178050]] Recovering an expected Divv.XiXi.TitleCatalogizer.Actors.Runtime.RuntimeActor+EnqueuedWork

I've just done this 15 times, and it's true for all 7 failing and all 8 OK cases.

So there seems to be some kind of race
Bart de Boer
@boekabart
It was so much simpler: the Postgres Snapshot class used the generic Journal config as fallback... PR for that is done.
But that doesn't explain why it still worked OK 50% of the time! @Horusiath
Mathias Feitzinger
@feitzi
After some years as an akka.net user, I want to make a more deep dive into the framework.
For this reason, I checked out the actual source code (dev branch) and stared a build and unit testing (like descriped here). But I got in trouble with the existing unit tests. I can't run all tests successful. I have 3 of 4195 unsuccessful tests:
  • Akka.MultiNodeTestRunner.Shared.Tests.ParsingSpec.MessageSink_should_parse_Runner_log_message_correctly
  • Akka.MultiNodeTestRunner.Shared.Tests.ParsingSpec.MessageSink_should_be_able_to_infer_message_type
  • Akka.MultiNodeTestRunner.Shared.Tests.Persistence.JsonPersistentTestRunStoreSpec.Should_load_saved_JSON_TestRunTree
    I have no code changes, its the original dev branch.
    Is this normal, or did I something wrong?
Bartosz Sypytkowski
@Horusiath
@feitzi some of the tests are time sensitive, therefore you may result in hitting into false negatives.
@boekabart I'm afraid I'd need a reproducible use case to understand what's happening
Lutando Ngqakaza
@Lutando
Why do the timestamps (created_at) in my sql journals have values like 637015430987854360 what on earth is that value?
anthonyhawes
@anthonyhawes
@Lutando it's the UTC DateTime converted into ticks
Lutando Ngqakaza
@Lutando
Thank you kind sir
Lutando Ngqakaza
@Lutando
The Offset value that you get when doing EventsByTag persistent query, what do they mean?
 await PersistenceQuery
                .Get(actorSystem)
                .ReadJournalFor<SqlReadJournal>(SqlReadJournal.Identifier)
                .CurrentEventsByTag("MyTag")
                .RunForeach(x =>
                {
                    var a = x.Offset as Sequence;
                    Console.Write($"{a.Value}"); 
                }, materializer);
Prints : 1 1 2 2 3 3 4 4 ... 100 ... 101... 102
Lutando Ngqakaza
@Lutando

another slightly related question what is the best way to get the offset/sequence value

I am doing this (seems quite verbose for getting that sequence value, any shorter hand ways?

var sequence = eventEnvelope.Offset as Sequence
var streamOffset = sequence.Value
Ismael Hamed
@ismaelhamed
@Lutando that's the SequenceNr/Ordering for that event. I typically have a generic OffsetStore to which a pass the offset and internally will do something like:
offset is Sequence seq ? seq.Value : (long?)null;
That Offset is handy for resumable PersistenceQueries
Lutando Ngqakaza
@Lutando
yeah thats what im aiming for but im just wondering why the offset value is "hidden"
Ismael Hamed
@ismaelhamed
It's no that it is "hidden", but an offset can be of different types: currently NoOffset or Sequence, but the JVM also supports TimeBasedUUID
Vladimir Boiarkin
@vladmir-boy
Hi guys. sorry for vague question
I have two actors in my actorSystem communicating on localhost, meaning that they communicate in memory without serialization and transport involved
Can I some how enforce serialization and transport, so I can measure this expenses in the benchmark?
Lutando Ngqakaza
@Lutando

@vladmir-boy absolutely.

 akka.actor.serialize-messages = on
 akka.actor.serialize-creators = on

https://getakka.net/articles/networking/serialization.html#verification

heed the warning in the docs.

as for forcing the transport im not sure how one would do that. I guess if you doing multi node testing, but I dont think its possible to enforce a transport if you dont bind to an address and communicate between the actors
Vladimir Boiarkin
@vladmir-boy
@Lutando thanks! Serialization worked!
This message was deleted
I actually bind to address and my actors then just look
SenderActor = actorSystem.ActorOf<SenderActor>();
RecipientActor = actorSystem.ActorOf<RecipientActor>();
and I assume communication like RecipientActor.Tell(new EventHappened(), SenderActor);
does not trigger networking
Lutando Ngqakaza
@Lutando
I think if youre using the default actor ref provider it wont trigger networking, you must be using Akka.Remote to get transport stuff working I think.
Vladimir Boiarkin
@vladmir-boy
I use the Cluster one
Lutando Ngqakaza
@Lutando
yeah then should be good
I think you need to check what IActorRef you have there, if it is LocalActorRef then it wont use a transport, that is inproc
Zetanova
@Zetanova
@Aaronontheweb Would it be a problem to make the hocon config convertable from and to yaml ? I currently see only a problem with the the dotnet type names used as keynames in diff. sections like akka.persistence.journal.eventstore.event-adapter-bindings
Zetanova
@Zetanova
And is it possible to get or generate some kind of cluster-id to use as debug/logging?
Bartosz Sypytkowski
@Horusiath

And is it possible to get or generate some kind of cluster-id to use as debug/logging?

@Zetanova actor system name?