Bug 91880 - Impress Crash when defining progressive filling color
Summary: Impress Crash when defining progressive filling color
Status: VERIFIED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Impress (show other bugs)
Version:
(earliest affected)
5.1.0.0.alpha0+ Master
Hardware: All Linux (All)
: highest critical
Assignee: Not Assigned
URL:
Whiteboard: target:5.1.0 target:5.0.0.1
Keywords:
: 92074 (view as bug list)
Depends on:
Blocks:
 
Reported: 2015-06-05 19:21 UTC by Philippe Jung
Modified: 2016-10-25 19:20 UTC (History)
5 users (show)

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Philippe Jung 2015-06-05 19:21:17 UTC
Was trying to define a degraded fill style from Yellow to Yellow 10, Angle 30°, Border: 60%
Crash when applied

warn:legacy.osl:4227:1:/home/philippe/src/git-repo/libreoffice/master/basegfx/source/polygon/b2dtrapezoid.cxx:655: Trapezoid decomposer in illegal state (!)
warn:legacy.osl:4227:1:/home/philippe/src/git-repo/libreoffice/master/basegfx/source/polygon/b2dtrapezoid.cxx:655: Trapezoid decomposer in illegal state (!)
warn:legacy.osl:4227:1:/home/philippe/src/git-repo/libreoffice/master/basegfx/source/polygon/b2dtrapezoid.cxx:655: Trapezoid decomposer in illegal state (!)
warn:legacy.osl:4227:1:/home/philippe/src/git-repo/libreoffice/master/basegfx/source/polygon/b2dtrapezoid.cxx:655: Trapezoid decomposer in illegal state (!)
warn:legacy.osl:4227:1:/home/philippe/src/git-repo/libreoffice/master/basegfx/source/polygon/b2dtrapezoid.cxx:655: Trapezoid decomposer in illegal state (!)
Comment 1 Philippe Jung 2015-06-05 19:24:29 UTC
#0  0x00007fffe20fb960 in gdk_x11_screen_get_screen_number ()
   from /usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0
#1  0x00007fffe34cfacf in GtkSalGraphics::GtkSalGraphics (this=0x1df1330, 
    pFrame=0x0, pWindow=0x103e140)
    at /home/philippe/src/lodev/master/vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx:69
#2  0x00007fffe34c87c0 in GtkInstance::CreateVirtualDevice (this=0x607200, 
    pG=0x2a32a60, nDX=@0x7fffffffb958: 869, nDY=@0x7fffffffb960: 56, 
    nBitCount=24, pGd=0x0)
    at /home/philippe/src/git-repo/libreoffice/master/vcl/unx/gtk/app/gtkinst.cxx:327
#3  0x00007ffff201b288 in VirtualDevice::InnerImplSetOutputSizePixel (
    this=0x2a34900, rNewSize=..., bErase=false, pBuffer=..., bTopDown=false)
    at /home/philippe/src/git-repo/libreoffice/master/vcl/source/gdi/virdev.cxx:339
#4  0x00007ffff201b605 in VirtualDevice::ImplSetOutputSizePixel (
    this=0x2a34900, rNewSize=..., bErase=false, pBuffer=..., bTopDown=false)
    at /home/philippe/src/git-repo/libreoffice/master/vcl/source/gdi/virdev.cxx:396
#5  0x00007ffff201b92e in VirtualDevice::SetOutputSizePixel (this=0x2a34900, 
    rNewSize=..., bErase=false)
    at /home/philippe/src/git-repo/libreoffice/master/vcl/source/gdi/virdev.cxx:444
#6  0x00007fffefe5d6e7 in (anonymous namespace)::VDevBuffer::alloc(OutputDevice&, Size const&, bool, int) ()
   from /home/philippe/src/lodev/master/instdir/program/libdrawinglayerlo.so
