jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jukka Zitting <jukka.zitt...@gmail.com>
Subject Re: Months of repository data lost after jackrabbit-server restart?
Date Mon, 30 Mar 2009 23:34:31 GMT

On Tue, Mar 31, 2009 at 12:30 AM, Olivier Dony <olivier.dony@denali.be> wrote:
> In this case however, it looks like the repository continued to work, so we
> never noticed anything wrong. Everything was ok: creating nodes, uploading
> files, adding meta-data, versioning, reading, etc.
> The "broken pipe" exceptions are the only noteworthy errors we can see in
> the log since the last restart of the jackrabbit-server, in december 2008.
> How is this possible?

Seems weird. A save() call can only succeed if the underlying
persistence database has successfully committed the changes. Does your
log show any exceptions or problems related to save() calls?

> Was the jackrabbit-server caching all the metadata
> without ever needing the database?

Jackrabbit does cache content, but the content from one session only
becomes available to another session after it has been successfully
persisted. So unless you only ever used a single session, there should
be no way for your data to be kept *only* in a cache unless the
underlying database was seriously broken (i.e. it returned success for
uncompleted commits).

> It's frightening because the MySQL database files for the jackrabbit db have
> a modification time dating back in June 2008! The jackrabbit-server has been
> restarted since then, and it was still working, so what is happening?

If you did restart Jackrabbit since then and you're seeing more recent
content, then clearly that content is stored somewhere other than
Jackrabbit caches. Are you sure you haven't accidentally changed the
Jackrabbit configuration to point to some other database? Has there
been any major configuration/deployment changes in the MySQL database
you're using?

> Now the real question is:  what can we do to recover even a part of our lost
> data? We do have incremental backups of the MySQL and the filesystem
> structure, but it looks like the MySQL database had indeed not been updated
> since June 2008, so our backups can't help...

First of all make sure that your backups are safe. Whatever you do, do
it on a copy of your backups so you can't accidentally destroy things.
Note also that the Jackrabbit search indexes will contain quite a lot
of information about the repository content. In the extreme case of
all data being gone from the persistence database, you should still be
able to salvage something from the search index. If you have backups
of the search index, make sure those backups are safe.

Next, I'd investigate what really went wrong. Why did you start seeing
the pipe errors in the first place? What log messages are there for
save() operations? Has there been any recent configuration/deployment
changes or upgrades to the MySQL or Jackrabbit installations? What was
the exact Jackrabbit configuration (repository.xml + workspace.xml
files) you used?

Once you know what went wrong, you'll have a better picture of where
your content could be found.


Jukka Zitting

View raw message