Issue 91146 - Negated large arrays slow application
Summary: Negated large arrays slow application
Status: CLOSED FIXED
Alias: None
Product: Calc
Classification: Application
Component: open-import (show other issues)
Version: OOo 1.1.3
Hardware: All All
: P2 Trivial (vote)
Target Milestone: ---
Assignee: oc
QA Contact: issues@sc
URL:
Keywords: performance
Depends on:
Blocks: 72764
  Show dependency tree
 
Reported: 2008-06-27 16:35 UTC by calligra
Modified: 2013-08-07 15:14 UTC (History)
3 users (show)

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


Attachments
Test Summation has nested formulas (1.41 MB, text/plain)
2008-06-27 16:44 UTC, calligra
no flags Details
Test Case Doc (1.18 MB, text/plain)
2008-06-27 17:04 UTC, calligra
no flags Details
patch 1 for i91146 (879 bytes, text/plain)
2008-08-05 06:38 UTC, lvyue
no flags Details

Note You need to log in before you can comment on or make changes to this issue.
Description calligra 2008-06-27 16:35:22 UTC
When attempting to open an Excel document in OpenOffice, the document will
crash.  Removal of the nested formulas allow for the document to open readily;
however, the re-nesting of the formulas cause errors to be displayed.

Steps for Duplication:
Open any of the two attached Excel documents in OpenOffice.
    Result:  Program crashes

Open the document in Excel and remove the nested formulas
    Result:  Document opens normally

Return the nested formula into the converted spreadsheet
    Result:  Error messages are displayed

Enter individual formula
    Result:  expected computations are returned
Comment 1 calligra 2008-06-27 16:44:18 UTC
Created attachment 54791 [details]
Test Summation has nested formulas
Comment 2 calligra 2008-06-27 17:04:40 UTC
Created attachment 54792 [details]
Test Case Doc
Comment 3 chl207 2008-07-01 10:53:26 UTC
In version OOo-dev300-m21_en,when I tried to open the attachment in Calc,it 
crashed.but when I opened it in MS_Excel,I couldn't find the Nested formulas 
mentioned in the report,so I don't know whether the rest 2 problems still 
exist.In addition ,when I made a new ms_excel document with Nested 
formulas,and then opened it in Calc,it worked well. 
Sorry if it's not clear enough.
Comment 4 chl207 2008-07-01 10:56:34 UTC
validating only on Windows XP(只在Winsows Xp中进行了验证)
Comment 5 calligra 2008-07-17 14:34:01 UTC
In the documents that were enclosed, the nested formulas are on the "Test Case 
Summary Pass" # tab of the Test Tracking document, under the section 
called "Roll Up Columns".  Specifically the formulas such as "=IF(AND((ISERROR
(SEARCH("Pass",$F8))),(ISERROR(SEARCH("Warn",$F8))),(ISERROR(SEARCH("Closed", 
$F8)))),0,1)"

I remember the formula to be on the Executive Summary tab of the Test Cases 
Document, but also remember it being two distinctly different types of formulas 
to which I'm not locating now.   My guess, without retesting is that the 
offending formula is the "=INDIRECT("'"&C$1&"'"&"!j"&ROW()+1)" but it doesn't 
look quite right to me.  I'm currently having system problems and will refind 
the exact formula once my system is replaced later today; however, the formulas 
within the Test Tracking document is the one that crashes the application upon 
conversion and should be able to get the process rolling until I get my system 
back up and working properly.
Comment 6 oc 2008-07-17 15:13:54 UTC
Hi Daniel, please have a look
Comment 7 daniel.rentz 2008-07-17 17:09:03 UTC
DR->ER: DEV300m24 hangs somewhere in ScModelObj::UpdateAllRowHeights, but does
not crash.
Comment 8 lvyue 2008-08-01 10:21:45 UTC
Hi calligra, I have test many times, I don't think the question happens in
"Test Case Summary Pass" # tab of the Test Tracking document, but "All-
Cumulative" table. And the problem may be caused by formulas: 
=SUMPRODUCT(--('IntSysTest Bugs'!$E$1:$E$4752<>7),--('IntSysTest Bugs'!
$C$1:$C$4752= $A$384)).
And tracking the code, I found something is wrong when the program
interpretting the formula SUMPRODUCT, but the reason I did not find yet.
BTW, the doc UDT Test Cases TEST.xls can be opened, not crash, not hang,
just the formulas' result is not correct.
Comment 9 calligra 2008-08-01 13:55:36 UTC
Hi Ivyue,

It's odd that you were able to open the Test Cases document whilest no one here 
in the office can and neither could your co-worker chl207.  Possibly a 
versioning difference?  I know that I'm using version 2.4; however, I am 
unaware of what versions my co-workers are using.

In any case, I'm happy to see that some work is being done for these issues and 
eagerly anticipate ensuent results.
Comment 10 lvyue 2008-08-05 06:38:09 UTC
Created attachment 55552 [details]
patch 1 for i91146
Comment 11 lvyue 2008-08-05 07:22:50 UTC
Hi Eike, I found there is something wrong with such formula:
SUMPRODUCT(-Ref;.....), it will create a jumpmatrix, 
and then jump many times. If the Ref is very big and if a document contains
many such formulas, the document will freeze.
So I add ocNegSub in const ScParameterClassification::RawData
ScParameterClassification::pRawData[],
like ocNeg, to avoid creating a jumpmatrix.
now UDT Test Trackingtoo.xls can be opened normally.
That is what I do in this patch.

And for doc UDT Test Cases TEST.xls, I tried many versions in my computer,
it can be opened, no crash, just some formulas' result is not the same as
it in Excel.
so what do you want me to do? correct the formulas, or something else?
Comment 12 ooo 2008-08-05 22:25:12 UTC
Indeed, good catch :-)
But what exactly are you referring with "just some formulas' result is not the
same as it in Excel"?
Comment 13 lvyue 2008-08-06 02:51:13 UTC
Thank you :-)

And I mean in the first tab "Execution Summary" of UDT Test Cases TEST.xls,
such formulas =INDIRECT("'"&C$1&"'"&"!j"&ROW()+1) will all return Err:502,
while in Excel they return values.
Comment 14 ooo 2008-08-06 10:00:43 UTC
That's because of the '!' exclamation mark used in Excel as the sheet name
separator. INDIRECT() should support that as well, which is issue 30172.
Comment 15 ooo 2008-09-11 19:57:53 UTC
In cws odff05:

sc/source/core/tool/parclass.cxx  1.12.148.1

Btw, when loading the first Trackingtoo attachment in a DEV300_m29 non-pro
build, a gazillion assertions pop up,

Error: ImpBreakLine: Start >= End?
From File .../svx/source/editeng/impedit3.cxx at Line 1802

Submitted issue 93790 for that.
Comment 16 ooo 2008-12-11 14:12:55 UTC
Reassigning to QA for verification.
Comment 17 oc 2008-12-16 15:37:33 UTC
verified in internal build cws_odff05
Comment 18 amy2008 2009-03-27 04:40:55 UTC
Verified in DEV310m7.
Formulas '=INDIRECT("'"&C$1&"'"&"!j"&ROW()+1)' works well in the first 
tab "Execution Summary" of UDT Test Cases TEST.xls.
The nested formulas are on the "Test Case Summary Pass  # " tab of the Test 
Tracking document, under the section called "Roll Up Columns".  Specifically 
the formulas, such as "=IF(AND((ISERROR(SEARCH("Pass",$F8))),(ISERROR(SEARCH
("Warn",$F8))),(ISERROR(SEARCH("Closed",$F8)))),0,1)", work well too.

Closing

Li Meiying