From: Wolfgang <wol...@ex...> - 2008-06-23 16:11:41
|
Hi, > I've done a little more experimenting at home with 1.2.2 and the same > file to see if I could cause a similar crash to the one that was > happening at work by saving a file to the eXist db with overlapping > @xml:id attributes. I had expected that creating a file with two > elements and identical @xml:id attributes would crash the db when I > queried against this attribute. It didn't happen. It is always possible that an error will only appear if the index is in a certain state and that you need to run your tests on exactly the same database contents. > Could anyone confirm that eXist does not treat a file with two > elements with identical @xml:id attributes as invalid XML file? If > so, we can rule that out as a cause of my db corruption. As far as I can see without further testing, the XML parser doesn't complain about duplicate xml:id attributes and eXist will just store them as two occurrences of the same xml:id value. But I have to take a closer look into this issue and maybe do some stress-testing with xml:ids... > Alternatively, could insufficient memory allocated to eXist be causing > the problem? I notice at home that log entries such as this appear > after I upload my 6.7 mb file via java admin client or oXygen: Insufficient memory is always dangerous. The effects of an out-of-memory error are somehow unpredictable and may lead to unnoticed corruptions. Java doesn't show any warnings before it runs out of memory. All you get is a small message on stderr. It is thus very important to keep an eye on the memory usage of your applications. How much max memory did you grant to Java (-Xmx setting)? And what setting do you use for cacheSize in conf.xml? Wolfgang > p.s. Wolfgang - Thanks for your offer to examine the db. If we decide > that's necessary, what files exactly do you need? The WEB-INF folder? > (Would it help at all just to see the 6mb file in question, or is it > best to send the whole db?) I will need the entire db if you cannot reproduce the error with the 6mb file alone, plus some instructions on how to trigger the exception. |