3 Replies Latest reply: Jun 17, 2013 2:45 PM by Dsegleau-Oracle RSS

    com.sleepycat.je.log.ChecksumException: Read invalid log entry type: 49

    725717
      All,
      We have been using BDB in various deployments with good success. Recently we have had 2 cases with different customers where jrockit has been used and after a short period of running the following exception is experienced. In an attempt to recover the BDB environment and make things work again - our application detects the failure and restarts the process - however recovery is also failing which means we end up failing repeatedly. We are not using txns. We have not been able to reproduce it in our lab so are relying on their logs. From looking at the other thread is seems the exception indicates corruption although we hoped the recovery would overcome this.

      Is it possible to prevent the problem from occurring?

      Where it has occurred, would a Environment.sync() be expected to recover the last sync & checkpoint correctly?

      BDB v4.1.7
      JRockit 6 32bit
      OS: Windows Server x64

      Best Regards, Neil.

      com.sleepycat.je.EnvironmentFailureException: (JE 4.1.7) Environment must be closed, caused by: com.sleepycat.je.EnvironmentFailureException: Environment invalid because of previous exception: (JE 4.1.7) work\bucketed_db com.sleepycat.je.log.ChecksumException: Read invalid log entry type: 49 LOG_CHECKSUM: Checksum invalid on read, log is likely invalid. Environment is invalid and must be closed. fetchTarget of 0x0/0xf58d3e parent IN=25726 IN class=com.sleepycat.je.tree.BIN lastFullVersion=0x1/0x1016537 parent.getDirty()=true state=0

      at com.sleepycat.je.EnvironmentFailureException.wrapSelf(EnvironmentFailureException.java:196)

      at com.sleepycat.je.dbi.EnvironmentImpl.checkIfInvalid(EnvironmentImpl.java:1439)

      at com.sleepycat.je.dbi.CursorImpl.checkEnv(CursorImpl.java:2994)

      at com.sleepycat.je.Cursor.checkEnv(Cursor.java:2898)

      at com.sleepycat.je.Cursor.close(Cursor.java:449)

      at com.sleepycat.je.Database.putInternal(Database.java:1190)

      at com.sleepycat.je.Database.put(Database.java:1058)

      at com.sleepycat.persist.PrimaryIndex.putNoReturn(PrimaryIndex.java:479)

      at com.sleepycat.persist.PrimaryIndex.putNoReturn(PrimaryIndex.java:442)

      at com.li.log.dw.AddLineToBucketTxn.doWork(AddLineToBucketTxn.java:66)

      at com.sleepycat.collections.TransactionRunner.run(TransactionRunner.java:267)

      at com.li.log.dw.DWLineStoreImpl.runTxn(DWLineStoreImpl.java:218)

      at com.li.log.dw.DWLineStoreImpl.add(DWLineStoreImpl.java:156)

      at com.li.log.dw.DWLineStoreImpl.add(DWLineStoreImpl.java:183)

      at com.li.log.reader.FileIngester.flushToIndex(FileIngester.java:176)

      at com.li.log.reader.FileIngester.readNext(FileIngester.java:148)

      at com.li.log.TailerImpl.tail(TailerImpl.java:265)

      at com.li.log.TailerImpl.call(TailerImpl.java:149)

      at com.li.log.TailerImpl.call(TailerImpl.java:35)

      at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)

      at java.util.concurrent.FutureTask.run(FutureTask.java:138)

      at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)

      at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)

      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

      at java.lang.Thread.run(Thread.java:662)

      Caused by: com.sleepycat.je.EnvironmentFailureException: Environment invalid because of previous exception: (JE 4.1.7) work\bucketed_db com.sleepycat.je.log.ChecksumException: Read invalid log entry type: 49 LOG_CHECKSUM: Checksum invalid on read, log is likely invalid. Environment is invalid and must be closed. fetchTarget of 0x0/0xf58d3e parent IN=25726 IN class=com.sleepycat.je.tree.BIN lastFullVersion=0x1/0x1016537 parent.getDirty()=true state=0

      at com.sleepycat.je.log.LogManager.getLogEntry(LogManager.java:784)

      at com.sleepycat.je.log.LogManager.getLogEntryAllowInvisibleAtRecovery(LogManager.java:742)

      at com.sleepycat.je.tree.IN.fetchTarget(IN.java:1320)

      at com.sleepycat.je.tree.BIN.fetchTarget(BIN.java:1367)

      at com.sleepycat.je.tree.Tree.getSlotReuseInfo(Tree.java:2672)

      at com.sleepycat.je.tree.Tree.insert(Tree.java:2475)

      at com.sleepycat.je.dbi.CursorImpl.put(CursorImpl.java:1209)

      at com.sleepycat.je.Cursor.putAllowPhantoms(Cursor.java:1799)

      at com.sleepycat.je.Cursor.putNoNotify(Cursor.java:1756)

      at com.sleepycat.je.Cursor.putNotify(Cursor.java:1689)

      at com.sleepycat.je.Cursor.putInternal(Cursor.java:1626)

      at com.sleepycat.je.Database.putInternal(Database.java:1186)

      at com.sleepycat.je.Database.put(Database.java:1058)

      at com.sleepycat.persist.PrimaryIndex.putNoReturn(PrimaryIndex.java:480)

      at com.sleepycat.persist.PrimaryIndex.putNoReturn(PrimaryIndex.java:443)

      at com.li.log.dw.AddLineToBucketTxn.doWork(AddLineToBucketTxn.java:66)

      at com.sleepycat.collections.TransactionRunner.run(TransactionRunner.java:267)

      at com.li.log.dw.DWLineStoreImpl.runTxn(DWLineStoreImpl.java:218)

      at com.li.log.dw.DWLineStoreImpl.add(DWLineStoreImpl.java:156)

      at com.li.log.dw.DWLineStoreImpl.add(DWLineStoreImpl.java:184)

      at com.li.log.reader.FileIngester.flushToIndex(FileIngester.java:177)

      at com.li.log.reader.FileIngester.readNext(FileIngester.java:148)

      at com.li.log.TailerImpl.tail(TailerImpl.java:265)

      at com.li.log.TailerImpl.call(TailerImpl.java:149)

      at com.li.log.TailerImpl.call(TailerImpl.java:35)

      at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)

      at java.util.concurrent.FutureTask.run(FutureTask.java:139)

      at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)

      at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)

      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:909)

      ... 1 more

      Caused by: com.sleepycat.je.log.ChecksumException: Read invalid log entry type: 49

      at com.sleepycat.je.log.LogEntryHeader.<init>(LogEntryHeader.java:138)

      at com.sleepycat.je.log.LogManager.getLogEntryFromLogSource(LogManager.java:861)

      at com.sleepycat.je.log.LogManager.getLogEntry(LogManager.java:781)

      ... 31 more

      2011-03-16 11:10:24,516 ERROR tailer-sched-27-3 (indexer.BigIndexer) Fatal DB ERROR: