Issue 126307 - Writer crashes when opening file
Summary: Writer crashes when opening file
Status: UNCONFIRMED
Alias: None
Product: Writer
Classification: Application
Component: save-export (show other issues)
Version: 4.1.1
Hardware: All All
: P5 (lowest) Normal (vote)
Target Milestone: ---
Assignee: AOO issues mailing list
QA Contact:
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-05-13 16:22 UTC by aschwarz
Modified: 2015-06-01 17:16 UTC (History)
1 user (show)

See Also:
Issue Type: DEFECT
Latest Confirmation in: ---
Developer Difficulty: ---


Attachments
File crashes during open when cursor is in table during save (54.88 KB, application/vnd.oasis.opendocument.text)
2015-05-13 16:22 UTC, aschwarz
no flags Details
Help File for cygwin cmp (binary difference) program (1.32 KB, text/plain)
2015-05-23 14:48 UTC, aschwarz
no flags Details
Tar of all files discussed (534.67 KB, application/x-xz)
2015-05-23 14:50 UTC, aschwarz
no flags Details

Note You need to log in before you can comment on or make changes to this issue.
Description aschwarz 2015-05-13 16:22:40 UTC
Created attachment 84737 [details]
File crashes during open when cursor is in table during save

Win7 64-bit
AOO411m6(Build:9775)  -  Rev. 1617669
2014-08-13 09:06:54 (Mi, 13 Aug 2014)


Dialog concerning this issue is here.

https://forum.openoffice.org/en/forum/viewtopic.php?f=7&t=76859&p=352127#p352127

The current copy of the file I am working on is included as an attachment. It will be a GPL licensed document and you are free to use or modify it.

AOO immediately crashes on open for this file, but not for other files. There is no indication of an error on save. If other files are opened, and in the same session, test.odt is opened and crashes, other files are affected in that on the next AOO open they are marked as having crashed and needing to be repaired.

On my computer test.odt will occasionally fail to open after a save is made while the cursor is in a table or list. The error has proved non-repeatable. Fixes have included all of:
1: Opening the file in Win7 Safe Mode and then saving the file after moving the cursor so that it is at the document start (not near a table or list).
2: Opening the file on my laptop (Win7) and saving the file after moving the cursor.

I am avoiding the error by always moving the cursor to the file top prior to a save.
Comment 1 aschwarz 2015-05-23 14:48:02 UTC
Created attachment 84750 [details]
Help File for cygwin cmp (binary difference) program

File is to support maintainers in understanding what the binary compare output means for 'cmp -l'.
Comment 2 aschwarz 2015-05-23 14:50:28 UTC
Created attachment 84751 [details]
Tar of all files discussed

All files have been archived (tar) and compressed (tar J). To untar the files on a Unix/cygwin machine type either tar xfJ files.tar.xz or tar xfa files.tar.xz.
Comment 3 aschwarz 2015-05-23 15:22:38 UTC
The fool thing didn't save my initial comments. DRAT. As near as I can remember these are the steps taken to generate and include the help file for cmp (cmp.txt) and the tar'ed files.

 1: A end-of-day file wsa saved, test.odt.win7.
 2: The computer was booted.
 3: test.odt.win7 crashed on open in cygwin (odt test.odt.win7&)
 4: Restart in Safe Mode.
 5: Open test.odt.win7 in cygwin.
 6: Delete and insert one letter and save (test.odt.safe). The letter 'e' in purpose on the first line of text.
 7: Open test.odt in cygwin.
 8: Change and insert one letter and save (test.odt). The following diagnostic messages were issued on save in exact order shown.
    error: unknown encoding UTF8: using iso88591 as fallback
    error: unknown encoding UTF8: using iso88591 as fallback
    error: unknown encoding UTF8: using iso88591 as fallback
    error: unknown encoding UTF8: using iso88591 as fallback
 9: Execute cmp -l test.odt test.odt.safe > odt_v_save in cygwin.
10: Execute cmp -l test.odt test.odt.win7 > odt_vs_win7 in cygwin.
11: Execute cmp -l test.odt.win7 test.odt.safe > win7_vs_safe in cygwin.
12: tar cfJ files.tar.xz test.odt.win7 test.odt.safe test.odt odt_vs_safe odt_vs_win7 win7_vs_safe
13: List the _vs_ file sizes:
  byte size   filename
    925946   odt_vs_safe
    803586   odt_vs_win7
    926478   win7_vs_safe
14: List the sizes of the test.odt* files
   byte size  filename
     67653    test.odt
     67164    test.odt.safe
     67773    test.odt.win7


Some questions come up:
1: Why are there so many differences in the cmp files when only one character was deleted and then replaced?
2: Why are there any differences in the test.odt* files when only one character was deleted and then replaced?
3: Why can AOO not open a file in Win7 normal mode but can open the same file in Win7 Safe Mode?
4: Why are diagnostic messages issued on an AOO exit in Win7 normal mode, but not in Win7 save mode and not during a normal AOO save?

Hopefully there is enough material to determine (at least) what AOO does on a save that makes the AOO file unreadable on an open. My guess is that since the crash occurs on an open and not on a save then there is something in the saved file that AOO chokes on when AOO is executed in Win7 normal mode. Since this error does not always occur on Win7 OS's it is hard to replicate on other machines. However, this behavior seems to be a daily occurrence on my computer this week.

Hope the stuff help. Hope you can fix things.

art
Comment 4 aschwarz 2015-05-23 15:24:42 UTC
7: Open test.odt in cygwin. 

Should read:

7: Restart in Win7 normal mode and open test.odt in cygwin.
Comment 5 John 2015-06-01 15:14:33 UTC
Cannot reproduce under Windows 7.  

See https://forum.openoffice.org/en/forum/viewtopic.php?f=7&t=76859&start=30#p353915

I think it is a Cygwin problem, or how Cygwin and AOO interact.
Comment 6 aschwarz 2015-06-01 17:06:22 UTC
One point is that since I have sent several versions of the file, and results from taking a binary difference, is there some data in any of the input files which would cause this problem. Since the crash characteristics seem to be accompanied with a change in the odf file it seems likely that there is something in the file itself which would trigger misbehavior. The issue of whether this is cygwin specific is moot. If it is or is not cygwin specific it is a crash, and I think a file verifier may be able to discover whether the odf file correctly configured or not. What is interesting is that if the differences are localized to the odf file preamble, then the crash is localized to the content of the preamble.

So although the error seems cygwin specific, the error cause must be contained in the files. Were the files looked at? 

As I've mentioned in the forum, I did try to install the AOO odf verifier. I installed maven, went to the root directory of the uncompressed data and then type 'maven clean install' as directed. And then got a failure message. I have never used 'maven' before and so, reluctantly, I just went about my business.
Comment 7 John 2015-06-01 17:16:59 UTC
odt files are only binary because they are zipped.  Unzip them to examine the flat ASCII content and any differences will be immediately apparent.