summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2013-06-11 15:36:32 +0200
committerStephan Bergmann <sbergman@redhat.com>2013-06-11 15:36:32 +0200
commit85165a18e9f8123d80246bedfad0acd8a314f715 (patch)
tree3322eaf0086022904385fc2398a7f26bf69ea26a
parentdcba638999139848771018b7db71c1606a31d2dd (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
-rw-r--r--reportdesign/source/ui/report/SectionWindow.cxx1
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() )
{