On 10/19/2013 11:55 PM, Efe Gürkan YALAMAN wrote:
I was trying to find the reason of the fdo#70465
<https://bugs.freedesktop.org/show_bug.cgi?id=70465>. Reproduced the bug
and debugged that.
During the load page traverses the options recursively with
CuiAboutConfigTabPage::FillItems method. Exit condition of this method
is an exception thrown from this line:
"Reference< XHierarchicalNameAccess >xNextHierarchicalNameAccess( aNode,
uno::UNO_QUERY_THROW );"
...you mean "exit condition from the FillItems recursion," I assume. In
any event, it would arguably be better to not rely on an exception there
to break the recursion. Rather, stop once aNode does not reference an
object implementing XHierarchicalNameAccess, by doing
Reference<XHierarchicalNameAccess> xNextHierarchicalNameAccess(aNode,
uno::UNO_QUERY);
bIsLeafNode = !aNode.is();
However, I cannot reproduce the problem as you describe it below. Given
your backtrace contains "/home/efe/", I assume it is on Linux?
(What I can reproduce is the UI being unresponsive and CPU load being
high for a very long time, see
<https://bugs.freedesktop.org/show_bug.cgi?id=70465#c9>.)
It works if Assistive Technology Tools disabled. But if it is enabled
interestingly it jumps another declaration which has same type. Couldn't
figure out what may cause the problem is because of this interesting
behavior and how it is related to ATT. Any kind of help is appreciated.
Here is some info:
Exception is thrown from cui/source/options/optaboutconfig.cxx#n228
<http://cgit.freedesktop.org/libreoffice/core/tree/cui/source/options/optaboutconfig.cxx#n228>
normally, after exception thrown program jumps here and it try-catch
block handles it.
But instead, program jumps here
cui/source/options/optaboutconfig.cxx::216
<http://cgit.freedesktop.org/libreoffice/core/tree/cui/source/options/optaboutconfig.cxx#n216>
which breaks program flow. And causes infinite recursion and lock's
page. It explains reported 1.5 GB memory usage before crash.
bt just before exception thrown from reference.
#0 com::sun::star::uno::BaseReference::iquery_throw (pInterface=0x0,
rType=...) at
/home/efe/libreoffice/include/com/sun/star/uno/Reference.hxx:72
#1 0x00002aaacaeb62e6 in
com::sun::star::uno::Reference<com::sun::star::container::XHierarchicalNameAccess>::iquery_throw
(pInterface=0x0) at
/home/efe/libreoffice/include/com/sun/star/uno/Reference.hxx:84
#2 0x00002aaacaeb56bf in
com::sun::star::uno::Reference<com::sun::star::container::XHierarchicalNameAccess>::Reference
(this=0x7fffffff0db0, rAny=...) at
/home/efe/libreoffice/include/com/sun/star/uno/Reference.hxx:189
#3 0x00002aaacaeb0804 in CuiAboutConfigTabPage::FillItems
(this=0x18b6350, xNameAccess=..., sPath=...) at
/home/efe/libreoffice/cui/source/options/optaboutconfig.cxx:228
#4 0x00002aaacaeb0937 in CuiAboutConfigTabPage::FillItems
(this=0x18b6350, xNameAccess=..., sPath=...) at
/home/efe/libreoffice/cui/source/options/optaboutconfig.cxx:230
#5 0x00002aaacaeb0937 in CuiAboutConfigTabPage::FillItems
(this=0x18b6350, xNameAccess=..., sPath=...) at
/home/efe/libreoffice/cui/source/options/optaboutconfig.cxx:230
_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice