M Henri Day wrote: > Mathias, as Mr Innes described the problem, he had saved the files in > question several hours previously to clearing his caches, but had left the > files open. My understanding - and my point - was that in the event he had > saved a file to a folder other than «Temp», say, «My Documents», that file in > the state in which he had saved it, would not be affected by his clearing > his caches. If, as you say, OOo saves on-going work to the «Temp» folder, > this would mean that the changes introduced in a given file after it had > been saved to «My Documents» would be wiped out, but the earlier, saved > version would remain unchanged. Is my understanding of the situation > erroneous ?
Yes, but this is not your fault, there are some tricky parts in how OOo accesses the single streams in its zipped file format and this usually is known only to the developers. BTW: of course the already saved file is not affected by the problem, it's just that the document loaded in memory gets into an unvalid state. For performance reasons OOo keeps *editable* or seekable streams (mainly embedded objects and graphics) open because otherwise they had to be unzipped again and again. They are not kept in memory (that could be a lot!) but as temporary files. When the document is saved the current state of all these streams is zipped into the target file. Even after this these streams remain there and OOo still uses them. Why deleting them and unpacking them again later? So if you remove them you "steal" OOo its working data. You might ask why OOo doesn't keep a lock on these files if it needs them so badly. The answer is simple. File Handles are a limited resource even today though on single user systems you only rarely will reach this limit. On multi user systems though (Linux/Unix or Citrix servers) file handles per user are even more limited and reaching the limits can easily happen if you don't plan for avoiding this. We had cases where opening even one single document with a lot of embedded content made OOo crash because we got out of file handles. It is not uncommon to have a limit of 512-1024 file handles per user! So we now release all file handles (means: release our locks) after using a temporary stream and reacquire them when the stream is needed again. There have been some plans to overcome these problems with a different approach to handle temporary content but all of them ended in a measurable performance loss. For the time being we have to accept that it is necessary to leave all files in OOo's temp folder untouched. The safest way is as I described: either remove all tools that clear the temp folder while the computer is used or use an own temp folder for OOo. Perhaps we should think about an error message that warns users as I think this problem should be easily detectable. Ciao, Mathias -- Mathias Bauer (mba) - Project Lead OpenOffice.org Writer OpenOffice.org Engineering at Sun: http://blogs.sun.com/GullFOSS Please don't reply to "[EMAIL PROTECTED]". I use it for the OOo lists and only rarely read other mails sent to it. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
