I'm seeing a bizarre behavior and I'm stumped: Calc can read in a spreadsheet, display it, edit it, but cannot write it out.

I'm running OOo 2.3 on Windows XP (*when* will I learn?).

I have lots and lots of disk space, and the directory is not write protected. This is definitely not the problem.

I am keeping regular snapshots of my spreadsheet in subversion. The fact that it's subversion is not (as far as I know) important, but the fact that I can retrieve old versions is important.

Here's a "day in the life":

I open up my spreadsheet. I do a few edits. I save. I checkin the saved file. All well and good.

Without quitting Calc, I do some more edits. Save again. Checkin again. Still good. I do some more edits. Save again. Checkin again.

Do this 2, 3, 4 times, and eventually I get a Visual C++ runtime error during a save. The number of times I can do the edit/save/checkin loop isn't always the same until the crash, but eventually it *will* crash, guaranteed. Sounds like a memory leak, right? (It's a big spreadsheet, about 11MB zipped. Runtime memory usage is around 1GB, peaking around 1.2GB during a save; and I have 1.5GB physical mem.)

So the crashes are annoying, but that's not the weird part:

After a crash, I re-open the last saved version, from what seemed to be a good save. (I *always* Cancel the crash recovery; it never, ever recovers anything and it just wastes about an hour.) With *no* edits at all, I try to re-save the file immediately: "Save As" into a temp file. The program crashes again. Guaranteed. Same Visual C++ runtime error.

I can retrieve successively older and older versions, and if I go back far enough, I can finally read it in and write it back out okay. (There seems to be one really old "magic" version that always works, but I have no idea exactly what is magic about it. It just so happens that this old version was originally written by OOo 2.2; but I have other old versions written with 2.2 and they don't cure this persistent crash-after-crash behavior.)

After this successful read and re-write, I can retrieve the *head* version again, read it in, and successfully write it back out. I don't understand this at all, it's like there's some stored state somewhere. I don't know where the state could be, I've tried exiting the Calc program itself, I've tried exiting the OOo QuickStarter, I've tried rebooting the machine warm, I've tried powering the machine down and bringing it back up cold, I tried uninstalling OOo and reinstalling it from a new download. Nothing cures the persistent crash-after-crash except finding an old magic version.

When I re-save the head version, the new copy is about 300KB (zipped) bigger than what I just read in. That is, let's say that I had been doing edit/save/checkin, and I checked in rev 91, but then I did some more edits and Calc crashed on the next save. So if I re-load rev 91 and try to write it again, Calc crashes again. But if I load rev 56 and save a side copy of *that*, and *then* I load rev 91 again, then I can save a new file that should be an identical copy of rev 91.

But the new copy is not identical, it's about 300KB bigger.

I unzipped both the original rev 91 and the new copy, and compared the content.xml files. Unzipped, the new copy is about 40MB bigger than the original. They are both the exact same number of lines. As far as I can tell, the difference is that the new copy has a whole bunch of 'office:value-type="float" office:value="0"' that are missing in the original rev 91, like this:


Original rev 91:

<table:table-cell table:style-name="ce18" table:formula="oooc:=IF([.BS12853]&gt;0;[.$A$1]*[.BS$1]/[.$G12853];&quot;&quot;)">


Rev 91 re-read and re-saved:

<table:table-cell table:style-name="ce18" table:formula="oooc:=IF([.BS12853]&gt;0;[.$A$1]*[.BS$1]/[.$G12853];&quot;&quot;)" office:value-type="float" office:value="0">


These extra office:value properties on thousands and thousands of table cells adds up to 40MB.


So, I have two requests:

1. Can anyone investigate the original crashes? I kinda sorta suspect a memory leak, but I have no solid evidence. I can send anyone a copy of the spreadsheet, it's nothing proprietary, it's just godawful huge. It's far too big to attach to a bug report, but I can certainly submit the rest of this email as a bug report.

2. Can anyone investigate the persistent crash-after-crash behavior? The office:value stuff is the only clue I have to offer, and it means absolutely nothing to me.







---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to