Created attachment 42033 [details] vertical-animation.odp Overview: slideshow seems stuck when it comes across an animation associated with a vertical text. Steps to Reproduce: 1) Open the attached vertical-animation.odp 2) type F5 to start slideshow 3) type the right-arrow key once or twice to proceed Actual Results: The application seems stuck. Expected Results: Slideshow goes and replays the animation. Build Date & Platform: Build 2011-01-14 on Debian squeeze Additional Information: When I launch soffice on terminal and reproduce this issue, it leaves the following message: X-Error: RenderBadPicture (invalid Picture parameter) Major opcode: 148 Minor opcode: 7 Resource ID: 0x400413b Serial No: 88811 (88811) These errors are reported asynchronously, set environment variable SAL_SYNCHRONIZE to 1 to help debugging Application Error
This may be a distro specific, or rather, specific to a certain X.org openGL etc version? I wasn't able to reproduce this using the attached document on openSUSE 11.2 with RC3 from the SUSE repo. Let's poke Rene.
Also, let's poke Lubos who is a mad X.org expert. :-) Lubos, any idea what that error message means?
(In reply to comment #1) > This may be a distro specific, or rather, specific to a certain X.org openGL > etc version? I wasn't able to reproduce this using the attached document on > openSUSE 11.2 with RC3 from the SUSE repo. > > Let's poke Rene. Ah, nevermind Rene. :-) I reproduced it here too. It requires the hardware acceleration to be on. It runs fine when that option is turned off.
RenderBadPicture error means an invalid XRender Picture handle has been passed to some (most probably) XRender*() function. It's kind of like passing an invalid fd e.g. to write(), but since X is asynchronous, errors are reported asynchronously too. Run with SAL_SYNCHRONIZE=1 and set a breakpoint in PrintXError() to catch whatever triggers the problem.
Thanks Lubos. With that info, I'll pass this on to Thorsten.
so this is a duplicate of https://bugs.freedesktop.org/show_bug.cgi?id=32861 (and thus the same as http://www.openoffice.org/issues/show_bug.cgi?id=116339)?
> so this is a duplicate of https://bugs.freedesktop.org/show_bug.cgi?id=32861 As Kohei suggests, this issue is reproducible only if the hardware acceleration is checked, while the problem of https://bugs.freedesktop.org/show_bug.cgi?id=32861 is reproducible only if the hardware acceleration is *un*checked, as Jean-Baptiste mentions.
Stack trace reads: #14 0xb7c8f286 in XSync () from /usr/lib/libX11.so.6 #15 0xb7c8f323 in ?? () from /usr/lib/libX11.so.6 #16 0xb3dc656d in XRenderChangePicture () from /usr/lib/libXrender.so.1 #17 0xb3e3ca2c in X11SalGraphics::GetXRenderPicture() () from /data/opt/TTInstall/basis3.3/program/libvclplug_genli.so #18 0xb3e4220e in X11SalGraphics::DrawServerAAFontString(ServerFontLayout const&) () from /data/opt/TTInstall/basis3.3/program/libvclplug_genli.so #19 0xb3e424d7 in X11SalGraphics::DrawServerFontLayout(ServerFontLayout const&) () from /data/opt/TTInstall/basis3.3/program/libvclplug_genli.so #20 0xb696e9ed in ServerFontLayout::DrawText(SalGraphics&) const () from /data/opt/TTInstall/program/../basis-link/program/libvclli.so #21 0xb67b98f7 in OutputDevice::ImplDrawTextDirect(SalLayout&, unsigned char) () from /data/opt/TTInstall/program/../basis-link/program/libvclli.so #22 0xb67b9ec1 in OutputDevice::ImplDrawText(SalLayout&) () from /data/opt/TTInstall/program/../basis-link/program/libvclli.so #23 0xb67ba9cd in OutputDevice::DrawTextArray(Point const&, String const&, long const*, unsigned short, unsigned short) () from /data/opt/TTInstall/program/../basis-link/program/libvclli.so #24 0xac788316 in cairocanvas::TextLayout::draw(boost::shared_ptr<cairo::Surface>&, OutputDevice&, Point const&, com::sun::star::rendering::ViewState const&, com::sun::star::rendering::RenderState const&) const () from /data/opt/TTInstall/program/../basis-link/program/cairocanvas.uno.so #25 0xac77b97a in cairocanvas::CanvasHelper::drawTextLayout(com::sun::star::rendering::XCanvas const*, com::sun::star::uno::Reference<com::sun::star::rendering::XTextLayout> const&, com::sun::star::rendering::ViewState const&, com::sun::star::rendering::RenderState const&) () from /data/opt/TTInstall/program/../basis-link/program/cairocanvas.uno.so ... ultimately from: ... #38 0xac95cc11 in slideshow::internal::DrawShape::implRender(int) const () from /data/opt/TTInstall/program/../basis-link/program/slideshow.uno.so Interesting; will re-try with more symbols.
With more symbols: #15 0xb7c8f286 in XSync () from /usr/lib/libX11.so.6 #16 0xb7c8f323 in ?? () from /usr/lib/libX11.so.6 #17 0xb3b5556d in XRenderChangePicture () from /usr/lib/libXrender.so.1 #18 0xb3c011f3 in XRenderPeer::ChangePicture(unsigned long, unsigned long, _XRenderPictureAttributes const*) const () from /data/opt/TTInstall/basis3.3/program/libvclplug_genli.so #19 0xb3bfff38 in X11SalGraphics::GetXRenderPicture (this=0x922d918) at /data/opt/OpenOffice/libreoffice-3-3/build/libreoffice-3.3.0.3/vcl/unx/source/gdi/salgdi.cxx:1048 #20 0xb3c07653 in X11SalGraphics::DrawServerAAFontString (this=0x922d918, rLayout=...) at /data/opt/OpenOffice/libreoffice-3-3/build/libreoffice-3.3.0.3/vcl/unx/source/gdi/salgdi3.cxx:1075 #21 0xb3c08a3a in X11SalGraphics::DrawServerFontLayout (this=0x922d918, rLayout=...) at /data/opt/OpenOffice/libreoffice-3-3/build/libreoffice-3.3.0.3/vcl/unx/source/gdi/salgdi3.cxx:1433 #22 0xb68faa77 in ServerFontLayout::DrawText (this=0x92304f0, rSalGraphics=...) at /data/opt/OpenOffice/libreoffice-3-3/build/libreoffice-3.3.0.3/vcl/source/glyphs/gcach_layout.cxx:58 #23 0xb66149fa in OutputDevice::ImplDrawTextDirect (this=0x92301d8, rSalLayout=..., bTextLines=0 '\000') at /data/opt/OpenOffice/libreoffice-3-3/build/libreoffice-3.3.0.3/vcl/source/gdi/outdev3.cxx:4569 #24 0xb66156da in OutputDevice::ImplDrawText (this=0x92301d8, rSalLayout=...) at /data/opt/OpenOffice/libreoffice-3-3/build/libreoffice-3.3.0.3/vcl/source/gdi/outdev3.cxx:4724 #25 0xb661865c in OutputDevice::DrawTextArray (this=0x92301d8, rStartPt=..., rStr=..., pDXAry=0x9062178, nIndex=0, nLen=1) at /data/opt/OpenOffice/libreoffice-3-3/build/libreoffice-3.3.0.3/vcl/source/gdi/outdev3.cxx:5643 #26 0xac39b316 in cairocanvas::TextLayout::draw(boost::shared_ptr<cairo::Surface>&, OutputDevice&, Point const&, com::sun::star::rendering::ViewState const&, com::sun::star::rendering::RenderState const&) const () from /data/opt/TTInstall/program/../basis-link/program/cairocanvas.uno.so
The X11SalGraphics object is freshly created, and has not been freed by the time this is called. Amazingly - the picture has just been created a few lines above and then: the BadMatch when using its handle next - odd.
soo - given this; the hDrawable_ must be invalid. Meaning the mpSurface in drawTextLayout is bad: #27 0xac3a3b8a in cairocanvas::CanvasHelper::drawTextLayout (this=0x913ac94, pOwner=0x913ac7c, xLayoutedText=..., viewState=..., renderState=...) at /data/opt/OpenOffice/libreoffice-3-3/build/libreoffice-3.3.0.3/canvas/source/cairo/cairo_canvashelper_text.cxx:387 387 pTextLayout->draw( mpSurface, *mpVirtualDevice, aOutpos, viewState, renderState ); $10 = {<boost::noncopyable_::noncopyable> = {<No data fields>}, mpSurfaceProvider = 0x90d770c, mpDevice = 0x90d7690, mpVirtualDevice = {px = 0x9140848, pn = {pi_ = 0x913f1c8}}, mbHaveAlpha = true, mpCairo = {px = 0x913aef8, pn = {pi_ = 0x913c450}}, mpSurface = {px = 0x8fc4248, pn = {pi_ = 0x9103538}}, maSize = {<basegfx::B2ITuple> = {mnX = 77, mnY = 343}, <No data fields>}} Last, rather fuller trace here: #17 0xb3b5456d in XRenderChangePicture () from /usr/lib/libXrender.so.1 #18 0xb3c002c1 in XRenderPeer::ChangePicture(unsigned long, unsigned long, _XRenderPictureAttributes const*) const () from /data/opt/TTInstall/basis3.3/program/libvclplug_genli.so #19 0xb3bff007 in X11SalGraphics::GetXRenderPicture (this=0x913f048) at /data/opt/OpenOffice/libreoffice-3-3/build/libreoffice-3.3.0.3/vcl/unx/source/gdi/salgdi.cxx:1054 #20 0xb3c0671f in X11SalGraphics::DrawServerAAFontString (this=0x913f048, rLayout=...) at /data/opt/OpenOffice/libreoffice-3-3/build/libreoffice-3.3.0.3/vcl/unx/source/gdi/salgdi3.cxx:1075 #21 0xb3c07b06 in X11SalGraphics::DrawServerFontLayout (this=0x913f048, rLayout=...) at /data/opt/OpenOffice/libreoffice-3-3/build/libreoffice-3.3.0.3/vcl/unx/source/gdi/salgdi3.cxx:1433 #22 0xb68faa77 in ServerFontLayout::DrawText (this=0x90a98f8, rSalGraphics=...) at /data/opt/OpenOffice/libreoffice-3-3/build/libreoffice-3.3.0.3/vcl/source/glyphs/gcach_layout.cxx:58 #23 0xb66149fa in OutputDevice::ImplDrawTextDirect (this=0x9140848, rSalLayout=..., bTextLines=0 '\000') at /data/opt/OpenOffice/libreoffice-3-3/build/libreoffice-3.3.0.3/vcl/source/gdi/outdev3.cxx:4569 #24 0xb66156da in OutputDevice::ImplDrawText (this=0x9140848, rSalLayout=...) at /data/opt/OpenOffice/libreoffice-3-3/build/libreoffice-3.3.0.3/vcl/source/gdi/outdev3.cxx:4724 #25 0xb661865c in OutputDevice::DrawTextArray (this=0x9140848, rStartPt=..., rStr=..., pDXAry=0x90ae160, nIndex=0, nLen=1) at /data/opt/OpenOffice/libreoffice-3-3/build/libreoffice-3.3.0.3/vcl/source/gdi/outdev3.cxx:5643 #26 0xac3ba511 in cairocanvas::TextLayout::draw (this=0x9121f30, pSurface=..., rOutDev=..., rOutpos=..., viewState=..., renderState=...) at /data/opt/OpenOffice/libreoffice-3-3/build/libreoffice-3.3.0.3/canvas/source/cairo/cairo_textlayout.cxx:451 #27 0xac3a3b8a in cairocanvas::CanvasHelper::drawTextLayout (this=0x913ac94, pOwner=0x913ac7c, xLayoutedText=..., viewState=..., renderState=...) at /data/opt/OpenOffice/libreoffice-3-3/build/libreoffice-3.3.0.3/canvas/source/cairo/cairo_canvashelper_text.cxx:387 #28 0xac394f93 in canvas::CanvasBase<cairocanvas::CanvasCustomSpriteSpriteBase_Base, cairocanvas::CanvasHelper, osl::Guard<osl::Mutex>, cppu::OWeakObject>::drawTextLayout (this=0x913ac50, layoutetText=..., viewState=..., renderState=...) at ../../inc/canvas/base/canvasbase.hxx:426 #29 0xaf5acad1 in cppcanvas::internal::(anonymous namespace)::TextArrayAction::render(basegfx::B2DHomMatrix const&, cppcanvas::internal::Action::Subset const&) const () from /data/opt/TTInstall/program/../basis-link/program/libcppcanvasli.so #30 0xaf59d5c8 in cppcanvas::internal::(anonymous namespace)::ActionRenderer::operator()(cppcanvas::internal::ImplRenderer::MtfAction const&, cppcanvas::internal::Action::Subset const&) () from /data/opt/TTInstall/program/../basis-link/program/libcppcanvasli.so #31 0xaf59dcaa in cppcanvas::internal::ImplRenderer::drawSubset(long, long) const () from /data/opt/TTInstall/program/../basis-link/program/libcppcanvasli.so #32 0xac61e174 in slideshow::internal::ViewShape::draw (this=0x9104bb8, rDestinationCanvas=..., rMtf=..., rAttr=..., rTransform=..., pClip=0x0, rSubsets=...) at /data/opt/OpenOffice/libreoffice-3-3/build/libreoffice-3.3.0.3/slideshow/source/engine/shapes/viewshape.cxx:257 #33 0xac61ec33 in slideshow::internal::ViewShape::renderSprite (this=0x9104bb8, rViewLayer=..., rMtf=..., rOrigBounds=..., rBounds=..., rUnitBounds=..., nUpdateFlags=31, pAttr=..., rSubsets=..., nPrio=6.00015259254738, bIsVisible=true) at /data/opt/OpenOffice/libreoffice-3-3/build/libreoffice-3.3.0.3/slideshow/source/engine/shapes/viewshape.cxx:526 #34 0xac620088 in slideshow::internal::ViewShape::update (this=0x9104bb8, rMtf=..., rArgs=..., nUpdateFlags=31, bIsVisible=true) at /data/opt/OpenOffice/libreoffice-3-3/build/libreoffice-3.3.0.3/slideshow/source/engine/shapes/viewshape.cxx:886 #35 0xac602a6e in bool boost::_mfi::cmf4<bool, slideshow::internal::ViewShape, boost::shared_ptr<GDIMetaFile> const&, slideshow::internal::ViewShape::RenderArgs const&, int, bool>::call<boost::shared_ptr<slideshow::internal::ViewShape> const, boost::shared_ptr<GDIMetaFile> const, slideshow::internal::ViewShape::RenderArgs const, int, bool>(boost::shared_ptr<slideshow::internal::ViewShape> const&, void const*, boost::shared_ptr<GDIMetaFile> const&, slideshow::internal::ViewShape::RenderArgs const&, int&, bool&) const () from /data/opt/TTInstall/program/../basis-link/program/slideshow.uno.so #36 0xac602233 in bool boost::_mfi::cmf4<bool, slideshow::internal::ViewShape, boost::shared_ptr<GDIMetaFile> const&, slideshow::internal::ViewShape::RenderArgs const&, int, bool>::operator()<boost::shared_ptr<slideshow::internal::ViewShape> >(boost::shared_ptr<slideshow::internal::ViewShape> const&, boost::shared_ptr<GDIMetaFile> const&, slideshow::internal::ViewShape::RenderArgs const&, int, bool) const () from /data/opt/TTInstall/program/../basis-link/program/slideshow.uno.so #37 0xac601195 in bool boost::_bi::list5<boost::arg<1>, boost::reference_wrapper<boost::shared_ptr<GDIMetaFile> const>, boost::reference_wrapper<slideshow::internal::ViewShape::RenderArgs const>, boost::_bi::value<int>, boost::_bi::value<bool> >::operator()<bool, boost::_mfi::cmf4<bool, slideshow::internal::ViewShape, boost::shared_ptr<GDIMetaFile> const&, slideshow::internal::ViewShape::RenderArgs const&, int, bool>, boost::_bi::list1<boost::shared_ptr<slideshow::internal::ViewShape> const&> >(boost::_bi::type<bool>, boost::_mfi::cmf4<bool, slideshow::internal::V---Type <return> to continue, or q <return> to quit--- iewShape, boost::shared_ptr<GDIMetaFile> const&, slideshow::internal::ViewShape::RenderArgs const&, int, bool>&, boost::_bi::list1<boost::shared_ptr<slideshow::internal::ViewShape> const&>&, long) () from /data/opt/TTInstall/program/../basis-link/program/slideshow.uno.so #38 0xac5ff7fe in bool boost::_bi::bind_t<bool, boost::_mfi::cmf4<bool, slideshow::internal::ViewShape, boost::shared_ptr<GDIMetaFile> const&, slideshow::internal::ViewShape::RenderArgs const&, int, bool>, boost::_bi::list5<boost::arg<1>, boost::reference_wrapper<boost::shared_ptr<GDIMetaFile> const>, boost::reference_wrapper<slideshow::internal::ViewShape::RenderArgs const>, boost::_bi::value<int>, boost::_bi::value<bool> > >::operator()<boost::shared_ptr<slideshow::internal::ViewShape> >(boost::shared_ptr<slideshow::internal::ViewShape> const&) () from /data/opt/TTInstall/program/../basis-link/program/slideshow.uno.so #39 0xac5fe04e in _STL::iterator_traits<boost::shared_ptr<slideshow::internal::ViewShape> const*>::difference_type _STL::count_if<boost::shared_ptr<slideshow::internal::ViewShape> const*, boost::_bi::bind_t<bool, boost::_mfi::cmf4<bool, slideshow::internal::ViewShape, boost::shared_ptr<GDIMetaFile> const&, slideshow::internal::ViewShape::RenderArgs const&, int, bool>, boost::_bi::list5<boost::arg<1>, boost::reference_wrapper<boost::shared_ptr<GDIMetaFile> const>, boost::reference_wrapper<slideshow::internal::ViewShape::RenderArgs const>, boost::_bi::value<int>, boost::_bi::value<bool> > > >(boost::shared_ptr<slideshow::internal::ViewShape> const*, boost::shared_ptr<slideshow::internal::ViewShape> const*, boost::_bi::bind_t<bool, boost::_mfi::cmf4<bool, slideshow::internal::ViewShape, boost::shared_ptr<GDIMetaFile> const&, slideshow::internal::ViewShape::RenderArgs const&, int, bool>, boost::_bi::list5<boost::arg<1>, boost::reference_wrapper<boost::shared_ptr<GDIMetaFile> const>, boost::reference_wrapper<slideshow::internal::ViewShape::RenderArgs const>, boost::_bi::value<int>, boost::_bi::value<bool> > >) () from /data/opt/TTInstall/program/../basis-link/program/slideshow.uno.so #40 0xac5f7259 in slideshow::internal::DrawShape::implRender (this=0x9104a80, nUpdateFlags=31) at /data/opt/OpenOffice/libreoffice-3-3/build/libreoffice-3.3.0.3/slideshow/source/engine/shapes/drawshape.cxx:355 #41 0xac5fa666 in slideshow::internal::DrawShape::update (this=0x9104a80) at /data/opt/OpenOffice/libreoffice-3-3/build/libreoffice-3.3.0.3/slideshow/source/engine/shapes/drawshape.cxx:892 #42 0xac6287b0 in slideshow::internal::LayerManager::updateSprites (this=0x90fd640) at /data/opt/OpenOffice/libreoffice-3-3/build/libreoffice-3.3.0.3/slideshow/source/engine/slide/layermanager.cxx:538 #43 0xac628861 in slideshow::internal::LayerManager::update (this=0x90fd640) at /data/opt/OpenOffice/libreoffice-3-3/build/libreoffice-3.3.0.3/slideshow/source/engine/slide/layermanager.cxx:574 #44 0xac63283a in slideshow::internal::ShapeManagerImpl::update (this=0x90fd3e0) at /data/opt/OpenOffice/libreoffice-3-3/build/libreoffice-3.3.0.3/slideshow/source/engine/slide/shapemanagerimpl.cxx:264 #45 0xac683f45 in boost::_mfi::mf0<bool, slideshow::internal::ViewUpdate>::call<boost::shared_ptr<slideshow::internal::ViewUpdate> const> (this=0xbfffe670, u=...) at /data/opt/OpenOffice/libreoffice-3-3/build/libreoffice-3.3.0.3/solver/330/unxlngi6.pro/inc/boost/bind/mem_fn_template.hpp:40 #46 0xac683a05 in boost::_mfi::mf0<bool, slideshow::internal::ViewUpdate>::operator()<boost::shared_ptr<slideshow::internal::ViewUpdate> > (this=0xbfffe670, u=...) at /data/opt/OpenOffice/libreoffice-3-3/build/libreoffice-3.3.0.3/solver/330/unxlngi6.pro/inc/boost/bind/mem_fn_template.hpp:61 #47 0xac68349d in slideshow::internal::FunctionApply<bool, boost::shared_ptr<slideshow::internal::ViewUpdate> >::apply<boost::_mfi::mf0<bool, slideshow::internal::ViewUpdate> > (func=..., rArg=...) at ../inc/listenercontainerimpl.hxx:80 #48 0xac682e34 in slideshow::internal::ListenerOperations<boost::shared_ptr<slideshow::internal::ViewUpdate> >::notifyAllListeners<_STL::vector<boost::shared_ptr<slideshow::internal::ViewUpdate> > const, boost::_mfi::mf0<bool, slideshow::internal::ViewUpdate> > (rContainer=..., func=...) at ../inc/listenercontainerimpl.hxx:125 #49 0xac68260c in slideshow::internal::ListenerContainerBase<boost::shared_ptr<slideshow::internal::ViewUpdate>, slideshow::internal::EmptyBase, _STL::vector<boost::shared_ptr<slideshow::internal::ViewUpdate>, _STL::allocator<boost::shared_ptr<slideshow::internal::ViewUpdate> > >, 16u>::applyAll<boost::_mfi::mf0<bool, slideshow::internal::ViewUpdate> > (this=0x9065a48, func= ...) at ../inc/listenercontainer.hxx:264 #50 0xac681815 in slideshow::internal::ScreenUpdater::commitUpdates (this=0x90b778c) at /data/opt/OpenOffice/libreoffice-3-3/build/libreoffice-3.3.0.3/slideshow/source/engine/screenupdater.cxx:140 #51 0xac68f8e3 in (anonymous namespace)::SlideShowImpl::update (this=0x90b76d8, nNextTimeout=@0xbfffe860) at /data/opt/OpenOffice/libreoffice-3-3/build/libreoffice-3.3.0.3/slideshow/source/engine/slideshowimpl.cxx:2093 #52 0xae7aed88 in sd::SlideshowImpl::updateSlideShow() () from /data/opt/TTInstall/program/../basis-link/program/libsdli.so #53 0xb65727b9 in Link::Call (this=0x90c6554, pCaller=0x90c6544) at /data/opt/OpenOffice/libreoffice-3-3/build/libreoffice-3.3
I think the XRender code is broken. I'll have a look.
Interesting one. The problem was that the code assumes that there is just one visual depth, which is not quite always the case with today's ARGB-capable XServers. Fixed in master with c8b124fe8675fef888f21f1abcf81cbc5c1f5801 (needs adcf6494095e873d8c857457fda60d820b65a45b first as a cleanup of the code, as I got confused by the void* casts and misnaming of variables). Reading again the original description, 'fixed' here means fixing the RenderBadPicture X error. I cannot reproduce any crash or freeze as claimed in the problem description, and I quite doubt the X Error would be related, unless the XServer itself is buggy in this regard.
I see, KDE integration installs the KDE X error handler which does not abort on X errors (as they're mostly non-fatal anyway), while running with other VCL plugin leads to the described problem. So this should be fixed in master with my commits.
marking blocker.
committed to libreoffice-3-3 (as a single commit) d46f89c39109a2ca351104c7feaefe59f187052a Review & approval appreciated for libreoffice-3-3-0 - Thorsten - you volunteered to review/cherry-pick/close right ? :-) Lubos - nice work :-)
Fixed on all branches - thanks Lubos for the patch!