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)
>

Reply via email to