Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 19:47

    Aaronontheweb on dev

    TypeExtensions.TypeQualifiedNam… (compare)

  • 19:47
    Aaronontheweb closed #4071
  • 19:47
    Aaronontheweb closed #3767
  • 19:47
    Aaronontheweb labeled #3767
  • 19:47
    Aaronontheweb labeled #3767
  • 19:47
    Aaronontheweb milestoned #3767
  • 19:44
    Aaronontheweb labeled #4097
  • 19:44
    Aaronontheweb milestoned #4097
  • 13:23
    Aaronontheweb commented #4096
  • 13:22
    Aaronontheweb commented #4093
  • 13:16
    ismaelhamed commented #4093
  • 13:04
    ismaelhamed edited #4097
  • 13:04
    ismaelhamed opened #4097
  • 12:50
    ismaelhamed commented #4096
  • 12:48
    ismaelhamed commented #4096
  • 12:05
    Aaronontheweb commented #4096
  • 11:43
    ismaelhamed commented #4096
  • Dec 14 19:13
    hwanders commented #4096
  • Dec 14 13:05
    IgorFedchenko commented #4085
  • Dec 14 03:08
    hhko commented #4094
Aaron Stannard
@Aaronontheweb
that will get more visibility at least
Bart de Boer
@boekabart
Will do
I tried to add some Console.Writeline to the postgres code but after building, I couldn't get that dll to work with the rest
dotnet version issues I guess
Aaron Stannard
@Aaronontheweb
well, we did make some important fixes to Akka.Persistence.Sql common in 1.3.12, 1.3.13, and 1.3.14
none for what you're describing really
serialization fixes and bug fixes for the CircuitBreaker
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