Hi Raymond,
seems that two processes/JVMs access the same journal files on disk,
which is not allowed. Either use one of the distributed journals (see
Akka community projects) or use a shared LevelDB journal
<http://doc.akka.io/docs/akka/2.3.2/scala/persistence.html#shared-leveldb-journal>
for testing purposes.
Cheers,
Martin
On 16.05.14 08:41, Raymond Tay wrote:
Hi akka devs,
I have a scenario where a `akka-cluster-2.3.2` is running
`akka-persistence-2.3.2` and 2 nodes participate. Next, we create two
_distinct_ sets of (processor, view, actor, channel) to represent two
domain objects in our application. Next, we have the two data sets
write stuff to the `journal` configured locally using `levelDB`.
Then, when one processor proceeds to write to the storage and another
processor attempts to write to the same storage there's a failure
condition triggered by the second processor (attempting the write)
because the first processor has acquired the lock. (This is evident
after reading through the source code of `levelDB`)
Kindly see the detailed lock below
ERROR] [05/16/2014 13:19:55.242]
[TrailingHammer-akka.actor.default-dispatcher-18]
[akka://TrailingHammer/system/journal] Unable to acquire lock on
'/Users/raymondtay/temp/bamboo-management-0.1-SNAPSHOT/journal/LOCK'
akka.actor.ActorInitializationException: exception during creation
at akka.actor.ActorInitializationException$.apply(Actor.scala:164)
at akka.actor.ActorCell.create(ActorCell.scala:596)
at akka.actor.ActorCell.invokeAll$1(ActorCell.scala:456)
at akka.actor.ActorCell.systemInvoke(ActorCell.scala:478)
at akka.dispatch.Mailbox.processAllSystemMessages(Mailbox.scala:263)
at akka.dispatch.Mailbox.run(Mailbox.scala:219)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.io.IOException: Unable to acquire lock on
'/Users/raymondtay/temp/bamboo-management-0.1-SNAPSHOT/journal/LOCK'
at org.iq80.leveldb.impl.DbLock.<init>(DbLock.java:55)
at org.iq80.leveldb.impl.DbImpl.<init>(DbImpl.java:167)
at org.iq80.leveldb.impl.Iq80DBFactory.open(Iq80DBFactory.java:59)
at
akka.persistence.journal.leveldb.LeveldbStore$class.preStart(LeveldbStore.scala:114)
at
akka.persistence.journal.leveldb.LeveldbJournal.preStart(LeveldbJournal.scala:20)
at akka.actor.Actor$class.aroundPreStart(Actor.scala:470)
at
akka.persistence.journal.leveldb.LeveldbJournal.aroundPreStart(LeveldbJournal.scala:20)
at akka.actor.ActorCell.create(ActorCell.scala:580)
... 7 more
I know the scenario is probably an outlier but i ran along with it
anyway, the real question i have is whether this is a bug ? or some
kind of outlier situation not catered for ?
I have opened this as a ticket: https://github.com/akka/akka/issues/15211
br,
Raymond
--
>>>>>>>>>> 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]
<mailto:[email protected]>.
To post to this group, send email to [email protected]
<mailto:[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].
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.