ubuntustudio-bugs team mailing list archive
-
ubuntustudio-bugs team
-
Mailing list archive
-
Message #10272
[Bug 1928598] [NEW] SIGSEGV when zooming in on curve in sp_ctrl_build_cache
Public bug reported:
$ lsb_release -rd
Description: Ubuntu 20.04.2 LTS
Release: 20.04
$ apt-cache policy inkscape
inkscape:
Installed: 0.92.5-1ubuntu1.1
Candidate: 0.92.5-1ubuntu1.1
Version table:
*** 0.92.5-1ubuntu1.1 500
500 http://us.archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages
100 /var/lib/dpkg/status
0.92.5-1ubuntu1 500
500 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 Packages
1. Open up the attached SVG, with `inkscape bezier_fit.svg`
2. Select the orange-red curve in front with "Edit paths by nodes (F2)" so that all four of the Bezier vertices are visible.
3. Zoom all the way in on a segment of curve.
4. SIGSEGV, with a stack trace that (usually) looks like:
Thread 1 "inkscape" received signal SIGSEGV, Segmentation fault.
0x00007ffff734edec in sp_ctrl_build_cache (ctrl=0x5555584886d0 [SPCtrl]) at ./src/display/sodipodi-ctrl.cpp:385
385 ./src/display/sodipodi-ctrl.cpp: No such file or directory.
(gdb) bt
#0 0x00007ffff734edec in sp_ctrl_build_cache (ctrl=0x5555584886d0 [SPCtrl]) at ./src/display/sodipodi-ctrl.cpp:385
#1 sp_ctrl_render(SPCanvasItem*, SPCanvasBuf*) (item=<optimized out>, buf=0x7fffffffd810) at ./src/display/sodipodi-ctrl.cpp:569
#2 0x00007ffff7351b6a in SPCanvasGroup::render(SPCanvasItem*, SPCanvasBuf*) (item=<optimized out>, buf=0x7fffffffd810) at ./src/display/sp-canvas.cpp:858
#3 0x00007ffff7351b6a in SPCanvasGroup::render(SPCanvasItem*, SPCanvasBuf*) (item=<optimized out>, buf=0x7fffffffd810) at ./src/display/sp-canvas.cpp:858
#4 0x00007ffff7351b6a in SPCanvasGroup::render(SPCanvasItem*, SPCanvasBuf*) (item=<optimized out>, buf=0x7fffffffd810) at ./src/display/sp-canvas.cpp:858
#5 0x00007ffff7351b6a in SPCanvasGroup::render(SPCanvasItem*, SPCanvasBuf*) (item=<optimized out>, buf=0x7fffffffd810) at ./src/display/sp-canvas.cpp:858
#6 0x00007ffff73541e0 in SPCanvas::paintSingleBuffer(Geom::GenericRect<int> const&, Geom::GenericRect<int> const&, int)
(this=0x555556e9d6c0 [SPCanvas], paint_rect=..., canvas_rect=...) at ./src/display/sp-canvas.cpp:1576
#7 0x00007ffff73546d1 in SPCanvas::paintRectInternal(PaintRectSetup const*, Geom::GenericRect<int> const&)
(this=this@entry=0x555556e9d6c0 [SPCanvas], setup=setup@entry=0x7fffffffd970, this_rect=...) at ./src/display/sp-canvas.cpp:1677
#8 0x00007ffff7354944 in SPCanvas::paintRect(int, int, int, int)
(this=0x555556e9d6c0 [SPCanvas], xx0=<optimized out>, yy0=<optimized out>, xx1=<optimized out>, yy1=<optimized out>) at ./src/display/sp-canvas.cpp:1790
#9 0x00007ffff7354ba5 in SPCanvas::paint() (this=0x555556e9d6c0 [SPCanvas]) at ./src/display/sp-canvas.cpp:1929
#10 0x00007ffff7354d48 in SPCanvas::doUpdate() (this=0x555556e9d6c0 [SPCanvas]) at ./src/display/sp-canvas.cpp:1963
#11 0x00007ffff7354dd8 in SPCanvas::idle_handler(void*) (data=0x555556e9d6c0) at ./src/display/sp-canvas.cpp:1978
#12 0x00007ffff613ce99 in () at /usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0
#13 0x00007ffff6b7804e in g_main_dispatch (context=0x555555675570) at ../../../glib/gmain.c:3309
#14 g_main_context_dispatch (context=context@entry=0x555555675570) at ../../../glib/gmain.c:3974
#15 0x00007ffff6b78400 in g_main_context_iterate (context=0x555555675570, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4047
#16 0x00007ffff6b786f3 in g_main_loop_run (loop=0x5555580ccdb0) at ../../../glib/gmain.c:4241
#17 0x00007ffff63ad092 in gtk_main () at /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#18 0x000055555555db3d in sp_main_gui(int, char const**) (argc=<optimized out>, argv=<optimized out>) at ./src/main.cpp:1173
#19 0x00007ffff5bb60b3 in __libc_start_main (main=
0x55555555b8c0 <main(int, char**)>, argc=2, argv=0x7fffffffdec8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffdeb8)
at ../csu/libc-start.c:308
#20 0x000055555555bf6e in _start () at ./src/main.cpp:661
And also:
* The two paths are either a near-exact or perfectly exact match for one another.
* `vector-effect: non-scaling-stroke` in the CSS probably isn't something that Inkscape sees very often.
** Affects: inkscape (Ubuntu)
Importance: Undecided
Status: New
** Attachment added: "bezier_fit.svg"
https://bugs.launchpad.net/bugs/1928598/+attachment/5498056/+files/bezier_fit.svg
--
You received this bug notification because you are a member of Ubuntu
Studio Bugs, which is subscribed to inkscape in Ubuntu.
Matching subscriptions: Ubuntu Studio Bugs
https://bugs.launchpad.net/bugs/1928598
Title:
SIGSEGV when zooming in on curve in sp_ctrl_build_cache
Status in inkscape package in Ubuntu:
New
Bug description:
$ lsb_release -rd
Description: Ubuntu 20.04.2 LTS
Release: 20.04
$ apt-cache policy inkscape
inkscape:
Installed: 0.92.5-1ubuntu1.1
Candidate: 0.92.5-1ubuntu1.1
Version table:
*** 0.92.5-1ubuntu1.1 500
500 http://us.archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages
100 /var/lib/dpkg/status
0.92.5-1ubuntu1 500
500 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 Packages
1. Open up the attached SVG, with `inkscape bezier_fit.svg`
2. Select the orange-red curve in front with "Edit paths by nodes (F2)" so that all four of the Bezier vertices are visible.
3. Zoom all the way in on a segment of curve.
4. SIGSEGV, with a stack trace that (usually) looks like:
Thread 1 "inkscape" received signal SIGSEGV, Segmentation fault.
0x00007ffff734edec in sp_ctrl_build_cache (ctrl=0x5555584886d0 [SPCtrl]) at ./src/display/sodipodi-ctrl.cpp:385
385 ./src/display/sodipodi-ctrl.cpp: No such file or directory.
(gdb) bt
#0 0x00007ffff734edec in sp_ctrl_build_cache (ctrl=0x5555584886d0 [SPCtrl]) at ./src/display/sodipodi-ctrl.cpp:385
#1 sp_ctrl_render(SPCanvasItem*, SPCanvasBuf*) (item=<optimized out>, buf=0x7fffffffd810) at ./src/display/sodipodi-ctrl.cpp:569
#2 0x00007ffff7351b6a in SPCanvasGroup::render(SPCanvasItem*, SPCanvasBuf*) (item=<optimized out>, buf=0x7fffffffd810) at ./src/display/sp-canvas.cpp:858
#3 0x00007ffff7351b6a in SPCanvasGroup::render(SPCanvasItem*, SPCanvasBuf*) (item=<optimized out>, buf=0x7fffffffd810) at ./src/display/sp-canvas.cpp:858
#4 0x00007ffff7351b6a in SPCanvasGroup::render(SPCanvasItem*, SPCanvasBuf*) (item=<optimized out>, buf=0x7fffffffd810) at ./src/display/sp-canvas.cpp:858
#5 0x00007ffff7351b6a in SPCanvasGroup::render(SPCanvasItem*, SPCanvasBuf*) (item=<optimized out>, buf=0x7fffffffd810) at ./src/display/sp-canvas.cpp:858
#6 0x00007ffff73541e0 in SPCanvas::paintSingleBuffer(Geom::GenericRect<int> const&, Geom::GenericRect<int> const&, int)
(this=0x555556e9d6c0 [SPCanvas], paint_rect=..., canvas_rect=...) at ./src/display/sp-canvas.cpp:1576
#7 0x00007ffff73546d1 in SPCanvas::paintRectInternal(PaintRectSetup const*, Geom::GenericRect<int> const&)
(this=this@entry=0x555556e9d6c0 [SPCanvas], setup=setup@entry=0x7fffffffd970, this_rect=...) at ./src/display/sp-canvas.cpp:1677
#8 0x00007ffff7354944 in SPCanvas::paintRect(int, int, int, int)
(this=0x555556e9d6c0 [SPCanvas], xx0=<optimized out>, yy0=<optimized out>, xx1=<optimized out>, yy1=<optimized out>) at ./src/display/sp-canvas.cpp:1790
#9 0x00007ffff7354ba5 in SPCanvas::paint() (this=0x555556e9d6c0 [SPCanvas]) at ./src/display/sp-canvas.cpp:1929
#10 0x00007ffff7354d48 in SPCanvas::doUpdate() (this=0x555556e9d6c0 [SPCanvas]) at ./src/display/sp-canvas.cpp:1963
#11 0x00007ffff7354dd8 in SPCanvas::idle_handler(void*) (data=0x555556e9d6c0) at ./src/display/sp-canvas.cpp:1978
#12 0x00007ffff613ce99 in () at /usr/lib/x86_64-linux-gnu/libgdk-x11-2.0.so.0
#13 0x00007ffff6b7804e in g_main_dispatch (context=0x555555675570) at ../../../glib/gmain.c:3309
#14 g_main_context_dispatch (context=context@entry=0x555555675570) at ../../../glib/gmain.c:3974
#15 0x00007ffff6b78400 in g_main_context_iterate (context=0x555555675570, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4047
#16 0x00007ffff6b786f3 in g_main_loop_run (loop=0x5555580ccdb0) at ../../../glib/gmain.c:4241
#17 0x00007ffff63ad092 in gtk_main () at /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0
#18 0x000055555555db3d in sp_main_gui(int, char const**) (argc=<optimized out>, argv=<optimized out>) at ./src/main.cpp:1173
#19 0x00007ffff5bb60b3 in __libc_start_main (main=
0x55555555b8c0 <main(int, char**)>, argc=2, argv=0x7fffffffdec8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffdeb8)
at ../csu/libc-start.c:308
#20 0x000055555555bf6e in _start () at ./src/main.cpp:661
And also:
* The two paths are either a near-exact or perfectly exact match for one another.
* `vector-effect: non-scaling-stroke` in the CSS probably isn't something that Inkscape sees very often.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/inkscape/+bug/1928598/+subscriptions
Follow ups