#7  0x00007fffefe5d96a in drawinglayer::impBufferDevice::impBufferDevice(OutputDevice&, basegfx::B2DRange const&, bool) ()
   from /home/philippe/src/lodev/master/instdir/program/libdrawinglayerlo.so
#8  0x00007fffefe7075c in drawinglayer::processor2d::VclProcessor2D::RenderMaskPrimitive2DPixel(drawinglayer::primitive2d::MaskPrimitive2D const&) ()
   from /home/philippe/src/lodev/master/instdir/program/libdrawinglayerlo.so
#9  0x00007fffefe6e7fb in drawinglayer::processor2d::VclPixelProcessor2D::processBasePrimitive2D(drawinglayer::primitive2d::BasePrimitive2D const&) ()
   from /home/philippe/src/lodev/master/instdir/program/libdrawinglayerlo.so
#10 0x00007fffefe57d95 in drawinglayer::processor2d::BaseProcessor2D::process(com::sun::star::uno::Sequence<com::sun::star::uno::Reference<com::sun::star::graphic::XPrimitive2D> > const&) ()
   from /home/philippe/src/lodev/master/instdir/program/libdrawinglayerlo.so
#11 0x00007fffefe6ecc1 in drawinglayer::processor2d::VclPixelProcessor2D::processBasePrimitive2D(drawinglayer::primitive2d::BasePrimitive2D const&) ()
   from /home/philippe/src/lodev/master/instdir/program/libdrawinglayerlo.so
#12 0x00007fffefe57d95 in drawinglayer::processor2d::BaseProcessor2D::process(com::sun::star::uno::Sequence<com::sun::star::uno::Reference<com::sun::star::graphic::XPrimitive2D> > const&) ()
   from /home/philippe/src/lodev/master/instdir/program/libdrawinglayerlo.so
#13 0x00007fffefe6ecc1 in drawinglayer::processor2d::VclPixelProcessor2D::processBasePrimitive2D(drawinglayer::primitive2d::BasePrimitive2D const&) ()
   from /home/philippe/src/lodev/master/instdir/program/libdrawinglayerlo.so
#14 0x00007fffefe57d95 in drawinglayer::processor2d::BaseProcessor2D::process(com::sun::star::uno::Sequence<com::sun::star::uno::Reference<com::sun::star::graphic::XPrimitive2D> > const&) ()
   from /home/philippe/src/lodev/master/instdir/program/libdrawinglayerlo.so
#15 0x00007fffefe6ecc1 in drawinglayer::processor2d::VclPixelProcessor2D::processBasePrimitive2D(drawinglayer::primitive2d::BasePrimitive2D const&) ()
   from /home/philippe/src/lodev/master/instdir/program/libdrawinglayerlo.so
#16 0x00007fffefe57d95 in drawinglayer::processor2d::BaseProcessor2D::process(com::sun::star::uno::Sequence<com::sun::star::uno::Reference<com::sun::star::graphic::XPrimitive2D> > const&) ()
   from /home/philippe/src/lodev/master/instdir/program/libdrawinglayerlo.so
#17 0x00007fffc91cba31 in sdr::contact::ObjectContactOfPageView::DoProcessDisplay (this=0x1e64830, rDisplayInfo=...)
    at /home/philippe/src/git-repo/libreoffice/master/svx/source/sdr/contact/objectcontactofpageview.cxx:301
#18 0x00007fffc91cb137 in sdr::contact::ObjectContactOfPageView::ProcessDisplay
    (this=0x1e64830, rDisplayInfo=...)
    at /home/philippe/src/git-repo/libreoffice/master/svx/source/sdr/contact/objectcontactofpageview.cxx:122
#19 0x00007fffc920dd28 in SdrPageWindow::RedrawAll (this=0x1e816e0,
Comment 2 Philippe Jung 2015-06-05 21:12:57 UTC
Missed this:

