diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2013-06-11 15:36:32 +0200 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2013-06-11 15:36:32 +0200 |
commit | 85165a18e9f8123d80246bedfad0acd8a314f715 (patch) | |
tree | 3322eaf0086022904385fc2398a7f26bf69ea26a /reportdesign/source | |
parent | dcba638999139848771018b7db71c1606a31d2dd (diff) |
Lock Solar Mutex in rptui::OSectionWindow::_propertyChanged
<https://bugs.freedesktop.org/show_bug.cgi?id=65478#c4> "REPORTBUILDER: Crash by
following case 2 from fdo#61725 + click cancel" comment 4 discusses a scenario
that leads to a fired DbgTestSolarMutex assertion in --enable-dbgutil builds at:
0 0x0000003c80635ba5 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:63
1 0x0000003c80637358 in __GI_abort () at abort.c:90
2 0x0000003c8062e972 in __assert_fail_base (fmt=0x3c807793e8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x7fcbe332a8b8 "ImplGetSVData()->mpDefInst->CheckYieldMutex()", file=file@entry=0x7fcbe332a880 "lo/core/vcl/source/app/dbggui.cxx", line=line@entry=1747, function=function@entry=0x7fcbe332b250 <ImplDbgTestSolarMutex()::__PRETTY_FUNCTION__> "void ImplDbgTestSolarMutex()") at assert.c:92
3 0x0000003c8062ea22 in __GI___assert_fail (assertion=0x7fcbe332a8b8 "ImplGetSVData()->mpDefInst->CheckYieldMutex()", file=0x7fcbe332a880 "lo/core/vcl/source/app/dbggui.cxx", line=1747, function=0x7fcbe332b250 <ImplDbgTestSolarMutex()::__PRETTY_FUNCTION__> "void ImplDbgTestSolarMutex()") at assert.c:101
4 0x00007fcbe2bb5ea8 in ImplDbgTestSolarMutex () at lo/core/vcl/source/app/dbggui.cxx:1747
5 0x00007fcbe4053783 in DbgFunc (nAction=15, pParam=0x0) at lo/core/tools/source/debug/debug.cxx:1119
6 0x00007fcbe2e75465 in DbgTestSolarMutex () at lo/core/include/tools/debug.hxx:295
7 0x00007fcbe2e9b213 in OutputDevice::ImplGetGraphics (this=0x1ca8e98) at lo/core/vcl/source/gdi/outdev.cxx:554
8 0x00007fcbe2e9af4c in OutputDevice::ImplHasMirroredGraphics (this=0x1ca8e98) at lo/core/vcl/source/gdi/outdev.cxx:511
9 0x00007fcbe3163f1f in Window::ImplPosSizeWindow (this=0x1ca8e98, nX=127, nY=1199, nWidth=2318, nHeight=13, nFlags=15) at lo/core/vcl/source/window/window.cxx:3286
10 0x00007fcbe31737c1 in Window::setPosSizePixel (this=0x1ca8e98, nX=127, nY=1199, nWidth=2318, nHeight=13, nFlags=15) at lo/core/vcl/source/window/window.cxx:7181
11 0x00007fcbe314fa59 in Window::SetPosSizePixel (this=0x1ca8e98, rNewPos=Point = {...}, rNewSize=Size = {...}) at lo/core/vcl/source/window/window2.cxx:1717
12 0x00007fcb8e0cfd2c in rptui::lcl_setScrollBar (_nNewValue=2318, _aPos=Point = {...}, _aSize=Size = {...}, _rScrollBar=...) at lo/core/reportdesign/source/ui/report/ScrollHelper.cxx:38
13 0x00007fcb8e0d0b41 in rptui::OScrollWindowHelper::ResizeScrollBars (this=0x1ca8cb0) at lo/core/reportdesign/source/ui/report/ScrollHelper.cxx:169
14 0x00007fcb8e0d0c72 in rptui::OScrollWindowHelper::Resize (this=0x1ca8cb0) at lo/core/reportdesign/source/ui/report/ScrollHelper.cxx:182
15 0x00007fcb8e0d0665 in rptui::OScrollWindowHelper::setTotalSize (this=0x1ca8cb0, _nWidth=1186, _nHeight=464) at lo/core/reportdesign/source/ui/report/ScrollHelper.cxx:110
16 0x00007fcb8e0cefba in rptui::OReportWindow::notifySizeChanged (this=0x1ca96c0) at lo/core/reportdesign/source/ui/report/ReportWindow.cxx:255
17 0x00007fcb8e0d3920 in rptui::OSectionWindow::_propertyChanged (this=0x21688a0, _rEvent=...) at lo/core/reportdesign/source/ui/report/SectionWindow.cxx:127
18 0x00007fcbe7271dfb in comphelper::OPropertyChangeMultiplexer::propertyChange (this=0x7fcb8c1f2668, _rEvent=...) at lo/core/comphelper/source/property/propmultiplex.cxx:154
19 0x00007fcbe6b0be20 in cppu::PropertySetMixinImpl::BoundListeners::notify (this=0x7fff42dd9780) at lo/core/cppuhelper/source/propertysetmixin.cxx:399
20 0x00007fcb8ed52b50 in reportdesign::OSection::set<unsigned int> (this=0x7fcbd0199020, _sProperty="Height", _Value=@0x7fff42dd9804: 0, _member=@0x7fcbd0199170: 0) at lo/core/reportdesign/source/core/inc/Section.hxx:96
21 0x00007fcb8ed4e2e2 in reportdesign::OSection::setHeight (this=0x7fcbd0199020, _height=0) at lo/core/reportdesign/source/core/api/Section.cxx:255
22 0x00007fcbd42877de in gcc3::callVirtualMethod(void*, unsigned int, void*, _typelib_TypeDescriptionReference*, bool, unsigned long*, unsigned int, unsigned long*, unsigned int, double*, unsigned int) () from lo/core/solver/unxlngx6/installation/opt/ure/lib/libgcc3_uno.so
23 0x00007fcbd428681a in cpp_call (pThis=0x202ea90, aVtableSlot=..., pReturnTypeRef=0x711840, nParams=1, pParams=0x7fff42dd9bc0, pUnoReturn=0x0, pUnoArgs=0x7fff42dd9c80, ppUnoExc=0x7fff42dd9d48) at lo/core/bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx:237
24 0x00007fcbd4286fa8 in bridges::cpp_uno::shared::unoInterfaceProxyDispatch (pUnoI=0x202ea90, pMemberDescr=0x1e28590, pReturn=0x0, pArgs=0x7fff42dd9c80, ppException=0x7fff42dd9d48) at lo/core/bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx:368
25 0x00007fcb9d498480 in jni_uno::Bridge::call_uno (this=0x1609c90, jni=..., pUnoI=0x202ea90, member_td=0x1e28590, return_type=0x711840, nParams=1, pParams=0x7fff42dd9e80, jo_args=0x7fff42dda1d0) at lo/core/bridges/source/jni_uno/jni_java2uno.cxx:262
26 0x00007fcb9d4993ec in Java_com_sun_star_bridges_jni_1uno_JNI_1proxy_dispatch_1call (jni_env=0x1aec1d8, jo_proxy=0x7fff42dda1f0, bridge_handle=23108752, jo_method=0x7fff42dda1d8, jo_args=0x7fff42dda1d0) at lo/core/bridges/source/jni_uno/jni_java2uno.cxx:589
27 0x00007fcba5011f90 in ?? ()
28 0x00000005ff211500 in ?? ()
29 0x0000000000000000 in ?? ()
Change-Id: Id8f043b87227b589a9d79beaa94006aab3d9ad9d
Diffstat (limited to 'reportdesign/source')
-rw-r--r-- | reportdesign/source/ui/report/SectionWindow.cxx | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/reportdesign/source/ui/report/SectionWindow.cxx b/reportdesign/source/ui/report/SectionWindow.cxx index d6a49ed62423..3dbc65f06e69 100644 --- a/reportdesign/source/ui/report/SectionWindow.cxx +++ b/reportdesign/source/ui/report/SectionWindow.cxx @@ -116,6 +116,7 @@ OSectionWindow::~OSectionWindow() // ----------------------------------------------------------------------------- void OSectionWindow::_propertyChanged(const beans::PropertyChangeEvent& _rEvent) throw( uno::RuntimeException) { + SolarMutexGuard g; const uno::Reference< report::XSection > xSection(_rEvent.Source,uno::UNO_QUERY); if ( xSection.is() ) { |