On 1/2/06, Brian Moseley <[EMAIL PROTECTED]> wrote: > i'm having an interesting production experience in which jackrabbit > has become unable to load the root node's state. it seems to have > entered this state after the machine it's running on was abruptly > power cycled. specifically, jackrabbit is receiving an EOFException > when deserializing the root node state read from derby (stack trace > below). > > the exception is thrown at the same stage of deserialization every > time i try to start up the repository, which implies that corrupted > data somehow got stored into derby at some previous time. no errors > were logged by either jackrabbit or derby prior to the first > deserialization error. > > i'm interested to hear any thoughts on how jackrabbit+derby could have > gotten into this state and what we might do to prevent this from > happening again.
currently i can only think of two possible explanations: 1. you're trying to read data which what was written with an older jackrabbit version. the serialization format has changed a while ago (svn r329841). 2. the power cycle must have happened during the jdbc commit call (SimpleDbPersistenceManager line 419) which in turn caused a corrupted node state. although this seems rather unlikely... if you can provide me the data (derby database) i'll investigate further. cheers stefan > > thanks! > > java.io.EOFException > at java.io.DataInputStream.readFully(DataInputStream.java:178) > at java.io.DataInputStream.readUTF(DataInputStream.java:565) > at java.io.DataInputStream.readUTF(DataInputStream.java:522) > at > org.apache.jackrabbit.core.state.util.Serializer.deserialize(Serializ > er.java:153) > at > org.apache.jackrabbit.core.state.db.SimpleDbPersistenceManager.load(S > impleDbPersistenceManager.java:455) > ... 59 more > org.apache.jackrabbit.core.state.ItemStateException: failed to read node > state: > cafebabe-cafe-babe-cafe-babecafebabe: null > at > org.apache.jackrabbit.core.state.db.SimpleDbPersistenceManager.load(S > impleDbPersistenceManager.java:464) > at > org.apache.jackrabbit.core.state.SharedItemStateManager.loadItemState > (SharedItemStateManager.java:751) > at > org.apache.jackrabbit.core.state.SharedItemStateManager.getNonVirtual > ItemState(SharedItemStateManager.java:678) > at > org.apache.jackrabbit.core.state.SharedItemStateManager.<init>(Shared > ItemStateManager.java:174) > at > org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.getItemStateP > rovider(RepositoryImpl.java:1218) > at > org.apache.jackrabbit.core.RepositoryImpl.getWorkspaceStateManager(Re > positoryImpl.java:588) > at org.apache.jackrabbit.core.SessionImpl.<init>(SessionImpl.java:240) > at > org.apache.jackrabbit.core.SystemSession.<init>(SystemSession.java:69 > ) > at > org.apache.jackrabbit.core.SystemSession.create(SystemSession.java:57 > ) > at > org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.getSystemSess > ion(RepositoryImpl.java:1201) > at > org.apache.jackrabbit.core.RepositoryImpl.getSystemSession(Repository > Impl.java:648) > at > org.apache.jackrabbit.core.RepositoryImpl.initWorkspace(RepositoryImp > l.java:449) > at > org.apache.jackrabbit.core.RepositoryImpl.<init>(RepositoryImpl.java: > 227) > at > org.apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java: > 430) >