Hello!
I’m doing a Lagom migration from 1.5.5 to the 1.6.7. To do this I need two schema migrations for Akka Persistence Cassandra (Migrations to 0.80 and Migrations to 0.101).
The problem is there are duplicated sequence_nr in my database and the standard migrator cannot work with records with the same sequence_nr (error message is “Expected events to be ordered by seqNr”).
I am using EventsByTagMigration from akka-persistence-cassandra version 0.106.
I got the following error in the logs:
java.lang.IllegalStateException: Expected events to be ordered by seqNr. Entity-7105934304122042487 Events: Vector((Entity-7105934304122042487,2,b5616740-4d86-11ee-b7df-2156b6a62915), (Entity-7105934304122042487,2,bcc1d4c0-4d86-11ee-9ce9-2b8de28b9639), (Entity-7105934304122042487,3,b5ab8fa0-4d86-11ee-b7df-2156b6a62915), (Entity-7105934304122042487,3,bd2ec760-4d86-11ee-9ce9-2b8de28b9639))
at akka.persistence.cassandra.journal.TagWriter.$anonfun$createTagWriteSummary$2(TagWriter.scala:346)
at scala.collection.IterableOnceOps.foldLeft(IterableOnce.scala:636)
at scala.collection.IterableOnceOps.foldLeft$(IterableOnce.scala:632)
at scala.collection.AbstractIterable.foldLeft(Iterable.scala:921)
at akka.persistence.cassandra.journal.TagWriter.createTagWriteSummary(TagWriter.scala:339)
at akka.persistence.cassandra.journal.TagWriter.akka$persistence$cassandra$journal$TagWriter$$write(TagWriter.scala:322)
at akka.persistence.cassandra.journal.TagWriter.akka$persistence$cassandra$journal$TagWriter$$flushIfRequired(TagWriter.scala:291)
at akka.persistence.cassandra.journal.TagWriter$$anonfun$akka$persistence$cassandra$journal$TagWriter$$writeInProgress$1.applyOrElse(TagWriter.scala:254)
at akka.actor.Actor.aroundReceive(Actor.scala:537)
at akka.actor.Actor.aroundReceive$(Actor.scala:535)
at akka.persistence.cassandra.journal.TagWriter.akka$actor$Timers$$super$aroundReceive(TagWriter.scala:105)
at akka.actor.Timers.aroundReceive(Timers.scala:56)
at akka.actor.Timers.aroundReceive$(Timers.scala:41)
at akka.persistence.cassandra.journal.TagWriter.aroundReceive(TagWriter.scala:105)
at akka.actor.ActorCell.receiveMessage(ActorCell.scala:580)
at akka.actor.ActorCell.invoke(ActorCell.scala:548)
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:270)
at akka.dispatch.Mailbox.run(Mailbox.scala:231)
at akka.dispatch.Mailbox.exec(Mailbox.scala:243)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
Can you suggest something to do in a such situation?