From: Wolfgang M. <wol...@ex...> - 2008-06-19 14:34:40
|
> I've been encountering the 'document id and proxy id differ' error > under eXist 1.2.2 and 1.2.3. The problem starts when I delete the old > version of a file from the database and upload a new version of the > file. I start to get log errors as follows: > > java.lang.IllegalArgumentException: Document id ('286') and proxy id > ('69') differ ! Were there any other queries/updates running before or while you tried to delete that old version? Does the error disappear if you restart the server or can you reproduce it even after a restart? > Once this happens, the database appears unable to recover. The file > is stored, but all subsequent uploads of files to the database result > in the same document/proxy id error. I've tried deleting the file, > deleting the collection, and reindexing the collection after deleting > the file, but no matter what, the error persists. The reindex reports an error in document /db/frus/department/people/countries.xml. Does that document appear to be damaged as well? For a clean reindex, you could stop the db, remove all .dbx and .log files except collections.dbx, dom.dbx and symbols.dbx, then restart and reindex. But I suspect that at this point some parts of the db have already been damaged. Another thing you could try is to change the code in src/org/exist/storage/NativeElementIndex.java to just call continue; instead of throwing the exception. The error does not necessarily need to be fatal, so maybe throwing an exception is too drastic. As always, it would be best if we had a way to reproduce the issue. If your damaged db is not confident, feel free to send me a copy to check. Wolfgang |