(soffice:5989): Gtk-CRITICAL **: IA__gtk_widget_get_screen: assertion 'GTK_IS_WIDGET (widget)' failed
Comment 3 Buovjaga 2015-06-10 15:50:01 UTC
(In reply to Philippe Jung from comment #0)
> Was trying to define a degraded fill style from Yellow to Yellow 10, Angle
> 30°, Border: 60%
> Crash when applied

Reproduced. Somehow it tried to change Yellow 10 to Pale yellow when adding the gradient, but I noticed it and modified properly..

Ubuntu 15.04 64-bit 
Version: 5.1.0.0.alpha1+
Build ID: 0d754a386fb44f970f33a3e71b2f0f3cfb7c4598
TinderBox: Linux-rpm_deb-x86_64@46-TDF-dbg, Branch:master, Time: 2015-06-09_16:20:41
Locale: en-US (en_US.UTF-8)
Comment 4 Yousuf Philips (jay) (retired) 2015-06-15 14:38:06 UTC
*** Bug 92074 has been marked as a duplicate of this bug. ***
Comment 5 Yousuf Philips (jay) (retired) 2015-06-15 14:39:54 UTC
Changing priority as this is basic functionality of applying a gradient on a slide.
Comment 6 Caolán McNamara 2015-06-16 08:56:45 UTC
I can't reproduce this crash. There was some ping-pong between kendy and markus in that method recently, so perhaps it was fixed by them by that, can I get a re-test or a precise set of how-to-reproduce
Comment 7 Buovjaga 2015-06-16 12:46:08 UTC
1. New Impress document
2. Right-click title object, Area
3. Gradients-tab, Add new gradient: Yellow to Yellow 10, Angle 30°, Border: 60%
4. After adding, change Pale yellow back to Yellow 10, click modify
5. Area-tab, Fill: Gradient, select newly created gradient
6. Ok, crash

Doesn't crash on Windows.

Win 7 Pro 64-bit Version: 5.1.0.0.alpha1+
Build ID: 80ec99db4325a439a8a3f1d420d0a80f8bf9c439
TinderBox: Win-x86@62-merge-TDF, Branch:MASTER, Time: 2015-06-16_00:00:20
Locale: fi-FI (fi_FI)

Ubuntu 15.04 64-bit 
Version: 5.1.0.0.alpha1+
Build ID: 9ef671364ff9fbb552a5433053af9283d12d90c7
TinderBox: Linux-rpm_deb-x86_64@46-TDF-dbg, Branch:master, Time: 2015-06-16_08:38:45
Locale: en-US (en_US.UTF-8)
Comment 8 Caolán McNamara 2015-06-16 16:15:33 UTC
Thanks, I can reproduce this now
Comment 9 Commit Notification 2015-06-17 08:25:37 UTC
Caolán McNamara committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=6dcd81f81be0067425f42f0898316d7f52e279d6

Resolves: tdf#91880 Invalidate graphics when the gtk window is destroyed

It will be available in 5.1.0.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 10 Commit Notification 2015-06-17 08:27:14 UTC
Caolán McNamara committed a patch related to this issue.
It has been pushed to "libreoffice-5-0":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=133e04fc1a870c0aad207e82eefeeeceaba5dc6d&h=libreoffice-5-0

Resolves: tdf#91880 Invalidate graphics when the gtk window is destroyed

It will be available in 5.0.0.1.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 11 Caolán McNamara 2015-06-17 08:33:38 UTC
I think the above solves this. I find it hard to reproduce reliably but the above seems to fix it. Give it a good bashing.
Comment 12 Buovjaga 2015-06-18 11:35:25 UTC
Now with 100% less crashing.

Ubuntu 15.04 64-bit 
Version: 5.1.0.0.alpha1+
Build ID: fb6dd2a73074b9695bd8ddf7ba40f1819b03024e
TinderBox: Linux-rpm_deb-x86_64@46-TDF-dbg, Branch:master, Time: 2015-06-17_23:54:33
Locale: en-US (en_US.UTF-8)