Bug 151627

Summary: Gimp segfaults in gimp_ink_register() when using wacom stylus
Product: [Fedora] Fedora Reporter: Richard Harman <rhbugs>
Component: gimpAssignee: Nils Philippsen <nphilipp>
Status: CLOSED CURRENTRELEASE QA Contact: David Lawrence <dkl>
Severity: high Docs Contact:
Priority: medium    
Version: 3   
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: FC4 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2006-06-08 07:36:17 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
package list for my system none

Description Richard Harman 2005-03-21 01:17:05 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.3) Gecko/20041020

Description of problem:
Using the pencil tool, or paintbrush tool works correctly.  When switching to the Ink tool, right at pen-down on the stylus gimp segfaults in gimp_ink_register().

Version-Release number of selected component (if applicable):
gimp-2.2.4-0.fc3.3

How reproducible:
Always

Steps to Reproduce:
1. Open gimp
2. New image (Control-N)
3. Pick the ink tool for the Stylus
4. Draw w/ stylus on canvas
  

Actual Results:  Gimp segfaults, with an error in gimp_ink_register()

Expected Results:  Shouldn't segfault

Additional info:

Backtrace from 'gdb gimp' running 'bt full' at the point of the crash:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1208329952 (LWP 9041)]
0x082477b1 in gimp_ink_register ()
(gdb) bt full
#0  0x082477b1 in gimp_ink_register ()
No symbol table info available.
#1  0x08248199 in blob_ellipse ()
No symbol table info available.
#2  0x08246f21 in gimp_ink_register ()
No symbol table info available.
#3  0x08249227 in gimp_paint_core_paint ()
No symbol table info available.
#4  0x08249357 in gimp_paint_core_paint ()
No symbol table info available.
#5  0x08106b2a in gimp_paint_tool_enable_color_picker ()
No symbol table info available.
#6  0x080d41aa in gimp_display_shell_canvas_tool_events ()
No symbol table info available.
#7  0x005e9757 in gtk_marshal_VOID__UINT_STRING ()
   from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#8  0x00b26347 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#9  0x00b3cae1 in g_signal_has_handler_pending ()
   from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#10 0x00b3d913 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#11 0x00b3df5a in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
No symbol table info available.
#12 0x006dd545 in gtk_widget_activate () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#13 0x005e7a1b in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#14 0x005e7d20 in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#15 0x001530a2 in gdk_event_get_graphics_expose ()
   from /usr/lib/libgdk-x11-2.0.so.0
No symbol table info available.
#16 0x0033c7bb in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#17 0x0033e242 in g_main_context_acquire () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#18 0x0033e4ef in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#19 0x0808c11e in app_run ()
No symbol table info available.
#20 0x0808cb63 in main ()
No symbol table info available.

Comment 1 Nils Philippsen 2005-03-21 08:14:44 UTC
What kind of Wacom tablet do you use? I've got a Grapphire USB one and it works
as expected (just tried it with the ink tool). Do you get any error messages
while doing this when running GIMP from the command line? 

