Finally got around to push it to github: https://github.com/michaelpisula/akka-journal-inmemory Runs successfully against the persistence-testkit.
Cheers, Michael Am Montag, 17. März 2014 09:46:53 UTC+1 schrieb Akka Team: > > Hi Michael, > > sounds like a very interesting tool to have. Even if it is written in Java > ;-) (I actually very much like that you do this, since we are so used to > producing Scala code that our output of Java examples is mostly confined to > the Activator templates.) > > Regards, > > Roland > > > > On Mon, Mar 17, 2014 at 9:03 AM, Michael Pisula > <[email protected]<javascript:> > > wrote: > >> Hi Martin, >> >> I will try that. In the meantime, I finished a in-memory journal that >> passes the testkit tests, and checks if all persisted messages were >> confirmed or deleted and will issue warnings or even stop the tests >> otherwise. >> We already use this for our unit tests, and it works very nice in that >> scenario. I need to polish it a bit, and plan to create a github repo for >> it this week. It's written in Java though ;-) >> >> Cheers, >> Michael >> >> Am Mittwoch, 12. März 2014 17:08:38 UTC+1 schrieb Martin Krasser: >>> >>> Hi Michael, >>> >>> On 12.03.14 16:14, Michael Pisula wrote: >>> >>> Hi Patrik, Viktor, >>> >>> I tried running with native = off. I still got some of the seg faults, >>> not nearly as many though. >>> >>> >>> if you're still seing segfaults, you're for sure using the native >>> LevelDB journal. Please check again that your akka config is properly >>> loaded. >>> >>> We are not using sbt. >>> I was always running the tests in IntelliJ, also tried running them with >>> Maven, and also got a segfault. >>> >>> I have a prototype of a in-memory journal that looks like it could >>> solve our test problems for now. >>> >>> Still, that SegFault makes me a bit nervous, only good thing is, that >>> is seems to only happen during shutdown. >>> >>> Cheers, >>> Michael >>> >>> Am Mittwoch, 12. März 2014 12:56:58 UTC+1 schrieb Patrik Nordwall: >>>> >>>> You can also try to fork the tests. We use that in akka-persistence >>>> tests >>>> >>>> fork in Test := true, >>>> >>>> /Patrik >>>> >>>> >>>> On Wed, Mar 12, 2014 at 12:49 PM, Patrik Nordwall < >>>> [email protected]> wrote: >>>> >>>>> Have you tried leveldb native=off for tests? >>>>> >>>>> # DO NOT USE 'native = off' IN PRODUCTION !!! >>>>> # LevelDB Java port >>>>> akka.persistence.journal.leveldb.native = off >>>>> >>>>> >>>>> On Wed, Mar 12, 2014 at 11:53 AM, √iktor Ҡlang >>>>> <[email protected]>wrote: >>>>> >>>>>> Jvm? >>>>>> On Mar 12, 2014 11:36 AM, "Michael Pisula" < >>>>>> [email protected]> wrote: >>>>>> >>>>>>> Hi again, >>>>>>> >>>>>>> I'm still fighting with the integration of akka persistence into >>>>>>> our tool, especially with our testsuite. The problem I have now is that >>>>>>> everytime I run the whole testsuite on my machine, I keep getting java >>>>>>> crashes caused by segmentation faults. When I open the bug report, here >>>>>>> is >>>>>>> the stacktrace: >>>>>>> >>>>>>> Java frames: (J=compiled Java code, j=interpreted, Vv=VM code) >>>>>>> j org.fusesource.leveldbjni.internal.NativeIterator$ >>>>>>> IteratorJNI.delete(J)V+0 >>>>>>> j org.fusesource.leveldbjni.internal.NativeIterator.delete()V+8 >>>>>>> j org.fusesource.leveldbjni.internal.JniDBIterator.close()V+4 >>>>>>> j akka.persistence.journal.leveldb.LeveldbStore$class. >>>>>>> withIterator(Lakka/persistence/journal/leveldb/ >>>>>>> LeveldbStore;Lscala/Function1;)Ljava/lang/Object;+26 >>>>>>> j akka.persistence.journal.leveldb.LeveldbJournal. >>>>>>> withIterator(Lscala/Function1;)Ljava/lang/Object;+2 >>>>>>> j akka.persistence.journal.leveldb.LeveldbRecovery$class. >>>>>>> replayMessages(Lakka/persistence/journal/leveldb/ >>>>>>> LeveldbStore;IJJJLscala/Function1;)V+17 >>>>>>> j akka.persistence.journal.leveldb.LeveldbJournal. >>>>>>> replayMessages(IJJJLscala/Function1;)V+9 >>>>>>> j akka.persistence.journal.leveldb.LeveldbRecovery$$ >>>>>>> anonfun$asyncReplayMessages$1.apply$mcV$sp()V+24 >>>>>>> j akka.persistence.journal.leveldb.LeveldbRecovery$$ >>>>>>> anonfun$asyncReplayMessages$1.apply()V+1 >>>>>>> j akka.persistence.journal.leveldb.LeveldbRecovery$$ >>>>>>> anonfun$asyncReplayMessages$1.apply()Ljava/lang/Object;+1 >>>>>>> j scala.concurrent.impl.Future$PromiseCompletingRunnable. >>>>>>> liftedTree1$1()Lscala/util/Try;+8 >>>>>>> j scala.concurrent.impl.Future$PromiseCompletingRunnable.run()V+5 >>>>>>> j akka.dispatch.TaskInvocation.run()V+4 >>>>>>> j akka.dispatch.ForkJoinExecutorConfigurator$ >>>>>>> AkkaForkJoinTask.exec()Z+4 >>>>>>> J scala.concurrent.forkjoin.ForkJoinPool.runWorker(Lscala/ >>>>>>> concurrent/forkjoin/ForkJoinPool$WorkQueue;)V >>>>>>> j scala.concurrent.forkjoin.ForkJoinWorkerThread.run()V+14 >>>>>>> v ~StubRoutines::call_stub >>>>>>> >>>>>>> This seems to happen during shutdown of the actor system. >>>>>>> We have around 200 tests, and for most of them we destroy the actor >>>>>>> system after the test. So ActorSystems are being destroyed and created >>>>>>> very >>>>>>> often. Is this a problem? Also we do not explicitly stop the channels >>>>>>> when >>>>>>> the corresponding actors are shutdown, we will be trying that out >>>>>>> today. >>>>>>> >>>>>>> The crash does not always occur, and when it does, it occurs in >>>>>>> different tests, so I cannot really reproduce this. >>>>>>> >>>>>>> Another issue we have is that some of our tests seem to have >>>>>>> timeout issues since we introduced akka persistence, sometimes they >>>>>>> receive >>>>>>> their messages before the timeout, sometimes they don't. This of course >>>>>>> will then make other tests fail, as there are still unconfirmed >>>>>>> messages >>>>>>> hanging around. Timeouts are pretty low, to get our testsuite done as >>>>>>> quick >>>>>>> as possible, so running into timeout issues is not very surprising. >>>>>>> Right now I am thinking about creating an in-memory journal for use >>>>>>> in tests to make our tests more stable. That should solve a lot of the >>>>>>> issues we see right now. Is this a valid approach in your eyes? >>>>>>> >>>>>>> Cheers, >>>>>>> Michael >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> >>>>>>>>>> Read the docs: http://akka.io/docs/ >>>>>>> >>>>>>>>>> Check the FAQ: http://doc.akka.io/docs/akka/ >>>>>>> current/additional/faq.html >>>>>>> >>>>>>>>>> Search the archives: https://groups.google.com/ >>>>>>> group/akka-user >>>>>>> --- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "Akka User List" group. >>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>> send an email to [email protected]. >>>>>>> To post to this group, send email to [email protected]. >>>>>>> Visit this group at http://groups.google.com/group/akka-user. >>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>> >>>>>> -- >>>>>> >>>>>>>>>> Read the docs: http://akka.io/docs/ >>>>>> >>>>>>>>>> Check the FAQ: http://doc.akka.io/docs/akka/ >>>>>> current/additional/faq.html >>>>>> >>>>>>>>>> Search the archives: https://groups.google.com/ >>>>>> group/akka-user >>>>>> --- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "Akka User List" group. >>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>> send an email to [email protected]. >>>>>> To post to this group, send email to [email protected]. >>>>>> Visit this group at http://groups.google.com/group/akka-user. >>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> >>>>> Patrik Nordwall >>>>> Typesafe <http://typesafe.com/> - Reactive apps on the JVM >>>>> Twitter: @patriknw >>>>> >>>> >>>> >>>> >>>> -- >>>> >>>> Patrik Nordwall >>>> Typesafe <http://typesafe.com/> - Reactive apps on the JVM >>>> Twitter: @patriknw >>>> >>> -- >>> >>>>>>>>>> Read the docs: http://akka.io/docs/ >>> >>>>>>>>>> Check the FAQ: http://doc.akka.io/docs/akka/ >>> current/additional/faq.html >>> >>>>>>>>>> Search the archives: https://groups.google.com/ >>> group/akka-user >>> --- >>> You received this message because you are subscribed to the Google >>> Groups "Akka User List" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To post to this group, send email to [email protected]. >>> Visit this group at http://groups.google.com/group/akka-user. >>> For more options, visit https://groups.google.com/d/optout. >>> >>> >>> -- >>> Martin Krasser >>> >>> blog: http://krasserm.blogspot.com >>> >>> code: http://github.com/krasserm >>> twitter: http://twitter.com/mrt1nz >>> >>> -- >> >>>>>>>>>> Read the docs: http://akka.io/docs/ >> >>>>>>>>>> Check the FAQ: >> http://doc.akka.io/docs/akka/current/additional/faq.html >> >>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user >> --- >> You received this message because you are subscribed to the Google Groups >> "Akka User List" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> To post to this group, send email to [email protected]<javascript:> >> . >> Visit this group at http://groups.google.com/group/akka-user. >> For more options, visit https://groups.google.com/d/optout. >> > > > > -- > Akka Team > Typesafe - The software stack for applications that scale > Blog: letitcrash.com > Twitter: @akkateam > -- >>>>>>>>>> Read the docs: http://akka.io/docs/ >>>>>>>>>> Check the FAQ: >>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html >>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user --- You received this message because you are subscribed to the Google Groups "Akka User List" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/akka-user. For more options, visit https://groups.google.com/d/optout.
