jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From <Sascha.The...@bosch-si.com>
Subject AW: Jackrabbit doesn`t startup anymore
Date Wed, 04 May 2011 14:06:57 GMT
Hi Stefan,

the problem was that our customer didn`t tell us that he has installed a new version of our
product and used the same database. So for me it was also very time consuming to find that
out... :(
But anyway, can you give me more insights about what to do in the conversion tool? I mean
which tables do I have to change? How should the data be changed? How can I re-compute the
definition id`s? 

Thanks in advance,

Sascha


-----Ursprüngliche Nachricht-----
Von: Stefan Guggisberg [mailto:stefan.guggisberg@gmail.com] 
Gesendet: Mittwoch, 4. Mai 2011 15:54
An: users@jackrabbit.apache.org
Betreff: Re: Jackrabbit doesn`t startup anymore

On Wed, May 4, 2011 at 3:41 PM,  <Sascha.Theves@bosch-si.com> wrote:
> Hi Stefan,
>
> yes you are absolutely right. We switched to a new version of our product and used the
old database. In our new product version we include Jackrabbit 1.6.2 and in the old product
version we include 1.5.6. So Jackrabbit has already migrated the data. So here is not really
a problem of Jackrabbit itself.

if you'd provided that information early on you would have saved me a
lot of time... :(

>
> But I have 2 questions regarding the automated migration of Jackrabbit:
>
> 1) Is it possible to disable the automated migration in Jackrabbit? So the migration
of the data is always a explicit and manual step?

that's currently not possible.

> 2) Is it possible to manually fix the data in the database so we are able to bring back
Jackrabbit 1.5.6 again?

you would have to write your own conversion tool. that tool would need
to re-determine the appropriate definition id's
which is possible but non-trivial.

cheers
stefan

