Skip to Main Content

Berkeley DB Family

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

BerkeleyDB LOG_INTEGRITY errors

2641727Mar 27 2014 — edited Mar 28 2014

Greetings!

We run BerkeleyDB embedded in our java application. Everything runs fine normally. Trouble happens if we run two instances of the same application. The folders where database files are created are separate for both. But it seems that when one stops something deletes the database files of the running one and it crashes.

A little more detail on how we run things:

init.d script (1) --> Starts a python module as root (2) ---> Starts a Java program as a regular user (3) ---> Forks off java programs that use individual instances of BerkeleyDB (4)

So if we start (3) manually things seem to run fine even if we have two instances of 4. It is only when the full thing runs that the error happens - the first process runs fine, the second process starts and completes and then the first process crashes because the entire content of its database folder is gone.

One more observation - if we set up the HOME environment variable to "/root" before starting (3) above - things do not fail. We cannot do that for obvious reasons, but this is something we found by chance.

The stack trace is attached below. If anyone can throw some light on what may be causing this that will be very very helpful.


Regards,
Arnab.


Caused by: com.sleepycat.je.EnvironmentFailureException: (JE 5.0.103) Environment must be closed, caused by: com.sleepycat.je.EnvironmentFailureException: Environment invalid because of previous exception: (JE 5.0.103) db com.sleepycat.je.EnvironmentFailureException: (JE 5.0.103) db java.io.FileNotFoundException: db/00000001.jdb (No such file or directory) LOG_INTEGRITY: Log information is incorrect, problem is likely persistent. UNEXPECTED_EXCEPTION_FATAL: Unexpected internal Exception, unable to continue. Environment is invalid and must be closed.

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

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

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

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

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

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

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

        at com.veracode.webscan.scanner.BerkeleyDbStorage$Db.put(BerkeleyDbStorage.java:585)

        at com.veracode.webscan.scanner.BerkeleyDbStorage$Db.put(BerkeleyDbStorage.java:615)

        at com.veracode.webscan.scanner.BerkeleyDbStorage$Db.access$3400(BerkeleyDbStorage.java:568)

        at com.veracode.webscan.scanner.BerkeleyDbStorage$NodeProviderImpl.setProp(BerkeleyDbStorage.java:850)

        at com.veracode.webscan.scanner.BerkeleyDbStorage$Node.setProp(BerkeleyDbStorage.java:148)

        at com.veracode.dscancommon.util.BaseMutablePropsAsMutableProps.setProp(BaseMutablePropsAsMutableProps.java:62)

        ... 34 more

Caused by: com.sleepycat.je.EnvironmentFailureException: Environment invalid because of previous exception: (JE 5.0.103) db com.sleepycat.je.EnvironmentFailureException: (JE 5.0.103) db java.io.FileNotFoundException: db/00000001.jdb (No such file or directory) LOG_INTEGRITY: Log information is incorrect, problem is likely persistent. UNEXPECTED_EXCEPTION_FATAL: Unexpected internal Exception, unable to continue. Environment is invalid and must be closed.

        at com.sleepycat.je.EnvironmentFailureException.unexpectedException(EnvironmentFailureException.java:351)

        at com.sleepycat.je.log.LogBufferPool.writeBufferToFile(LogBufferPool.java:443)

        at com.sleepycat.je.log.LogBufferPool.writeDirty(LogBufferPool.java:370)

        at com.sleepycat.je.log.LogManager.multiLog(LogManager.java:426)

        at com.sleepycat.je.log.LogManager.log(LogManager.java:350)

        at com.sleepycat.je.tree.IN.logInternal(IN.java:3547)

        at com.sleepycat.je.tree.IN.optionalLog(IN.java:3494)

        at com.sleepycat.je.tree.IN.splitInternal(IN.java:2737)

        at com.sleepycat.je.tree.IN.split(IN.java:2535)

        at com.sleepycat.je.tree.Tree.forceSplit(Tree.java:1992)

        at com.sleepycat.je.tree.Tree.searchSubTreeSplitsAllowed(Tree.java:1768)

        at com.sleepycat.je.tree.Tree.searchSplitsAllowed(Tree.java:1318)

        at com.sleepycat.je.tree.Tree.findBinForInsert(Tree.java:2246)

        at com.sleepycat.je.dbi.CursorImpl.putInternal(CursorImpl.java:875)

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

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

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

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

        at com.sleepycat.je.Cursor.putNoDups(Cursor.java:2149)

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

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

        ... 41 more

Caused by: com.sleepycat.je.EnvironmentFailureException: (JE 5.0.103) db java.io.FileNotFoundException: db/00000001.jdb (No such file or directory) LOG_INTEGRITY: Log information is incorrect, problem is likely persistent.

        at com.sleepycat.je.log.FileManager$LogEndFileDescriptor.getWritableFile(FileManager.java:2981)

        at com.sleepycat.je.log.FileManager$LogEndFileDescriptor.access$200(FileManager.java:2682)

        at com.sleepycat.je.log.FileManager.writeLogBuffer(FileManager.java:1607)

        at com.sleepycat.je.log.LogBufferPool.writeBufferToFile(LogBufferPool.java:411)

        ... 60 more

Caused by: java.io.FileNotFoundException: db/00000001.jdb (No such file or directory)

        at java.io.RandomAccessFile.open(Native Method)

        at java.io.RandomAccessFile.<init>(Unknown Source)

        at java.io.RandomAccessFile.<init>(Unknown Source)

        at com.sleepycat.je.log.FileManager$DefaultRandomAccessFile.<init>(FileManager.java:3181)

        at com.sleepycat.je.log.FileManager$6.createFile(FileManager.java:3209)

        at com.sleepycat.je.log.FileManager.openFileHandle(FileManager.java:1278)

        at com.sleepycat.je.log.FileManager.makeFileHandle(FileManager.java:1245)

        at com.sleepycat.je.log.FileManager.access$1500(FileManager.java:76)

        at com.sleepycat.je.log.FileManager$LogEndFileDescriptor.getWritableFile(FileManager.java:2959)

        ... 63 more

This post has been answered by Greybird-Oracle on Mar 27 2014
Jump to Answer

Comments

Locked Post
New comments cannot be posted to this locked post.

Post Details

Locked on Apr 25 2014
Added on Mar 27 2014
4 comments
2,533 views