fdo 37341 MAXRECURSION reached in ScFormulaCell::Interpret

Winfried Donkers W.Donkers at dci-electronics.nl
Wed Jul 10 23:02:13 PDT 2013


Presently I'm looking at bug fdo 37341, which reports calc to hang when Goal Seek (sc/source/core/tool/interpr2.cxx, ScInterpreter::ScBackSolver()) is used.
The cause of the problem is not that too many iterations are needed, but that MAXRECURSION in sc/source/core/data/formulacell.cxx, ScFormulaCell::Interpret() is reached.
Increasing MAXRECURSION 'solves' the problem.

I think increasing MAXRECURSION from its present value (400) to 800 is no problem. 10 years ago its value was 500 and in the past 1 years the available memory has been more than doubled.
But that does not really solve the problem, it only shifts the point where the problem will show.
Shouldn't a global error (or at least warning)  be generated when MAXRECURSION is reached? After all, the result of ScFormulaCell::Interpret() is not correct in that case.
Unfortunately, I can't quite grasp the recursion/interation process in ScFormulaCell::Interpret(), so I can't generate the appropiate error.

Do you have any suggestions about how to properly solve this?
To me just increasing MAXRECURSION to 800 is a dirty hack.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/libreoffice/attachments/20130711/7b52e948/attachment.html>

More information about the LibreOffice mailing list