Comment 2 Richard Harman 2005-03-21 17:19:13 UTC
(In reply to comment #1)
> What kind of Wacom tablet do you use? I've got a Grapphire USB one and it works
> as expected (just tried it with the ink tool). Do you get any error messages
> while doing this when running GIMP from the command line? 

Wacom tablet CTE-430 (Graphire 3, USB) with linuxwacom-0.6.4-6.  The only
warnings I get /immediately/ at pen-down is "(script-fu:26886):
LibGimpBase-WARNING **: script-fu: wire_read(): error", which is why I gdb'd it.
 I didn't think script-fu had much to do with it.

I can recompile the gimp from the source rpm and try to turn off stripping, if
that helps any.

A little system/config info:

lsusb | grep Wacom
Bus 004 Device 013: ID 056a:0013 Wacom Co., Ltd 

dmesg | grep Wacom
input: Wacom Graphire3 on usb-0000:00:10.2-2.3
drivers/usb/input/wacom.c: v1.30:USB Wacom Graphire and Wacom Intuos tablet driver

uname -a
Linux xasf 2.6.10-1.770_FC3 #1 Thu Feb 24 14:00:06 EST 2005 i686 athlon i386
GNU/Linux

X log messages:

(II) LoadModule: "wacom"
(II) Loading /usr/X11R6/lib/modules/input/wacom_drv.o
(II) Module wacom: vendor="X.Org Foundation"
        compiled for 4.3.99.902, module version = 1.0.0
        Module class: X.Org XInput Driver
        ABI class: X.Org XInput driver, version 0.4
(II) Wacom driver level: 26-j0.6.4 $
(II) LoadModule: "wacom"
(II) Reloading /usr/X11R6/lib/modules/input/wacom_drv.o
(II) Wacom driver level: 26-j0.6.4 $
...
(**) Cursor: always reports core events
(**) Cursor serial device is /dev/input/wacom
(**) Cursor is in relative mode
(**) WACOM: suppress value is 2
(**) Option "USB" "on"
(**) Cursor: reading USB link
(**) Option "BaudRate" "9600"
(**) Cursor: serial speed 9600
(**) Option "HistorySize" "200"
(**) Stylus: has a history of 200 motions
(**) Stylus serial device is /dev/input/wacom
(**) Stylus is in absolute mode
(**) Option "Suppress" "30"
(**) WACOM: suppress value is 2
(**) Option "USB" "on"
(**) Stylus: reading USB link
(II) xf86WcmSetPressureCurve: setting to 100,0 99,100
(**) WACOM: PressCurve 100,0,99,100
(**) Option "Threshold" "20"
(**) Stylus: threshold = 20
(**) Option "BaudRate" "9600"
(**) Stylus: serial speed 9600
(**) Option "HistorySize" "200"
(**) Eraser: has a history of 200 motions
(**) Eraser serial device is /dev/input/wacom
(**) Eraser is in absolute mode
(**) Option "Suppress" "30"
(**) WACOM: suppress value is 2
(**) Option "USB" "on"
(**) Eraser: reading USB link
(II) xf86WcmSetPressureCurve: setting to 100,0 99,100
(**) WACOM: PressCurve 100,0,99,100
(**) Option "Threshold" "20"
(**) Eraser: threshold = 20
(**) Option "BaudRate" "9600"
(**) Eraser: serial speed 9600
(II) XINPUT: Adding extended input device "Eraser" (type: Wacom Eraser)
(II) XINPUT: Adding extended input device "Stylus" (type: Wacom Stylus)
(II) XINPUT: Adding extended input device "Cursor" (type: Wacom Cursor)
(II) XINPUT: Adding extended input device "Keyboard0" (type: KEYBOARD)
(II) XINPUT: Adding extended input device "Mouse0" (type: MOUSE)
...
(**) Option "Device" "/dev/input/wacom"
(==) Wacom Kernel Input driver version is 1.0.0
(==) Wacom USB Graphire3 tablet speed=9600 maxX=10208 maxY=7424 maxZ=511
resX=1016 resY=1016 suppress=2 tilt=disabled
(==) Wacom device "Cursor" top X=0 top Y=0 bottom X=10208 bottom Y=7424
(==) Wacom device "Stylus" top X=0 top Y=0 bottom X=10208 bottom Y=7424
(==) Wacom device "Eraser" top X=0 top Y=0 bottom X=10208 bottom Y=7424
(II) Mouse0: ps2EnableDataReporting: succeeded
(II) 3rd Button detected: disabling emulate3Button

Xorg config:

Section "InputDevice"
  Driver "wacom"
  Identifier "Stylus"
  Option        "PressCurve" "100,0,99,100"
  Option "Type" "stylus"
  Option "Device" "/dev/input/wacom"
  Option "USB" "on"
  Option "Mode" "Absolute"
  Option "Threshold" "20"
  Option "HistorySize" "200"
  Option "Suppress" "30"
  #Option       "TopX" "0"
  #Option       "TopY" "0"
  #Option       "BottomX" "10206"
  #Option       "BottomY" "7422"

EndSection

My video card is an Nvidia GeForce FX 5700, using NVidia's drivers, 1.0-7167.

Comment 3 Nils Philippsen 2005-03-22 12:25:29 UTC
You needn't rebuild the GIMP, just download and install the corresponding
*-debuginfo packages for gimp and gtk2 from:

http://download.fedora.redhat.com/pub/fedora/linux/core/updates/3/i386/

Comment 4 Richard Harman 2005-03-22 22:56:24 UTC
Ok, I'll run gimp under gdb w/ the debug info when I get home tonight.

Comment 5 Richard Harman 2005-03-23 09:05:55 UTC
Backtrace from debug info:

#0  0x082477b1 in blob_fill (b=0x9d67a48, present=0xa105aa8)
    at gimpink-blob.c:552
#1  0x08248199 in blob_ellipse (xc=47815856.551724136, yc=1608.1034482758621,
    xp=-nan(0x8000000000000), yp=-nan(0x8000000000000),
    xq=nan(0x8000000000000), yq=-nan(0x8000000000000)) at gimpink-blob.c:346
