This discussion is archived
2 Replies Latest reply: Jun 2, 2011 10:44 AM by 742833 RSS

unexpected get for VLSN: <X> already waiting for VLSN: <X-1>

742833 Newbie
Currently Being Moderated
Hi all,

This early morning the following exception has been thrown on our production environment (Solaris 10 + JRE 6u17 64 bits + JE 4.1.10) when performing a transaction commit.
com.sleepycat.je.EnvironmentFailureException: (JE 4.1.10) Environment must be closed, caused by: com.sleepycat.je.EnvironmentFailureException: Environment invalid because of previous exception: (JE 4.1.10) correosbe02A(5):/bdb/Core unexpected get for VLSN: 37,054,546already waiting for VLSN: 37,054,545 UNEXPECTED_STATE_FATAL: Unexpected internal state, unable to continue. Environment is invalid and must be closed.
        at com.sleepycat.je.EnvironmentFailureException.wrapSelf(EnvironmentFailureException.java:196)
        at com.sleepycat.je.dbi.EnvironmentImpl.checkIfInvalid(EnvironmentImpl.java:1455)
        at com.sleepycat.je.Transaction.checkEnv(Transaction.java:756)
        at com.sleepycat.je.Transaction.commit(Transaction.java:224)
        ...
        at eswf.zk.taskexecutor.TaskCallable.call(TaskCallable.java:47)
        at eswf.zk.taskexecutor.TaskCallable.call(TaskCallable.java:20)
        at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
Caused by: com.sleepycat.je.EnvironmentFailureException: Environment invalid because of previous exception: (JE 4.1.10) correosbe02A(5):/bdb/Core unexpected get for VLSN: 37,054,546already waiting for VLSN: 37,054,545 UNEXPECTED_STATE_FATAL: Unexpected internal state, unable to continue. Environment is invalid and must be closed.
        at com.sleepycat.je.EnvironmentFailureException.unexpectedState(EnvironmentFailureException.java:391)
        at com.sleepycat.je.rep.vlsn.VLSNIndex.setupWait(VLSNIndex.java:550)
        at com.sleepycat.je.rep.vlsn.VLSNIndex.waitForVLSN(VLSNIndex.java:502)
        at com.sleepycat.je.rep.vlsn.VLSNIndex.awaitConsistency(VLSNIndex.java:1747)
        at com.sleepycat.je.rep.impl.RepImpl.awaitVLSNConsistency(RepImpl.java:1378)
        at com.sleepycat.je.recovery.Checkpointer.doCheckpoint(Checkpointer.java:712)
        at com.sleepycat.je.recovery.Checkpointer.onWakeup(Checkpointer.java:507)
        at com.sleepycat.je.utilint.DaemonThread.run(DaemonThread.java:162)
        ... 1 common frames omitted
Reviewing our application log there is not any previous exception and at that moment our business logic was performing several concurrent transactions.

Scenario:
- Replicated Environment with 1 master and 4 replicas.
- new Durability(Durability.SyncPolicy.SYNC, Durability.SyncPolicy.SYNC, Durability.ReplicaAckPolicy.SIMPLE_MAJORITY)
- 14735 tasks to complete.
- Each task opens a bdbje transaction.
- Up to 4 concurrent task.
- When the exception was thrown there was 4777 tasks completed and successfully commited.

After an environment restart (in fact was an application restart) everything goes fine and pending tasks was successfully completed.

Any help?

BR,
/César.

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points