jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "sbarriba" <sbarr...@yahoo.co.uk>
Subject RE: Strange "ignoring nonexistent item" and removeitem fails
Date Tue, 31 Jul 2007 08:45:05 GMT
Hi Stefan et al,
Thanks for the info. I was not aware of the consistency checker.
I tried to run it on our setup but the checker appears to ignore the
schemaObjectPrefix setting e.g. when starting the repository I get:

31 Jul 2007 09:40:30,563 INFO
org.apache.jackrabbit.core.persistence.bundle.BundleDbPersistenceManager  -
foobar: checking workspace consistency..
31 Jul 2007 09:40:30,576 ERROR
org.apache.jackrabbit.core.persistence.bundle.BundleDbPersistenceManager  -
Error in bundle
com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Table
'mydatabase.bundle' doesn't exist
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2934)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1616)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1708)
        at com.mysql.jdbc.Connection.execSQL(Connection.java:3255)
        at
com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1293
)
        at
com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:867)
        at
org.apache.jackrabbit.core.persistence.bundle.BundleDbPersistenceManager.che
ckConsistency(BundleDbPersistenceManager.java:689)
        at
org.apache.jackrabbit.core.persistence.bundle.BundleDbPersistenceManager.ini
t(BundleDbPersistenceManager.java:581)
        at
org.apache.jackrabbit.core.persistence.bundle.MySqlPersistenceManager.init(M
ySqlPersistenceManager.java:54)

Note that the table name is actually "foorbar_bundle" not "bundle".
Are there any other params to the consistency checker I can use to resolve
the above?

Regards,
Shaun.

-----Original Message-----
From: Stefan Guggisberg [mailto:stefan.guggisberg@gmail.com] 
Sent: 30 July 2007 14:00
To: users@jackrabbit.apache.org
Subject: Re: Strange "ignoring nonexistent item" and removeitem fails

hi shaun,

On 7/30/07, sbarriba <sbarriba@yahoo.co.uk> wrote:
> Hi Stefan,
>
> "what persistence manager are you using?"
> We're using MySql 5.0.27, mysql-connector-java-5.0.6-bin.jar and
>
>         <PersistenceManager
>
class="org.apache.jackrabbit.core.persistence.bundle.MySqlPersistenceManager
> ">
>           <param name="driver" value="com.mysql.jdbc.Driver"/>
>           <param name="url" value="jdbc:mysql://mysql-host:3306/[SID]"/>
>           <param name="schemaObjectPrefix" value="${wsp.name}_"/>
>           <param name="user" value="[SID]"/>
>           <param name="password" value="[SID]"/>
>           <param name="schema" value="mysql"/>
>           <param name="externalBlobs" value="false"/>
>         </PersistenceManager>
>
> The nodes were deleted using the JCR API.

hmm, i have no idea what could possibly lead to the corruption. the entire
changelog generated by a save() or commit is persisted within a single
jdbc transaction. in the case of an Item#remove(), the changelog includes
the removed item, its parent and its descendants (if any). so dangling
child node entries should never occur.

however...

>
> Sounds like I need to open up the bonnet and get the spanners out?

i suggest you try the following:

add the following to your persistence manager config:

    <param name="consistencyCheck" value="true">

shutdown and restart the repository and check the jackrabbit log file
(you might want to set the log category to "INFO"). this option
tells the pm to perform a consistency check and report and anomalies.

if there are any inconsistencies, you could try the following option:

    <param name="consistencyCheck" value="true">
    <param name="consistencyFix" value="true">


i hope that this will do the trick.

cheers
stefan

>
> Regards,
> Shaun.
>
> -----Original Message-----
> From: Stefan Guggisberg [mailto:stefan.guggisberg@gmail.com]
> Sent: 30 July 2007 11:31
> To: users@jackrabbit.apache.org
> Subject: Re: Strange "ignoring nonexistent item" and removeitem fails
>
> hi shaun,
>
> On 7/30/07, sbarriba <sbarriba@yahoo.co.uk> wrote:
> > Hi all,
> >
> > We have a fairly complex structured node - Node A. Node A contains
various
> > child nodes that have references.
> >
> >
> >
> > When attempting to delete the Node A using removeitem in the command
line:
> >
> >
> >
> > exception: javax.jcr.ItemNotFoundException
> >
> > message: eb76dc5d-4d56-4ceb-9586-fdcedd53a2e7
> >
> >
> >
> > No exception is reporting in the JackRabbit log. Note that I can find no
> > nodes relating to the above ID (using a query) - the uuid of the node
> we're
> > trying to delete is cd2a933a-1da8-42c0-9236-d128c2cc9825.
> >
> >
> >
> > As further info when performing a 'dump' on the node we see the
following
> in
> > the JackRabbit logs:
> >
> >
> >
> > 30 Jul 2007 11:00:53,472 DEBUG
org.apache.jackrabbit.core.LazyItemIterator
> > - ignoring nonexistent item eb76dc5d-4d56-4ceb-9586-fdcedd53a2e7
> >
>
> seems like there's a dangling reference, i.e. a child node entry refering
to
> an nonexistent item. that shouldn't happen :-( what persistence manager
> are you using?
>
> >
> >
> > Immediately before this problem occurred some subnodes were successfully
> > deleted from Node A. This is the first time we've seen any kind of
> > corruption issues of this type.
>
> how did you delete the subnodes? using the jcr api or using the cmd line
> tool?
>
> cheers
> stefan
>
> >
> >
> >
> > Any recommendations on how to resolve this issue?
> >
> >
> >
> > Regards,
> >
> > Shaun.
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
>
>


Mime
View raw message