>
> Thanks for your help!
>
> Cheers,
>
> Sascha
>
> -----Ursprüngliche Nachricht-----
> Von: Stefan Guggisberg [mailto:stefan.guggisberg@gmail.com]
> Gesendet: Mittwoch, 4. Mai 2011 15:13
> An: users@jackrabbit.apache.org
> Betreff: Re: Jackrabbit doesn`t startup anymore
>
> On Tue, May 3, 2011 at 9:16 AM,  <Sascha.Theves@bosch-si.com> wrote:
>> Hi all,
>>
>> I have now a detailed log output of the raised NumnberFormatException:
>>
>> 2011-05-03 08:55:25,329 [main] ERROR BundleDbPersistenceManager - failed to read
bundle: cafebabe-cafe-babe-cafe-babecafebabe: java.lang.NumberFormatException: For input string:
""
>> java.lang.NumberFormatException: For input string: ""
>>        at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
>>        at java.lang.Integer.parseInt(Integer.java:468)
>>        at java.lang.Integer.parseInt(Integer.java:497)
>>        at org.apache.jackrabbit.core.nodetype.NodeDefId.valueOf(NodeDefId.java:106)
>>        at org.apache.jackrabbit.core.persistence.bundle.util.BundleBinding.readBundle(BundleBinding.java:105)
>
> here's the problem:
>
>        // definitionId
>        bundle.setNodeDefId(NodeDefId.valueOf(in.readUTF()));
>
> jackrabbit 1.5.6 assumes that the node definition id is part of the
> serialized node bundle data.
> as of jackrabbit 1.6/2.0, definition id's are not persisted anymore,
> see [0] for details.
>
> it seems like you're using jackrabbit 1.5.6 to access data stored with
> jackrabbit 1.6.* or 2.*.
>
> cheers
> stefan
>
>
> [0] https://issues.apache.org/jira/browse/JCR-2170
>
>>        at org.apache.jackrabbit.core.persistence.bundle.BundleDbPersistenceManager.loadBundle(BundleDbPersistenceManager.java:1161)
>>        at org.apache.jackrabbit.core.persistence.bundle.BundleDbPersistenceManager.loadBundle(BundleDbPersistenceManager.java:1094)
>>        at org.apache.jackrabbit.core.persistence.bundle.AbstractBundlePersistenceManager.getBundle(AbstractBundlePersistenceManager.java:701)
>>        at org.apache.jackrabbit.core.persistence.bundle.AbstractBundlePersistenceManager.exists(AbstractBundlePersistenceManager.java:506)
>>        at org.apache.jackrabbit.core.state.SharedItemStateManager.hasNonVirtualItemState(SharedItemStateManager.java:1343)
>>        at org.apache.jackrabbit.core.state.SharedItemStateManager.<init>(SharedItemStateManager.java:203)
>>        at org.apache.jackrabbit.core.RepositoryImpl.createItemStateManager(RepositoryImpl.java:1317)
>>        at org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.doInitialize(RepositoryImpl.java:1863)
>>        at org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.initialize(RepositoryImpl.java:1834)
>>        at org.apache.jackrabbit.core.RepositoryImpl.initStartupWorkspaces(RepositoryImpl.java:483)
>>        at org.apache.jackrabbit.core.RepositoryImpl.<init>(RepositoryImpl.java:324)
>>        at org.apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java:621)
>>        at [SKIPPED]
>>
>> Please note that the line numbers in BundleDbPersistenceManager have changed regarding
to the 1.5.6 version of Jackrabbit because I have patched the class. But I think that doesn`t
matter. Any ideas what causes the problem now? Or how to fix the problem?
>>
>> Thanks in advance,
>>
>> Sascha
>>
>> -----Ursprüngliche Nachricht-----
>> Von: Sascha.Theves@bosch-si.com [mailto:Sascha.Theves@bosch-si.com]
>> Gesendet: Montag, 2. Mai 2011 13:24
>> An: users@jackrabbit.apache.org
>> Betreff: AW: Jackrabbit doesn`t startup anymore
>>
>> Hi,
>>
>>> did you copy the complete repository home directory, i.e. including
>>> the "ns_*.properties" files?
>>
>> Yes I copied the complete repository home directory. But I also tried to remove the
complete repository home directory to force a rebuild of the index files without success.
Still same error. Very strange. Debugging is currently not possible because the machine is
hosted by our customer. But I will try to patch Jackrabbit`s BundleDbPersistenceManager to
get a complete stack trace. If I have any news I will post it here.
>>
>> But anyway, thank you very much for your help so far.
>>
>> Cheers,
>>
>> Sascha
>>
>> -----Ursprüngliche Nachricht-----
>> Von: Stefan Guggisberg [mailto:stefan.guggisberg@gmail.com]
>> Gesendet: Montag, 2. Mai 2011 11:19
>> An: users@jackrabbit.apache.org
>> Betreff: Re: Jackrabbit doesn`t startup anymore
>>
>> On Mon, May 2, 2011 at 9:18 AM,  <Sascha.Theves@bosch-si.com> wrote:
>>> Hi,
>>>
>>>> i would need a full stacktrace of the following error:
>>>
>>>> 2011-04-29 07:41:14,278 [main] ERROR BundleDbPersistenceManager - failed
>>>> to read bundle: cafebabe-cafe-babe-cafe-babecafebabe:
>>>> java.lang.NumberFormatException: For input string: ""
>>>
>>> Attached you will find a debug output log of Jackrabbit. Unfortunately, I do
not see a full stack trace of the NumberFormatException. I think the exception must be catched
somewhere in Jackrabbit? Any ideas how to get the full stack?
>>
>> either debug jackrabbit and set a breakpoint on the line in
>> BundleDbPersistenceManager.java
>> which logs the error, or change that line to print the full stacktrace
>> and rebuild jackrabbit from
>> the soruces.
>>
>> all i can say is that for some reason the deserialization of the root
>> node data fails.
>>
>>>
>>>> what exact steps did you perform to setup the test on the other machine?
>>>
>>> I copied the whole application, including the workspace and the lucene index
data and the database configuration, to the other machine and started up the application.
>>
>> did you copy the complete repository home directory, i.e. including
>> the "ns_*.properties" files?
>>
>>>
>>>> has anything changed on the original machine? environment settings, locales
etc?
>>>
>>> I do not see any differences. What should I exactly look for?
>>
>> e.g. environment settings (default encoding, charset, locale), jvm
>> runtime version, etc.
>>
>>>
>>>> what os? deployment details?
>>>
>>> OS is a Unix operating system. Jackrabbit is embedded in our application which
runs in an OSGi container. Jackrabbit is connected to a Oracle database which is hosted on
another machine. Java 5 is installed on the machine. More details are printed in the attached
log file.
>>>
>>> Any ideas how to get rid of the problem are appreciated because I really need
to get it working again on the orig. machine.
>>
>> you'll probably have to debug jackrabbit in order to see why the
>> deserialization of the root node bundle fails.
>>
>> cheers
>> stefan
>>
>>>
>>> Thanks in advance,
>>>
>>> Sascha
>>>
>>> -----Ursprüngliche Nachricht-----
>>> Von: Stefan Guggisberg [mailto:stefan.guggisberg@gmail.com]
>>> Gesendet: Freitag, 29. April 2011 15:22
>>> An: users@jackrabbit.apache.org
>>> Betreff: Re: Jackrabbit doesn`t startup anymore
>>>
>>> On Fri, Apr 29, 2011 at 11:54 AM,  <Sascha.Theves@bosch-si.com> wrote:
>>>> Hi,
>>>>
>>>> thanks for your fast reply. We didn`t try a db backup yet but what we have
tried is to install Jackrabbit on another machine with exactly the same configuration (also
same db in use). That Jackrabbit instance works without problems. We can start and stop it
and we can browse the nodes.
>>>
>>> that's good news :)
>>>
>>>> So it seems that it doesn`t depend on the database...
>>>
>>> agreed
>>>
>>>> Any other ideas?
>>>
>>> what exact steps did you perform to setup the test on the other machine?
>>> has anything changed on the original machine? environment settings, locales etc?
>>> what os? deployment details?
>>>
>>> obviously there's a problem reading the root node (cafebabe...) on the
>>> original machine.
>>>
>>> i would need a full stacktrace of the following error:
>>>
>>> 2011-04-29 07:41:14,278 [main] ERROR BundleDbPersistenceManager - failed
>>> to read bundle: cafebabe-cafe-babe-cafe-babecafebabe:
>>> java.lang.NumberFormatException: For input string: ""
>>>
>>> it might be that the internal namespace index files (ns_*.properties)
>>> got corrupted.
>>>
>>> cheers
>>> stefan
>>>
>>>>
>>>> Thanks,
>>>>
>>>> Sascha
>>>>
>>>>
>>>>
>>>> -----Ursprüngliche Nachricht-----
>>>> Von: Stefan Guggisberg [mailto:stefan.guggisberg@gmail.com]
>>>> Gesendet: Freitag, 29. April 2011 10:53
>>>> An: users@jackrabbit.apache.org
>>>> Betreff: Re: Jackrabbit doesn`t startup anymore
>>>>
>>>> On Fri, Apr 29, 2011 at 9:58 AM,  <Sascha.Theves@bosch-si.com> wrote:
>>>>> Hi all,
>>>>>
>>>>>
>>>>>
>>>>> we have running a Jackrabbit 1.5.6 instance for months now without any
>>>>> problems. But since yesterday we were not able anymore to list nodes
>>>>> anymore and so on. We just got back empty results so that it seems that
>>>>> no data was ever persisted. After that we shutdown the Jackrabbit
>>>>> instance and now we are not able to start it again. The following
>>>>> exception occurs when starting up:
>>>>>
>>>>>
>>>>>
>>>>> 2011-04-29 07:41:14,278 [main] ERROR BundleDbPersistenceManager - failed
>>>>> to read bundle: cafebabe-cafe-babe-cafe-babecafebabe:
>>>>> java.lang.NumberFormatException: For input string: ""
>>>>>
>>>>> 2011-04-29 07:41:14,278 [main] ERROR BundleDbPersistenceManager - failed
>>>>> to read bundle: cafebabe-cafe-babe-cafe-babecafebabe:
>>>>> java.lang.NumberFormatException: For input string: ""
>>>>>
>>>>> 2011-04-29 07:41:14,409 [main] ERROR ConnectionRecoveryManager - could
>>>>> not execute statement, reason: ORA-00001: unique constraint
>>>>> (UJXMTSRADMIN.DEFAULT_BUNDLE_IDX) violated
>>>>
>>>> seems like your oracle db got corrupted somehow. did you perform sanity
>>>> checks on your oracle instance? did you try with a db backup?
>>>>
>>>> cheers
>>>> stefan
>>>>
>>>>>
>>>>> , state/code: 23000/1
>>>>>
>>>>> 2011-04-29 07:41:14,409 [main] ERROR ConnectionRecoveryManager - could
>>>>> not execute statement, reason: ORA-00001: unique constraint
>>>>> (UJXMTSRADMIN.DEFAULT_BUNDLE_IDX) violated
>>>>>
>>>>> , state/code: 23000/1
>>>>>
>>>>> 2011-04-29 07:41:14,417 [main] ERROR BundleDbPersistenceManager - failed
>>>>> to write bundle: deadbeef-cafe-babe-cafe-babecafebabe
>>>>>
>>>>> java.sql.SQLException: ORA-00001: unique constraint
>>>>> (UJXMTSRADMIN.DEFAULT_BUNDLE_IDX) violated
>>>>>
>>>>>
>>>>>
>>>>>                at
>>>>> oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:12
>>>>> 5)
>>>>>
>>>>>                at
>>>>> oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:305)
>>>>>
>>>>>                at
>>>>> oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:272)
>>>>>
>>>>>                at
>>>>> oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:626)
>>>>>
>>>>>                at
>>>>> oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.jav
>>>>> a:182)
>>>>>
>>>>>                at
>>>>> oracle.jdbc.driver.T4CPreparedStatement.execute_for_rows(T4CPreparedStat
>>>>> ement.java:630)
>>>>>
>>>>>                at
>>>>> oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.
>>>>> java:1081)
>>>>>
>>>>>                at
>>>>> oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePrepare
>>>>> dStatement.java:2905)
>>>>>
>>>>>                at
>>>>> oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStateme
>>>>> nt.java:2996)
>>>>>
>>>>>                at
>>>>> org.apache.jackrabbit.core.persistence.bundle.util.ConnectionRecoveryMan
>>>>> ager.executeStmtInternal(ConnectionRecoveryManager.java:371)
>>>>>
>>>>>                at
>>>>> org.apache.jackrabbit.core.persistence.bundle.util.ConnectionRecoveryMan
>>>>> ager.executeStmtInternal(ConnectionRecoveryManager.java:298)
>>>>>
>>>>>                at
>>>>> org.apache.jackrabbit.core.persistence.bundle.util.ConnectionRecoveryMan
>>>>> ager.executeStmt(ConnectionRecoveryManager.java:261)
>>>>>
>>>>>                at
>>>>> org.apache.jackrabbit.core.persistence.bundle.util.ConnectionRecoveryMan
>>>>> ager.executeStmt(ConnectionRecoveryManager.java:239)
>>>>>
>>>>>                at
>>>>> org.apache.jackrabbit.core.persistence.bundle.BundleDbPersistenceManager
>>>>> .storeBundle(BundleDbPersistenceManager.java:1198)
>>>>>
>>>>>                at
>>>>> org.apache.jackrabbit.core.persistence.bundle.AbstractBundlePersistenceM
>>>>> anager.putBundle(AbstractBundlePersistenceManager.java:732)
>>>>>
>>>>>                at
>>>>> org.apache.jackrabbit.core.persistence.bundle.AbstractBundlePersistenceM
>>>>> anager.storeInternal(AbstractBundlePersistenceManager.java:672)
>>>>>
>>>>>                at
>>>>> org.apache.jackrabbit.core.persistence.bundle.AbstractBundlePersistenceM
>>>>> anager.store(AbstractBundlePersistenceManager.java:536)
>>>>>
>>>>>                at
>>>>> org.apache.jackrabbit.core.persistence.bundle.BundleDbPersistenceManager
>>>>> .store(BundleDbPersistenceManager.java:524)
>>>>>
>>>>>                at
>>>>> org.apache.jackrabbit.core.state.SharedItemStateManager.createRootNodeSt
>>>>> ate(SharedItemStateManager.java:1303)
>>>>>
>>>>>                at
>>>>> org.apache.jackrabbit.core.state.SharedItemStateManager.<init>(SharedIte
>>>>> mStateManager.java:204)
>>>>>
>>>>>                at
>>>>> org.apache.jackrabbit.core.RepositoryImpl.createItemStateManager(Reposit
>>>>> oryImpl.java:1317)
>>>>>
>>>>>                at
>>>>> org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.doInitialize(Rep
>>>>> ositoryImpl.java:1863)
>>>>>
>>>>>                at
>>>>> org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.initialize(Repos
>>>>> itoryImpl.java:1834)
>>>>>
>>>>>                at
>>>>> org.apache.jackrabbit.core.RepositoryImpl.initStartupWorkspaces(Reposito
>>>>> ryImpl.java:483)
>>>>>
>>>>>                at
>>>>> org.apache.jackrabbit.core.RepositoryImpl.<init>(RepositoryImpl.java:324
>>>>> )
>>>>>
>>>>>                at
>>>>> org.apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java:621
>>>>> )
>>>>>
>>>>>
>>>>>
>>>>> I think the SQL exception is only raised because Jackrabbit is not able
>>>>> to read the bundle "cafebabe-cafe-babe-cafe-babecafebabe". Do you have
>>>>> any ideas how to fix the problem or what could have caused the problem?
>>>>>
>>>>> Any suggestions would be helpful.
>>>>>
>>>>>
>>>>>
>>>>> Thanks in advance.
>>>>>
>>>>>
>>>>>
>>>>> Sascha
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>
>

Mime
View raw message