#2  0x08246f21 in gimp_ink_paint (paint_core=0xa0f2b88, drawable=0x9e5ac38,
    paint_options=0x946e3f0, paint_state=168766344, time=9050216)
    at gimpink.c:338
#3  0x08249227 in gimp_paint_core_paint (core=0xa0f2b88, drawable=0x9e5ac38,
    paint_options=0x946e3f0, paint_state=GIMP_PAINT_STATE_MOTION, time=9050216)
    at gimppaintcore.c:259
#4  0x08249357 in gimp_paint_core_real_interpolate (core=0xa0f2bd0,
    drawable=0xa105aa8, paint_options=0xa105aa8, time=168843944)
    at gimppaintcore.c:218
#5  0x08106b2a in gimp_paint_tool_motion (tool=0xa0f2d88, coords=0xbff7ece0,
    time=9050216, state=165050952, gdisp=0x9e5ef98) at gimppainttool.c:548
#6  0x080d41aa in gimp_display_shell_canvas_tool_events (canvas=0x9414070,
    event=0x94615a8, shell=0x9e53548) at gimpdisplayshell-callbacks.c:1118
#7  0x0020e757 in gtk_marshal_VOID__UINT_STRING ()
   from /usr/lib/libgtk-x11-2.0.so.0
#8  0x00a56347 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#9  0x00a6cae1 in g_signal_has_handler_pending ()
   from /usr/lib/libgobject-2.0.so.0
#10 0x00a6d913 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#11 0x00a6df5a in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#12 0x00302545 in gtk_widget_activate () from /usr/lib/libgtk-x11-2.0.so.0
#13 0x0020ca1b in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0
#14 0x0020cd20 in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
#15 0x00c3e0a2 in gdk_event_get_graphics_expose ()
   from /usr/lib/libgdk-x11-2.0.so.0
#16 0x009df7bb in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#17 0x009e1242 in g_main_context_acquire () from /usr/lib/libglib-2.0.so.0
#18 0x009e14ef in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#19 0x0808c11e in app_run (full_prog_name=0xa105aa8 "", gimp_argc=0,
    gimp_argv=0xbff7f5c8, alternate_system_gimprc=0x9432730 "",
    alternate_gimprc=0x0, session_name=0xa105aa8 "",
    batch_interpreter=0xa105aa8 "", batch_commands=0xa105aa8, no_interface=0,
    no_data=168843944, no_fonts=168843944, no_splash=168843944, be_verbose=0,
    use_shm=168843944, use_cpu_accel=165050952, console_messages=168843944,
    stack_trace_mode=168843944, pdb_compat_mode=168843944) at app_procs.c:375
#20 0x0808cb63 in main (argc=1, argv=0xbff7f5c4) at main.c:473

Comment 6 Nils Philippsen 2005-03-23 12:36:57 UTC
Hmm, can't see something obvious right now, but I'm not that familiar with the
GIMP's innards either. Before I raise this issue upstream it would be good if
you could tell me what settings you have for the tablet in GIMP
(Preferences/Input Devices/Configure Extended Input Devices; Dialogs/Device
Status) and a complete list of packages installed ("rpm -qa | sort"), just to
rule out that I haven't got an update you haven't and vice versa.

Comment 7 Richard Harman 2005-03-23 18:59:40 UTC
Created attachment 112275 [details]
package list for my system

Comment 8 Richard Harman 2005-03-23 19:02:04 UTC
The Stylus/Eraser I have set to "window" mode, and the Cursor I have set to
"screen" mode.  All other settings are defaults.  I've tried setting the
Stylus/Eraser to "screen" mode, and that didn't help any :(  I can definitly rm
-Rf ~/.gimp* and start from scratch too.

Comment 9 Nils Philippsen 2006-06-07 12:31:04 UTC
Does this problem still exist with current versions of the package (gimp-2.2.11
on FC4 or FC5)?

Comment 10 Richard Harman 2006-06-07 13:44:34 UTC
gimp-2.2.11-0.fc4.3

No problems with the above package.  This issue was quite some time ago, and I
think I may have simply upgraded to FC4 from FC3 to fix this, among many other
problems (.. that I can't seem to recall now)

Comment 11 Nils Philippsen 2006-06-08 07:36:17 UTC
Thanks for reporting back!