Library Version 11.2.4.1, Release 4.1.27
com.sleepycat.je.EnvironmentFailureException: (JE 5.0.34) com.sleepycat.je.utilint.RelatchRequiredException UNEXPECTED_EXCEPTION: Unexpected internal Exception, may have side effects. at com.sleepycat.je.EnvironmentFailureException.unexpectedException(EnvironmentFailureException.java:286) at com.sleepycat.je.tree.BIN.fetchTarget(BIN.java:1268) at com.sleepycat.je.Cursor.checkForInsertion(Cursor.java:3006) at com.sleepycat.je.Cursor.retrieveNextAllowPhantoms(Cursor.java:2926) at com.sleepycat.je.Cursor.retrieveNextNoDups(Cursor.java:2789) at com.sleepycat.je.Cursor.retrieveNext(Cursor.java:2763) at com.sleepycat.je.Cursor.getNext(Cursor.java:1116) ...Thanks to OTN user user591209 for reporting this and testing the fix. [#21121] (4.1.24)
java.lang.AssertionError at com.sleepycat.je.tree.INTargetRep$Sparse.updateCacheStats(INTargetRep.java:296) at com.sleepycat.je.tree.INArrayRep.updateCacheStats(INArrayRep.java:133) at com.sleepycat.je.tree.INArrayRep.noteRepChange(INArrayRep.java:158) at com.sleepycat.je.tree.INArrayRep.noteRepChange(INArrayRep.java:163) at com.sleepycat.je.tree.INTargetRep$None.set(INTargetRep.java:331) at com.sleepycat.je.tree.INTargetRep$None.set(INTargetRep.java:303) at com.sleepycat.je.tree.IN.updateNode(IN.java:1498) at com.sleepycat.je.tree.IN.fetchTarget(IN.java:1332)This (like any assertion) would invalidate the Environment, but otherwise did not cause any persistent damage. [#21990] (4.1.24)
Also added a new cache statistic to help diagnose potential memory leaks: EnvironmentStats.getDataAdminBytes.
[#22100] (4.1.26)
Feb 11, 2013 3:32:13 PM com.sleepycat.je.utilint.DaemonThread run SEVERE:[#22202] (4.1.27)caught exception, java.lang.NullPointerException Continuing java.lang.NullPointerException at com.sleepycat.je.cleaner.FileProcessor.processLN(FileProcessor.java:808) at com.sleepycat.je.cleaner.FileProcessor.processFile(FileProcessor.java:674) at com.sleepycat.je.cleaner.FileProcessor.doClean(FileProcessor.java:289) at com.sleepycat.je.cleaner.FileProcessor.onWakeup(FileProcessor.java:148) at com.sleepycat.je.utilint.DaemonThread.run(DaemonThread.java:163) at java.lang.Thread.run(Thread.java:679)
WARNING: This fix could change the behavior of JE if a boolean EnvironmentConfig property is specified as "true" but with leading or trailing whitespace. Previously such a property would be set to false, and now it will be set to true.
[#22212] (4.1.27)
Environment.renameDatabase
, or
implicitly when a DPL Renamer
mutation is used to rename an entity
class or a secondary key field. This bug was introduced in JE 4.1.20. [#21537]
com.sleepycat.je.EnvironmentFailureException: Environment invalid because of previous exception: (JE 5.0.34) fetchTarget of 0xc3d4/0x25dab parent IN=2372138 IN class=com.sleepycat.je.tree.IN lastFullVersion=0xc4ca/0xd2aad lastLoggedVersion=0xc4ca/0xd2aad parent.getDirty()=false state=0 LOG_FILE_NOT_FOUND: Log file missing, log is likely invalid. Environment is invalid and must be closed. ...The bug occurred after deleting a range of keys in a deferred-write database (DatabaseConfig.setDeferredWrite(true) or StoreConfig.setDeferredWrite(true)), closing the Environment, and then opening the Environment. It is most likely to occur when deleting large numbers of consecutive keys, and when opening and closing the Environment often, with the log cleaner enabled.
Because a log file is incorrectly deleted as a result of this bug, restoring from a backup is necessary, i.e., there is no way to repair the environment. Many thanks to Vishal Vishnoi and Vladimir Egorov for reproducing the problem and helping us to diagnose it.
[#21348]
com.sleepycat.je.EnvironmentFailureException: (JE 5.0.XX) Before upgrading to JE 5.0, the following utility must be run using JE 4.1: DbPreUpgrade_4_1 using the JE old version. See the release notes.WARNING: Due to this bug, JE 4.1.20 or later should be used to run the DbPreUpgrade_4_1 and DbRepPreUpgrade_4_1 utilities. See the JE 5.0 change log for information on running these utilities.
Thanks to Vinoth for reporting the problem and helping us with the diagnosis and testing. [#21304]
Environment.removeDatabase
or
truncateDatabase
to loop in a "livelock" pattern along with active
log cleaner threads, where the removeDatabase
or
truncateDatabase
thread is not making forward progress. Also
fixed a bug that could cause this state to eventually cause an
EnvironmentFailureException
during a subsequent recovery, and
prevent opening the environment. [#20816]
EnvironmentConfig.TXN_DEADLOCK_STACK_TRACE
for debugging.
Environment.removeDatabase
and truncateDatabase
(see
[#20816] above). The additional fixes address long operation times due to log
cleaning with large file sizes in combination with eviction. Also fixed a bug
that slows down log cleaning (contributing to the long operation times as well)
when large numbers of databases are present, and not all databases are kept
open by the application. [#21015]
Caused by: com.sleepycat.je.EnvironmentFailureException: Environment invalid because of previous exception: (JE 4.1.10) ... unexpected get for VLSN: 37,054,546 already 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)This problem had been introduced in JE 4.1.10 and can only be seen in that release. The problem is transient and there is no change to the persistent data. After closing and reopening the environment, the environment will be fully consistent and reusable.
Thanks to Cesar for reporting this on OTN. [#20165]
java.lang.IndexOutOfBoundsException: Index: 110, Size: 110 at java.util.ArrayList.RangeCheck(ArrayList.java:547) at java.util.ArrayList.get(ArrayList.java:322) at com.sleepycat.je.rep.vlsn.VLSNBucket.findPopulatedIndex(VLSNBucket.java:441) at com.sleepycat.je.rep.vlsn.VLSNBucket.removeFromTail(VLSNBucket.java:730) at com.sleepycat.je.rep.vlsn.VLSNIndex.pruneDatabaseTail(VLSNIndex.java:1087) at com.sleepycat.je.rep.vlsn.VLSNIndex.merge(VLSNIndex.java:1274) at com.sleepycat.je.rep.vlsn.VLSNIndex.init(VLSNIndex.java:1161) at com.sleepycat.je.rep.vlsn.VLSNIndex.There was no corruption to the persistent data, but without this fix, the environment would repeatedly fail to open. [#20796](VLSNIndex.java:382) at com.sleepycat.je.rep.impl.RepImpl.preRecoveryCheckpointInit(RepImpl.java:374) at com.sleepycat.je.recovery.RecoveryManager.recover(RecoveryManager.java:238) at com.sleepycat.je.dbi.EnvironmentImpl.finishInit(EnvironmentImpl.java:549) at com.sleepycat.je.dbi.DbEnvPool.getEnvironment(DbEnvPool.java:237) at com.sleepycat.je.Environment.makeEnvironmentImpl(Environment.java:229) at com.sleepycat.je.Environment. (Environment.java:211) at com.sleepycat.je.Environment. (Environment.java:176) at com.sleepycat.je.rep.ReplicatedEnvironment. (ReplicatedEnvironment.java:443) at com.sleepycat.je.rep.ReplicatedEnvironment. (ReplicatedEnvironment.java:318) at com.sleepycat.je.rep.ReplicatedEnvironment. (ReplicatedEnvironment.java:379)
<entry lsn="0x1791f/0x0" type="FileHeader/-1" prev="0x0" size="24" cksum="659948021"><FileHeader num="0x1791f" lastEntryInPrevFileOffset="0x0" logVersion="0x8" time="2011-09-26 10:36:07.055"/></entry>[#20732]
This utility is useful when the user wishes to create a new replication group, starting with a copy of an existing replicated environment. The utility can also be used to change the group name associated with the environment.
Thread performing eviction (in this case the JEEvictor thread): com.sleepycat.je.recovery.DirtyINMap.coordinateEvictionWithCheckpoint(DirtyINMap.java:92) waiting to lock <0xaeae7118> (a com.sleepycat.je.recovery.DirtyINMap) at com.sleepycat.je.recovery.Checkpointer.coordinateEvictionWithCheckpoint(Checkpointer.java:203) at com.sleepycat.je.evictor.Evictor.coordinateWithCheckpoint(Evictor.java:1073) at com.sleepycat.je.evictor.Evictor.access$000(Evictor.java:124) at com.sleepycat.je.evictor.Evictor$1RootEvictor.doWork(Evictor.java:707) at com.sleepycat.je.tree.Tree.withRootLatchedExclusive(Tree.java:334) at com.sleepycat.je.evictor.Evictor.evictRoot(Evictor.java:741) at com.sleepycat.je.evictor.Evictor.evictBatch(Evictor.java:630) at com.sleepycat.je.evictor.Evictor.doEvict(Evictor.java:536) at com.sleepycat.je.evictor.Evictor$BackgroundEvictTask.run(Evictor.java:1215) 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) Thread calling Environment.sync: sun.misc.Unsafe.park(Native Method) parking to wait for <0xaeafb698> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158) at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:811) at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireShared(AbstractQueuedSynchronizer.java:941) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(AbstractQueuedSynchronizer.java:1261) at java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock(ReentrantReadWriteLock.java:594) at com.sleepycat.je.latch.SharedLatch.acquireShared(SharedLatch.java:149) at com.sleepycat.je.tree.Tree.withRootLatchedShared(Tree.java:344) at com.sleepycat.je.dbi.DbTree.getHighestLevel(DbTree.java:1615) at com.sleepycat.je.recovery.DirtyINMap.selectDirtyINsForCheckpoint(DirtyINMap.java:236) locked <0xaeae7118> (a com.sleepycat.je.recovery.DirtyINMap) at com.sleepycat.je.recovery.Checkpointer.doCheckpoint(Checkpointer.java:495) locked <0xaeae7058> (a com.sleepycat.je.recovery.Checkpointer) at com.sleepycat.je.dbi.EnvironmentImpl.invokeCheckpoint(EnvironmentImpl.java:1816) at com.sleepycat.je.Environment.sync(Environment.java:1472) ...[#19567]
EnvironmentConfig.setSharedCache(true)
to not use the shared
cache and instead use a private cache. This happened only when opening
multiple Environments concurrently in more than one thread. Thanks to Tim
Underwood for
reporting
this on OTN and identifying the specific problem in the JE source code.
[#19680]
... recoveryTracker should overlap or follow on disk last VLSN of 52,678 recoveryFirst= 52,680 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.merge(VLSNIndex.java:1230) at com.sleepycat.je.rep.vlsn.VLSNIndex.init(VLSNIndex.java:1141) at com.sleepycat.je.rep.vlsn.VLSNIndex.Thanks to Jan for reporting this problem on OTN and working with us to fix it. [#19754](VLSNIndex.java:367) at com.sleepycat.je.rep.impl.RepImpl.preRecoveryCheckpointInit(RepImpl.java:373) at com.sleepycat.je.recovery.RecoveryManager.recover(RecoveryManager.java:238) at com.sleepycat.je.dbi.EnvironmentImpl.finishInit(EnvironmentImpl.java:534) ...
EnvironmentFailureException
with
LOG_FILE_NOT_FOUND
during recovery, meaning that the JE
environment cannot be opened. We strongly recommend that all applications
using JE 4.1.6 upgrade immediately. The bug was introduced in JE 4.1.6 and is
not present in earlier releases. [#19346]
Exception in thread "main" java.lang.ClassCastException: com.sleepycat.persist.raw.RawObject cannot be cast to com.sleepycat.persist.model.PersistentProxy at com.sleepycat.persist.impl.ProxiedFormat.newInstance(ProxiedFormat.java:91) at com.sleepycat.persist.impl.RecordInput.readObject(RecordInput.java:174) at com.sleepycat.persist.impl.ReflectionAccessor$ObjectAccess.read(ReflectionAccessor.java:406) at com.sleepycat.persist.impl.ReflectionAccessor.readNonKeyFields(ReflectionAccessor.java:285) ...Thanks to James Li for reporting this on OTN and helping us to identify the problem in the source code. [#19312]
In this release, cache eviction is no longer serialized, and can be executed concurrently. In addition, JE now has a dedicated, configurable thread pool which will do cache eviction when memory limits are reached. Eviction is done by this dedicated pool, by other JE daemon threads, and by application threads. JE attempts to skew the eviction workload toward the pool and daemon threads, in order to offload application threads.
The eviction pool is enabled by default, but can be disabled by the je.env.runEvictor property. The properties je.evictor.coreThreads, je.evictor.maxThreads and je.evictor.keepAlive are used to configure the core, max and keepalive attribute for the pool. EnvironmentStats has new statistics that try to give an indication of whether eviction is executed by the eviction pool, by operations with specific com.sleepycat.je.CacheMode settings, by explicit calls to Environment.evictMemory, by operations that will cause the cache to go over budget, or by JE daemon threads. [#18626]
One of the optimizations reduces the in-memory footprint of an internal btree node when only a small portion of it has been referenced, as might be the case when data records are accessed in a random order, or when a subset of data is accessed. It does not help if the application is doing a database-wide cursor traversal. [#18623]
Another optimization takes effect when the key less than or equal to 16 bytes in size, which can be true either when the key is naturally small, or when key prefixing is enabled through Database.setKeyPrefix(). [#18624]
Database.sync
and Database.close
for deferred-write databases, so that no file write or fsync is
performed if nothing in the database is dirty. Calling these methods
will now have very low cost when no changes to the database have been
made. [#18402]
<DaemonThread name="INCompressor"/> caught exception: com.sleepycat.je.EnvironmentFailureException: Node 1(1):rrep0 Read invisible log entry at 0x98c/0x2c711 <hdr type="LN_TX/7" <lsn v="6,505,875"> isInvisible="1" prev="0x2c6dd" size="28" cksum="501157099"/> LOG_INTEGRITY: Log information is incorrect, problem is likely persistent. fetchTarget of 0x98c/0x2c711 parent IN=55088 IN class=com.sleepycat.je.tree.BIN lastFullVersion=0x9c2/0x24a54 parent.getDirty()=true state=1 at com.sleepycat.je.log.LogManager.getLogEntryFromLogSource(LogManager.java:927) at com.sleepycat.je.log.LogManager.getLogEntry(LogManager.java:781) at com.sleepycat.je.log.LogManager.getLogEntryAllowInvisibleAtRecovery(LogManager.java:742) at com.sleepycat.je.tree.IN.fetchTarget(IN.java:1309) at com.sleepycat.je.tree.BIN.fetchTarget(BIN.java:1321) at com.sleepycat.je.tree.BIN.compress(BIN.java:804) at com.sleepycat.je.incomp.INCompressor.compressBin(INCompressor.java:501) at com.sleepycat.je.incomp.INCompressor.doCompress(INCompressor.java:411) at com.sleepycat.je.incomp.INCompressor.onWakeup(INCompressor.java:341) at com.sleepycat.je.utilint.DaemonThread.run(DaemonThread.java:162)
(JE 4.0.92) var/db/bdb_userNode fetchTarget of 0x3151/0x44b2638 parent IN=729921304 IN class=com.sleepycat.je.tree.DBIN lastFullVersion=0x3189/0x13616b0 parent.getDirty()=false state=0 LOG_FILE_NOT_FOUND: Log file missing, log is likely invalid. Environment is invalid and must be closed. at com.sleepycat.je.tree.IN.fetchTarget(IN.java:1241) at com.sleepycat.je.tree.BIN.fetchTarget(BIN.java:1300) ...Thanks to "helg" on OTN for reporting this and working with us to diagnose the problem. [#17252] (fixed in 4.0.114)
PreloadStatus.EXCEEDED_TIME
to be
incorrectly returned from the Database.preload()
method. [#18577]
(fixed in 4.0.114)
Environment env = new Environment( envHome, envConfig) ReplicatedEnvironment repEnv = new ReplicatedEnvironment(envHome, repConfig, envConfig)she would see a java.lang.ClassCastException, instead of the more informative java.lang.UnsupportedOperationException. This has been fixed. Note that it is permissible to open an environment as a ReplicatedEnvironment, and then follow by opening it as a read only Environment. This was initially reported on the OTN forum. [#18649]
EnvironmentConfig.CLEANER_LAZY_MIGRATION
to
provide finer control over log cleaner, checkpointing and eviction
behavior. See the javadoc for details. [#18650]
(fixed in 4.0.114)
Exception in thread "main" com.sleepycat.je.EnvironmentFailureException: (JE 4.0.92) last LSN=0x424/0xe4fc1 LOG_INTEGRITY: Log information is incorrect, problem is likely persistent. Environment is invalid and must be closed. at com.sleepycat.je.recovery.RecoveryManager.traceAndThrowException(RecoveryManager.java:3052) at com.sleepycat.je.recovery.RecoveryManager.readINs(RecoveryManager.java:867) at com.sleepycat.je.recovery.RecoveryManager.buildINs(RecoveryManager.java:621) at com.sleepycat.je.recovery.RecoveryManager.buildTree(RecoveryManager.java:513) at com.sleepycat.je.recovery.RecoveryManager.recover(RecoveryManager.java:175) at com.sleepycat.je.dbi.EnvironmentImpl.finishInit(EnvironmentImpl.java:529) at com.sleepycat.je.dbi.DbEnvPool.getEnvironment(DbEnvPool.java:204) at com.sleepycat.je.Environment.makeEnvironmentImpl(Environment.java:230) at com.sleepycat.je.Environment.(Environment.java:212) at com.sleepycat.je.Environment. (Environment.java:166) ... Caused by: com.sleepycat.je.EnvironmentFailureException: (JE 4.0.92) fetchTarget of 0x89/0x4c2e29 parent IN=4883580 IN class=com.sleepycat.je.tree.DIN lastFullVersion=0x424/0xdcec4 parent.getDirty()=false state=0 LOG_FILE_NOT_FOUND: Log file missing, log is likely invalid. Environment is invalid and must be closed. at com.sleepycat.je.tree.IN.fetchTarget(IN.java:1241) at com.sleepycat.je.tree.DIN.fetchTarget(DIN.java:520) at com.sleepycat.je.tree.IN.findParent(IN.java:2704) at com.sleepycat.je.tree.Tree.getParentINForChildIN(Tree.java:879) at com.sleepycat.je.recovery.RecoveryManager.replayINDelete(RecoveryManager.java:1770) at com.sleepycat.je.recovery.RecoveryManager.replayOneIN(RecoveryManager.java:945) at com.sleepycat.je.recovery.RecoveryManager.readINs(RecoveryManager.java:846) ... 11 more Caused by: java.io.FileNotFoundException: 00000089.jdb (The system cannot find the file specified) at java.io.RandomAccessFile.open(Native Method) at java.io.RandomAccessFile. (Unknown Source) at java.io.RandomAccessFile. (Unknown Source) at com.sleepycat.je.log.FileManager$1. (FileManager.java:993) at com.sleepycat.je.log.FileManager.openFileHandle(FileManager.java:992) at com.sleepycat.je.log.FileManager.getFileHandle(FileManager.java:888) at com.sleepycat.je.log.LogManager.getLogSource(LogManager.java:1073) at com.sleepycat.je.log.LogManager.getLogEntry(LogManager.java:779) at com.sleepycat.je.log.LogManager.getLogEntryAllowInvisibleAtRecovery(LogManager.java:743) at com.sleepycat.je.tree.IN.fetchTarget(IN.java:1225) ... 17 more
The bug only occurred under the following conditions:
No data loss occurs as a result of this bug. By using a version of JE with the bug fix, such environments can be opened and used normally. Thanks to OTN user justindthomas for reporting the problem and working with us to diagnose and fix it. [#18663] (fixed in 4.0.114)
IllegalStateException
when a DPL
Converter
mutation is used for class evolution, and Replicas are
upgraded first (as prescribed) in a replication group. [#18690]
(fixed in 4.0.114)
Environment.removeDatabase
or
Environment.truncateDatabase
is called, and the program crashes or
exits before any other information is written to disk. For example, if the
Environment is closed normally after the removal/truncation, or a scheduled
checkpoint occurs, then the bug will not occur. [#18696]
(fixed in 4.0.114)
All public JE exception and statistics classes should be serializable. Some were not, and have been fixed. The following classes are now certified to be serializable. [#18738]
com.sleepycat.je.BtreeStats
com.sleepycat.je.CommitToken
com.sleepycat.je.DatabaseEntry
com.sleepycat.je.DatabaseException
com.sleepycat.je.DatabaseExistsException
com.sleepycat.je.DatabaseNotFoundException
com.sleepycat.je.DatabaseStats
com.sleepycat.je.DeadlockException
com.sleepycat.je.DeleteConstraintException
com.sleepycat.je.DuplicateDataException
com.sleepycat.je.EnvironmentFailureException
com.sleepycat.je.EnvironmentLockedException
com.sleepycat.je.EnvironmentNotFoundException
com.sleepycat.je.EnvironmentStats
com.sleepycat.je.ForeignConstraintException
com.sleepycat.je.LockConflictException
com.sleepycat.je.LockNotAvailableException
com.sleepycat.je.LockNotGrantedException
com.sleepycat.je.LockStats
com.sleepycat.je.LockTimeoutException
com.sleepycat.je.LogWriteException
com.sleepycat.je.OperationFailureException
com.sleepycat.je.PreloadStats
com.sleepycat.je.PreloadStatus
com.sleepycat.je.RunRecoveryException
com.sleepycat.je.SecondaryConstraintException
com.sleepycat.je.SecondaryIntegrityException
com.sleepycat.je.SecondaryReferenceException
com.sleepycat.je.SequenceExistsException
com.sleepycat.je.SequenceIntegrityException
com.sleepycat.je.SequenceNotFoundException
com.sleepycat.je.SequenceOverflowException
com.sleepycat.je.SequenceStats
com.sleepycat.je.ThreadInterruptedException
com.sleepycat.je.TransactionStats
com.sleepycat.je.TransactionStats.Active
com.sleepycat.je.TransactionTimeoutException
com.sleepycat.je.UniqueConstraintException
com.sleepycat.je.VersionMismatchException
com.sleepycat.je.XAFailureException
com.sleepycat.je.jca.ra.JEException
com.sleepycat.je.rep.DatabasePreemptedException
com.sleepycat.je.rep.GroupShutdownException
com.sleepycat.je.rep.InsufficientAcksException
com.sleepycat.je.rep.InsufficientLogException
com.sleepycat.je.rep.InsufficientReplicasException
com.sleepycat.je.rep.LockPreemptedException
com.sleepycat.je.rep.LogOverwriteException
com.sleepycat.je.rep.MasterStateException
com.sleepycat.je.rep.MemberNotFoundException
com.sleepycat.je.rep.ReplicaConsistencyException
com.sleepycat.je.rep.ReplicaWriteException
com.sleepycat.je.rep.ReplicatedEnvironmentStats
com.sleepycat.je.rep.RestartRequiredException
com.sleepycat.je.rep.RollbackException
com.sleepycat.je.rep.RollbackProhibitedException
com.sleepycat.je.rep.StateChangeException
com.sleepycat.je.rep.UnknownMasterException
com.sleepycat.je.util.LogVerificationException
com.sleepycat.persist.IndexNotAvailableException
com.sleepycat.persist.StoreExistsException
com.sleepycat.persist.StoreNotFoundException
com.sleepycat.persist.evolve.DeletedClassException
com.sleepycat.persist.evolve.IncompatibleClassException
NullPointerException
under certain
circumstances when key prefixing is enabled. This was originally reported on the
OTN Forum. [#18773]
(fixed in 4.0.114)
java.lang.Thread.State: RUNNABLE at java.util.HashMap.put(HashMap.java:374) at java.util.HashSet.add(HashSet.java:200) at com.sleepycat.je.dbi.EnvironmentImpl.registerExceptionListenerUser(EnvironmentImpl.java:730) at com.sleepycat.je.utilint.DaemonThread.(DaemonThread.java:60) at com.sleepycat.je.cleaner.FileProcessor. (FileProcessor.java:110) at com.sleepycat.je.cleaner.Cleaner.doClean(Cleaner.java:461) at com.sleepycat.je.dbi.EnvironmentImpl.invokeCleaner(EnvironmentImpl.java:1879) at com.sleepycat.je.Environment.cleanLog(Environment.java:1559)
java.io.FileNotFoundException: ... (The system cannot find the file specified) at java.io.RandomAccessFile.open(Native Method) at java.io.RandomAccessFile.(Unknown Source) at java.io.RandomAccessFile. (Unknown Source) at com.sleepycat.je.log.FileManager$1. (FileManager.java:998) at com.sleepycat.je.log.FileManager.openFileHandle(FileManager.java:998) at com.sleepycat.je.log.FileManager.getFileHandle(FileManager.java:893) at com.sleepycat.je.rep.stream.FeederReader$SwitchWindow.fillNext(FeederReader.java:523) at com.sleepycat.je.log.FileReader.readData(FileReader.java:758) at com.sleepycat.je.log.FileReader.readNextEntryAllowExceptions(FileReader.java:259) at com.sleepycat.je.log.FileReader.readNextEntry(FileReader.java:230) at com.sleepycat.je.rep.stream.FeederReader.scanForwards(FeederReader.java:284) at com.sleepycat.je.rep.stream.MasterFeederSource.getWireRecord(MasterFeederSource.java:62) at com.sleepycat.je.rep.impl.node.Feeder$OutputThread.run(Feeder.java:659)
java.lang.ArrayIndexOutOfBoundsException at java.util.zip.Adler32.update(Adler32.java:47) at com.sleepycat.je.log.ChecksumValidator.update(ChecksumValidator.java:59) at com.sleepycat.je.log.ChecksumValidator.update(ChecksumValidator.java:55) at com.sleepycat.je.log.LogManager.getLogEntryFromLogSource(LogManager.java:928) ...Thanks to Jean-Christophe on OTN for reporting this bug. (fixed in 4.0.114)
java.lang.IllegalArgumentException: Can not set java.lang.Integer field com.sleepycat.persist.test.EvolveClasses$RenameSecField.new_secKey2 to java.lang.String at java.lang.reflect.Field.set(Field.java:657) at com.sleepycat.persist.impl.ReflectionAccessor$ObjectAccess.read(ReflectionAccessor.java:422) at com.sleepycat.persist.impl.ReflectionAccessor.readSecKeyFields(ReflectionAccessor.java:253) at com.sleepycat.persist.impl.ComplexFormat$EvolveReader.readObject(ComplexFormat.java:2127) at com.sleepycat.persist.impl.PersistEntityBinding.readEntity(PersistEntityBinding.java:115) at com.sleepycat.persist.impl.PersistEntityBinding.entryToObjectInternal(PersistEntityBinding.java:83) at com.sleepycat.persist.impl.PersistEntityBinding.entryToObject(PersistEntityBinding.java:64) at com.sleepycat.persist.PrimaryIndex.get(PrimaryIndex.java:597) at com.sleepycat.persist.PrimaryIndex.get(PrimaryIndex.java:584) ...This has been fixed. [#18961] (fixed in 4.0.114)
Cursor.getNextDup
or
EntityCursor.nextDup
to advance to a following key under certain
rare conditions. This also has a side effect of causing
Database.delete
to delete duplicate records for the following key
under the same conditions. The conditions that lead to the bug are:
MANY_TO_XXX
relationship is used.Cursor.getNextDup
or EntityCursor.nextDup
is
called when positioned on the last record for key A, or
Database.delete
is called for key A. In this case, the
record(s) with key B will mistakenly be returned or deleted.... Caused by: java.lang.IllegalAccessException: Class com.sleepycat.persist.impl.ReflectionAccessor can not access a member of class XXX with modifiers "public" at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:65) at java.lang.reflect.Constructor.newInstance(Constructor.java:505) at com.sleepycat.persist.impl.ReflectionAccessor.newInstance(ReflectionAccessor.java:151) ...Thanks to Sheila on OTN for reporting this problem and working with us. [#19100]
To resolve this, a new exception, com.sleepycat.je.rep.MasterReplicaTransitionException is thrown in these cases. MasterReplicaTransitionException is a RestartRequiredException, and the application must close and reopen its environment handle, thereby properly reinitializing the node. [#19177]