Apache OpenOffice (AOO) Bugzilla – Full Text Issue Listing |
Summary: | crash when duplicating draw page with linked pictures | ||||||
---|---|---|---|---|---|---|---|
Product: | Draw | Reporter: | Regina Henschel <rb.henschel> | ||||
Component: | editing | Assignee: | Armin Le Grand <Armin.Le.Grand> | ||||
Status: | CLOSED FIXED | QA Contact: | issues@graphics <issues> | ||||
Severity: | Normal | ||||||
Priority: | P3 | CC: | Armin.Le.Grand, doneyourself, issues | ||||
Version: | DEV300m106 | ||||||
Target Milestone: | 4.0.0 | ||||||
Hardware: | PC | ||||||
OS: | Windows XP | ||||||
Issue Type: | DEFECT | Latest Confirmation in: | --- | ||||
Developer Difficulty: | --- | ||||||
Attachments: |
|
Addition: The file opens without problems in OOo3.3. OOo3.4 Beta crashes too, when I open the attached file. And OOo3.4 Beta crashes too, when I follow the described scenario. You need at least two linked pictures on the first page to reproduce the crash. ALG: I can even reproduce with a single linked image, need to check... The bug has been fixed in LibreOffice, see https://bugs.freedesktop.org/show_bug.cgi?id=36991 ALG: This has to do with asynchronous graphic loading (not with errors in WMF import or rendering). If forcing in SdrGrafObj::ImpUpdateGraphicLink bAsynchron to false all goes well. The async loading uses the class SdrGraphicUpdater which uses ::osl::Thread to create working threads. This works in principle but seems to have problems with too many same graphics (?). It may have problems with count graphics at all, need to check. On the stack is something interesting: svt.dll!_getenv() + 0x50371 bytes C++ svt.dll!_getenv() + 0x510cb bytes C++ svt.dll!_getenv() + 0x511b1 bytes C++ svt.dll!_getenv() + 0x5127d bytes C++ svt.dll!_getenv() + 0x4bca5 bytes C++ svxcore.dll!_DisableThreadLibraryCalls@4() + 0xa1590 bytes C++ svxcore.dll!_DisableThreadLibraryCalls@4() + 0xa169b bytes C++ I could not find _DisableThreadLibraryCalls in the whole trunk, this maybe something special. Does the @4 mean that from four threads up threading gets disabled? Does someone know more about ::osl::Thread...? ALG: Problem is that the WMFReader and it's helper classes in winmtf.cxx use VirtualDevices as helpers in some cases, this is not thread safe. Locking the SolarMutex when these are used will solve the problem. I'm just curious why this worked in OOo3.3. Checked various possibilities, but could not find a reason. Nonetheless, making WMFReader thread-safe is not wrong. Doing some more checks... ALG: Done, checked in. Also took a 2nd look why this did not happen in OOo3.3, but found no hints. getting rid of value "enhancement" for field "severity". For enhancement the field "issue type" shall be used. confirm fixing the bug on ver 1351249 in Win7 ,pass |
Created attachment 76473 [details] OOo crashes on opening the file I had made a draw page with 9 picture, all linked to the same file. Then I used Insert > Duplicate Slide. DEV300m106 crashes immediately. When DEV300m106 tries to recover the file it crashes again immediately. When I try to open the file in a non-pro DEV300m100, then that version crashes too and I get two error messages in the debug log (the first one is likely i115594): Error: invalid type for InteractionHandler From File c:/DEV300m100my/sfx2/source/appl/appuno.cxx at Line 515 Error: SolarMutex not locked From File C:/DEV300m100my/vcl/source/app/dbggui.cxx at Line 1970 The attached zip-file contains the document and the linked picture.