Bug 486122 - Unexpected exit from gimp
Summary: Unexpected exit from gimp
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: gimp
Version: rawhide
Hardware: x86_64
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Nils Philippsen
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
: 486727 488970 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2009-02-18 15:27 UTC by Tom London
Modified: 2009-03-09 14:03 UTC (History)
6 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2009-03-09 12:44:50 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
strace output from gimp crash (62.42 KB, text/plain)
2009-02-20 14:35 UTC, Tom London
no flags Details
gimp crash report (21.50 KB, text/plain)
2009-03-07 16:21 UTC, Tom London
no flags Details


Links
System ID Private Priority Status Summary Last Updated
GNOME Bugzilla 573594 0 None None None Never

Description Tom London 2009-02-18 15:27:25 UTC
Description of problem:
I get unexpected termination/exiting from gimp (at seemingly random times).

Running from terminal window:

[tbl@tlondon ~]$ gimp

(script-fu:9928): LibGimpBase-WARNING **: script-fu: gimp_wire_read(): error
[tbl@tlondon ~]$

Here's another, looks the same:
[tbl@tlondon ~]$ gimp

(script-fu:10173): LibGimpBase-WARNING **: script-fu: gimp_wire_read(): error
[tbl@tlondon ~]$ 

Doesn't happen all the time....

Version-Release number of selected component (if applicable):
gimp-2.6.5-1.fc11.x86_64
gimp-libs-2.6.5-1.fc11.x86_64
xsane-gimp-0.996-3.fc11.x86_64


How reproducible:
Randomly, but often

Steps to Reproduce:
1.
2.
3.
  
Actual results:


Expected results:


Additional info:

Comment 1 Nils Philippsen 2009-02-18 16:31:18 UTC
Do you see this problem with the older gimp-2.6.4-3.fc11 as well? You can grab these packages from https://koji.fedoraproject.org/koji/buildinfo?buildID=77517

Comment 2 Tom London 2009-02-18 17:21:11 UTC
About 10 minutes of testing with gimp-2.6.4-3.fc11.x86_64 (and gimp-libs) fail to reproduce the problem.

Comment 3 Nils Philippsen 2009-02-19 10:42:19 UTC
With 2.6.5 installed, would you please describe a set of actions (beginning with the starting of gimp) which provoke the bug? Which gtk theme do you use?

Comment 4 Tom London 2009-02-19 15:24:48 UTC
[tbl@tlondon ~]$ gimp

(script-fu:5186): LibGimpBase-WARNING **: script-fu: gimp_wire_read(): error
[tbl@tlondon ~]$ 

got that by just clicking on 'File'.

Happens with random mouse clicks.

Theme....uh...

Preferences->Appearance says "Custom", but I believe it looks like "Fedora".

Clicking on "Customize", Controls says "Nodoka", "Window Borders" says "Nodoka", "icons" says "Fedora", "Pointer" says "Bluecurve".

Comment 5 Tom London 2009-02-19 15:25:44 UTC
To be a bit clearer on the above:

I started gimp in a terminal window, and the first thing I did was click on File to try to open an image file.  It exited instead.....

Comment 6 Nils Philippsen 2009-02-20 10:22:33 UTC
Can't reproduce that on F-10 right now, will attempt it on Rawhide later...

Comment 7 Tom London 2009-02-20 14:35:20 UTC
Created attachment 332706 [details]
strace output from gimp crash

OK.  A bit more:

I straced the two gimp processes.  First time, "script-fu"

 5214 pts/1    Sl+    0:02 gimp
 5222 pts/1    S+     0:00 /usr/lib64/gimp/2.0/plug-ins/script-fu -gimp 11 10 -r
 5229 pts/0    R+     0:00 ps agx
[tbl@tlondon ~]$ strace -p 5222
Process 5222 attached - interrupt to quit
select(1024, [11], NULL, NULL, NULL)    = 1 (in [11])
read(11, ""..., 4)                      = 0
write(2, "\n(script-fu:5222): LibGimpBase-WA"..., 78) = 78
shmdt(0x7f7bdac81000)                   = 0
exit_group(0)                           = ?
Process 5222 detached
[tbl@tlondon ~]$ 

And the second time, the main "gimp" process.

Looks like there is a SIGSEGV in there.

I attach the full strace output.

 5293 pts/1    Sl+    0:01 gimp
 5296 pts/1    S+     0:00 /usr/lib64/gimp/2.0/plug-ins/script-fu -gimp 11 10 -r
 5304 pts/0    R+     0:00 ps agx
[tbl@tlondon ~]$ strace -p 5293
Process 5293 attached - interrupt to quit
restart_syscall(<... resuming interrupted call ...>) = 1
read(3, "\f[\0244\360\1\0\5\0\0\0\0\252\0\20\1\6\0\0\0\26\0\0\0\0\0\0\0\0\0\0\0\f"..., 4096) = 896
read(3, 0x1f03104, 4096)                = -1 EAGAIN (Resource temporarily unavailable)
read(3, 0x1f03104, 4096)                = -1 EAGAIN (Resource temporarily unavailable)
read(3, 0x1f03104, 4096)                = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=4, events=POLLIN}, {fd=3, events=POLLIN}, {fd=6, events=POLLIN}, {fd=7, events=POLLIN}, {fd=9, events=POLLIN|POLLPRI}, {fd=8, events=POLLIN}], 6, 0) = 0 (Timeout)
select(4, [3], [3], NULL, NULL)         = 1 (out [3])

<<<<<SNIP>>>>>>

writev(3, [{"\2\0\4\0\34\6\0\5\0\10\0\0\361\200B\0\f\1\4\0.\6\0\5@\0\0\0\0\0\0\0\10"..., 108}, {NULL, 0}, {""..., 0}], 3) = 108
select(4, [3], [], NULL, NULL)          = 1 (in [3])
read(3, "\23\267\2768.\6\0\5.\6\0\5\0\0\0\0\0\0\0\0\0\0\0\0\352\276D\0\0\0\0\0\1"..., 4096) = 108
read(3, 0x1f03104, 4096)                = -1 EAGAIN (Resource temporarily unavailable)
select(4, [3], [3], NULL, NULL)         = 1 (out [3])
writev(3, [{"\2\0\4\0\34\6\0\5\0\10\0\0\361\200B\0\f\1\4\0/\6\0\5@\0\0\0\0\0\0\0\10"..., 108}, {NULL, 0}, {""..., 0}], 3) = 108
select(4, [3], [], NULL, NULL)          = 1 (in [3])
read(3, "\23\267\3058/\6\0\5/\6\0\5\0\0\0\0\0\0\0\0\0\0\0\0\352\276D\0\0\0\0\0\1"..., 4096) = 108
read(3, 0x1f03104, 4096)                = -1 EAGAIN (Resource temporarily unavailable)
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
select(4, [3], [3], NULL, NULL)         = 1 (out [3])
writev(3, [{"\2\0\4\0\34\6\0\5\0\10\0\0\361\200B\0\f\1\4\0000\6\0\5@\0\0\0\0\0\0\0\10"..., 336}, {NULL, 0}, {""..., 0}], 3) = 336
read(3, 0x1f03104, 4096)                = -1 EAGAIN (Resource temporarily unavailable)
select(4, [3], [3], NULL, NULL)         = 1 (out [3])
writev(3, [{" \0\2\0\0\0\0\0"..., 8}, {NULL, 0}, {""..., 0}], 3) = 8
read(3, 0x1f03104, 4096)                = -1 EAGAIN (Resource temporarily unavailable)
select(4, [3], [3], NULL, NULL)         = 1 (out [3])
writev(3, [{"%\0\1\0+\0\1\0"..., 8}, {NULL, 0}, {""..., 0}], 3) = 8
select(4, [3], [], NULL, NULL)          = 1 (in [3])
read(3, "\23\267\31480\6\0\0050\6\0\5\0\0\0\0\0\0\0\0\0\0\0\0\352\276D\0\0\0\0\0\23"..., 4096) = 416
read(3, 0x1f03104, 4096)                = -1 EAGAIN (Resource temporarily unavailable)
access("/usr/lib64/qt-3.3/bin/gdb", X_OK) = -1 ENOENT (No such file or directory)
access("/usr/kerberos/bin/gdb", X_OK)   = -1 ENOENT (No such file or directory)
access("/usr/local/bin/gdb", X_OK)      = -1 ENOENT (No such file or directory)
access("/usr/bin/gdb", X_OK)            = 0
getuid()                                = 500
stat("/usr/bin/gdb", {st_mode=S_IFREG|0755, st_size=4109880, ...}) = 0
readlink("/proc/self/exe", "/usr/bin/gimp-2.6"..., 256) = 17
open("/usr/bin/gimp-2.6", O_RDONLY)     = 10
fcntl(10, F_GETFL)                      = 0x8000 (flags O_RDONLY|O_LARGEFILE)
pread(10, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\2\0>\0\1\0\0\0\360qF\0\0\0\0\0@"..., 64, 0) = 64
pread(10, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1792, 4655864) = 1792
pread(10, "\0.shstrtab\0.interp\0.note.ABI-tag\0"..., 244, 4655616) = 244
pread(10, "gimp-2.6.debug\0\0\327\212\371\302"..., 20, 4655596) = 20
access("/usr/bin/gimp-2.6.debug", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/bin/.debug/gimp-2.6.debug", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/lib/debug/usr/bin/gimp-2.6.debug", F_OK) = -1 ENOENT (No such file or directory)
exit_group(1)                           = ?
Process 5293 detached
[tbl@tlondon ~]$

Comment 8 Tom London 2009-02-20 14:46:00 UTC
After downloading all the debuginfo packages, I get this in ~/Desktop/gimp-bugreport.txt:

[tbl@tlondon ~]$ cat Desktop/gimp-bugreport.txt 
System: Linux 2.6.29-0.134.rc5.git2.fc11.x86_64 #1 SMP Thu Feb 19 03:35:39 EST 2009 x86_64
X Vendor: The X.Org Foundation
X Vendor Release: 10599903
Selinux: Enforcing
Accessibility: Disabled
GTK+ Theme: Nodoka
Icon Theme: Fedora
GTK+ Modules: canberra-gtk-module, gnomebreakpad

Memory status: size: 326725632 vsize: 326725632 resident: 45064192 share: 15925248 rss: 45064192 rss_rlim: 18446744073709551615
CPU usage: start_time: 1235140961 rtime: 207 utime: 155 stime: 52 cutime:0 cstime: 0 timeout: 0 it_real_value: 0 frequency: 100

Backtrace was generated from '/usr/bin/gimp-2.6'

[Thread debugging using libthread_db enabled]
0x000000302ec0ea4d in __libc_waitpid (pid=5953, 
    stat_loc=<value optimized out>, options=0)
    at ../sysdeps/unix/sysv/linux/waitpid.c:41
41	  int result = INLINE_SYSCALL (wait4, 4, pid, stat_loc, options, NULL);
#0  0x000000302ec0ea4d in __libc_waitpid (pid=5953, 
    stat_loc=<value optimized out>, options=0)
    at ../sysdeps/unix/sysv/linux/waitpid.c:41
#1  0x000000302f86fce9 in IA__g_spawn_sync (
    working_directory=<value optimized out>, argv=<value optimized out>, 
    envp=<value optimized out>, flags=<value optimized out>, 
    child_setup=<value optimized out>, user_data=<value optimized out>, 
    standard_output=0x0, standard_error=0x0, exit_status=0x0, 
    error=0x7fffcade5ee8) at gspawn.c:382
#2  0x000000302f870009 in IA__g_spawn_command_line_sync (
    command_line=<value optimized out>, standard_output=0x0, 
    standard_error=0x0, exit_status=0x0, error=0x7fffcade5ee8) at gspawn.c:694
#3  0x000000000269aa1f in run_bug_buddy (minidump_path=<value optimized out>, 
    pid=<value optimized out>, appname=<value optimized out>)
    at gnome-breakpad.cc:369
#4  check_if_gdb () at gnome-breakpad.cc:440
#5  bugbuddy_segv_handle (signum=<value optimized out>)
    at gnome-breakpad.cc:223
#6  <signal handler called>
#7  0x0000003030410327 in IA__g_object_get (_object=0xffffffffbb267030, 
    first_property_name=0x70e01b "tooltip") at gobject.c:1585
#8  0x00000000005936ba in gimp_ui_manager_menu_item_select (
    widget=<value optimized out>, manager=0x7faebb224500)
    at gimpuimanager.c:918
#9  0x000000303040b8fe in IA__g_closure_invoke (closure=0x7faebb032480, 
    return_value=0x0, n_param_values=1, param_values=0x7faeba969520, 
    invocation_hint=0x7fffcade6630) at gclosure.c:767
#10 0x0000003030421f08 in signal_emit_unlocked_R (node=0x1c7f860, 
    detail=<value optimized out>, instance=<value optimized out>, 
    emission_return=<value optimized out>, 
    instance_and_params=<value optimized out>) at gsignal.c:3244
#11 0x00000030304232ee in IA__g_signal_emit_valist (instance=0x7faebbe446c0, 
    signal_id=<value optimized out>, detail=0, var_args=0x7fffcade6820)
    at gsignal.c:2977
#12 0x0000003030423883 in IA__g_signal_emit (instance=0xffffffffbb267030, 
    signal_id=7397403, detail=3403572399) at gsignal.c:3034
#13 0x0000003037558148 in IA__gtk_menu_item_select (
    menu_item=<value optimized out>) at gtkmenuitem.c:795
#14 0x000000303755c922 in gtk_menu_shell_real_select_item (
    menu_shell=0x7faebbe445f0, menu_item=<value optimized out>)
    at gtkmenushell.c:1080
#15 0x000000303755d81b in gtk_menu_shell_button_press (widget=0x7faebbe445f0, 
    event=0x7faeba59b100) at gtkmenushell.c:598
#16 0x000000303754b173 in _gtk_marshal_BOOLEAN__BOXED (closure=0x1c70890, 
    return_value=0x7fffcade6b50, n_param_values=<value optimized out>, 
    param_values=0x7faeba3c4530, invocation_hint=<value optimized out>, 
    marshal_data=0x303755d5d0) at gtkmarshalers.c:84
#17 0x000000303040b8fe in IA__g_closure_invoke (closure=0x1c70890, 
    return_value=0x7fffcade6b50, n_param_values=2, 
    param_values=0x7faeba3c4530, invocation_hint=0x7fffcade6b10)
    at gclosure.c:767
#18 0x0000003030421bc0 in signal_emit_unlocked_R (node=0x1c70900, 
    detail=<value optimized out>, instance=<value optimized out>, 
    emission_return=<value optimized out>, 
    instance_and_params=<value optimized out>) at gsignal.c:3282
#19 0x00000030304231ae in IA__g_signal_emit_valist (instance=0x7faebbe445f0, 
    signal_id=<value optimized out>, detail=0, var_args=0x7fffcade6d00)
    at gsignal.c:2987
#20 0x0000003030423883 in IA__g_signal_emit (instance=0xffffffffbb267030, 
    signal_id=7397403, detail=3403572399) at gsignal.c:3034
#21 0x000000303766b4ef in gtk_widget_event_internal (widget=0x7faebbe445f0, 
    event=0x7faeba59b100) at gtkwidget.c:4761
#22 0x00000030375422d5 in IA__gtk_propagate_event (widget=0x7faebbe445f0, 
    event=0x7faeba59b100) at gtkmain.c:2396
#23 0x000000303754342b in IA__gtk_main_do_event (event=0x7faeba59b100)
    at gtkmain.c:1601
#24 0x0000003036c5311c in gdk_event_dispatch (source=<value optimized out>, 
    callback=<value optimized out>, user_data=<value optimized out>)
    at gdkevents-x11.c:2363
#25 0x000000302f83812e in g_main_dispatch (context=<value optimized out>)
    at gmain.c:1814
#26 IA__g_main_context_dispatch (context=0x1c4eae0) at gmain.c:2367
#27 0x000000302f83b888 in g_main_context_iterate (context=0x1c4eae0, 
    block=<value optimized out>, dispatch=<value optimized out>, 
    self=<value optimized out>) at gmain.c:2448
#28 0x000000302f83bd25 in IA__g_main_loop_run (loop=0x7faebc3a8fb0)
    at gmain.c:2656
#29 0x0000000000467524 in app_run (full_prog_name=<value optimized out>, 
    filenames=<value optimized out>, 
    alternate_system_gimprc=<value optimized out>, 
    alternate_gimprc=<value optimized out>, 
    session_name=<value optimized out>, 
    batch_interpreter=<value optimized out>, batch_commands=0x0, as_new=0, 
    no_interface=0, no_data=0, no_fonts=0, no_splash=0, be_verbose=0, 
    use_shm=1, use_cpu_accel=1, console_messages=0, use_debug_handler=0, 
    stack_trace_mode=GIMP_STACK_TRACE_NEVER, 
    pdb_compat_mode=GIMP_PDB_COMPAT_ON) at app.c:246
#30 0x0000000000468538 in main (argc=1, argv=0x7fffcade7238) at main.c:406
[New Thread 0x7faebd3e9910 (LWP 5948)]


----------- .xsession-errors ---------------------
Window manager warning: meta_window_activate called by a pager with a 0 timestamp; the pager needs to be fixed.
gnome-session[4533]: WARNING: Unable to find watch for alarm 16777225
gnome-session[4533]: WARNING: Unable to find watch for alarm 16777226
Window manager warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x50001f0 (Toolbox)
Window manager warning: meta_window_activate called by a pager with a 0 timestamp; the pager needs to be fixed.
Window manager warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x5000127 (GNU Image )
Window manager warning: meta_window_activate called by a pager with a 0 timestamp; the pager needs to be fixed.
Window manager warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x50001f0 (Toolbox)
Window manager warning: meta_window_activate called by a pager with a 0 timestamp; the pager needs to be fixed.
Window manager warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x5000127 (GNU Image )
Window manager warning: meta_window_activate called by a pager with a 0 timestamp; the pager needs to be fixed.
Window manager warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x50001f0 (Toolbox)
Window manager warning: meta_window_activate called by a pager with a 0 timestamp; the pager needs to be fixed.
Window manager warning: Buggy client sent a _NET_ACTIVE_WINDOW message with a timestamp of 0 for 0x5000127 (GNU Image )
Window manager warning: meta_window_activate called by a pager with a 0 timestamp; the pager needs to be fixed.
-----------------------

Comment 9 Nils Philippsen 2009-02-20 15:49:46 UTC
(In reply to comment #8)
> After downloading all the debuginfo packages, I get this in
> ~/Desktop/gimp-bugreport.txt:
[...]
> #4  check_if_gdb () at gnome-breakpad.cc:440
> #5  bugbuddy_segv_handle (signum=<value optimized out>)
>     at gnome-breakpad.cc:223
> #6  <signal handler called>
> #7  0x0000003030410327 in IA__g_object_get (_object=0xffffffffbb267030, 
>     first_property_name=0x70e01b "tooltip") at gobject.c:1585
[...]

This looks like a problem in glib2 to me -- even though gimp_ui_manager_menu_item_select() is the caller of this function, it shouldn't crash there (and it doesn't on F-10). I'll change the component to glib2.

Comment 10 Matthias Clasen 2009-02-20 21:14:16 UTC
The line it is failing on here is

  g_return_if_fail (G_IS_OBJECT (object));

So the gimp code is passing a bad pointer in. 
Indeed, 0xffffffffbb267030 looks somewhat suspicious...

Comment 11 Nils Philippsen 2009-02-23 14:17:32 UTC
*** Bug 486727 has been marked as a duplicate of this bug. ***

Comment 12 Tom London 2009-03-01 01:51:38 UTC
This continues with today's rawhide update: gimp-2.6.5-2.fc11.x86_64

http://bugzilla.gnome.org/show_bug.cgi?id=573594

Distribution: Fedora release 10.91 (Rawhide)
Gnome Release: 2.25.91 2009-02-24 (Red Hat, Inc)
BugBuddy Version: 2.25.91

System: Linux 2.6.29-0.172.rc6.git4.fc11.x86_64 #1 SMP Fri Feb 27 03:09:40 EST
2009 x86_64
X Vendor: The X.Org Foundation
X Vendor Release: 10600000
Selinux: Enforcing
Accessibility: Disabled
GTK+ Theme: Nodoka
Icon Theme: Fedora
GTK+ Modules: canberra-gtk-module, gnomebreakpad

Memory status: size: 326795264 vsize: 326795264 resident: 45703168 share:
16429056 rss: 45703168 rss_rlim: 18446744073709551615
CPU usage: start_time: 1235872069 rtime: 349 utime: 209 stime: 140 cutime:99
cstime: 318 timeout: 0 it_real_value: 0 frequency: 100

Backtrace was generated from '/usr/bin/gimp-2.6'

(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread 0x7f0d18a3a910 (LWP 25387)]
[New Thread 0x7f0d1943b910 (LWP 25386)]
0x00007f0d22d53a5d in waitpid () from /lib64/libpthread.so.0
#0  0x00007f0d22d53a5d in waitpid () from /lib64/libpthread.so.0
#1  0x00007f0d22fd1ce9 in g_spawn_sync () from /lib64/libglib-2.0.so.0
#2  0x00007f0d22fd2009 in g_spawn_command_line_sync ()
   from /lib64/libglib-2.0.so.0
#3  0x00007f0d19b77c31 in ?? ()
   from /usr/lib64/gtk-2.0/modules/libgnomebreakpad.so
#4  <signal handler called>
#5  0x00000000024f0317 in g_object_get () from /lib64/libgobject-2.0.so.0
#6  0x00000000005936ba in ?? ()
#7  0x00000000024eb8ee in g_closure_invoke () from /lib64/libgobject-2.0.so.0
#8  0x0000000002501ef8 in ?? () from /lib64/libgobject-2.0.so.0
#9  0x00000000025032de in g_signal_emit_valist ()
   from /lib64/libgobject-2.0.so.0
#10 0x0000000002503873 in g_signal_emit () from /lib64/libgobject-2.0.so.0
#11 0x00000037537591f8 in gtk_menu_item_select ()
   from /usr/lib64/libgtk-x11-2.0.so.0
#12 0x000000375375d9d2 in ?? () from /usr/lib64/libgtk-x11-2.0.so.0
#13 0x000000375375e8cb in ?? () from /usr/lib64/libgtk-x11-2.0.so.0
#14 0x000000375374c223 in ?? () from /usr/lib64/libgtk-x11-2.0.so.0
#15 0x00000000024eb8ee in g_closure_invoke () from /lib64/libgobject-2.0.so.0
#16 0x0000000002501bb0 in ?? () from /lib64/libgobject-2.0.so.0
#17 0x000000000250319e in g_signal_emit_valist ()
   from /lib64/libgobject-2.0.so.0
#18 0x0000000002503873 in g_signal_emit () from /lib64/libgobject-2.0.so.0
#19 0x000000375386c5af in ?? () from /usr/lib64/libgtk-x11-2.0.so.0
#20 0x0000003753743385 in gtk_propagate_event ()
   from /usr/lib64/libgtk-x11-2.0.so.0
#21 0x00000037537444db in gtk_main_do_event ()
   from /usr/lib64/libgtk-x11-2.0.so.0
#22 0x0000003753e529ec in ?? () from /usr/lib64/libgdk-x11-2.0.so.0
#23 0x00007f0d22f9a12e in g_main_context_dispatch ()
   from /lib64/libglib-2.0.so.0
#24 0x00007f0d22f9d888 in ?? () from /lib64/libglib-2.0.so.0
#25 0x00007f0d22f9dd25 in g_main_loop_run () from /lib64/libglib-2.0.so.0
#26 0x0000000000467524 in app_run ()
#27 0x0000000000468538 in main ()

Thread 3 (Thread 0x7f0d1943b910 (LWP 25386)):
#0  0x00007f0d22d50349 in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib64/libpthread.so.0
No symbol table info available.
#1  0x00007f0d22f76100 in ?? () from /lib64/libglib-2.0.so.0
No symbol table info available.
#2  0x00007f0d22fc4e71 in ?? () from /lib64/libglib-2.0.so.0
No symbol table info available.
#3  0x00007f0d22fc3814 in ?? () from /lib64/libglib-2.0.so.0
No symbol table info available.
#4  0x00007f0d22d4b87a in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#5  0x00007f0d22ab8f6d in clone () from /lib64/libc.so.6
No symbol table info available.
#6  0x0000000000000000 in ?? ()
No symbol table info available.

Thread 2 (Thread 0x7f0d18a3a910 (LWP 25387)):
#0  0x00007f0d22d50349 in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib64/libpthread.so.0
No symbol table info available.
#1  0x00007f0d22f76100 in ?? () from /lib64/libglib-2.0.so.0
No symbol table info available.
#2  0x00007f0d22fc4e71 in ?? () from /lib64/libglib-2.0.so.0
No symbol table info available.
#3  0x00007f0d22fc3814 in ?? () from /lib64/libglib-2.0.so.0
No symbol table info available.
#4  0x00007f0d22d4b87a in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#5  0x00007f0d22ab8f6d in clone () from /lib64/libc.so.6
No symbol table info available.
#6  0x0000000000000000 in ?? ()
No symbol table info available.

Thread 1 (Thread 0x7f0d209b8790 (LWP 25384)):
#0  0x00007f0d22d53a5d in waitpid () from /lib64/libpthread.so.0
No symbol table info available.
#1  0x00007f0d22fd1ce9 in g_spawn_sync () from /lib64/libglib-2.0.so.0
No symbol table info available.
#2  0x00007f0d22fd2009 in g_spawn_command_line_sync ()
   from /lib64/libglib-2.0.so.0
No symbol table info available.
#3  0x00007f0d19b77c31 in ?? ()
   from /usr/lib64/gtk-2.0/modules/libgnomebreakpad.so
No symbol table info available.
#4  <signal handler called>
No symbol table info available.
#5  0x00000000024f0317 in g_object_get () from /lib64/libgobject-2.0.so.0
No symbol table info available.
#6  0x00000000005936ba in ?? ()
No symbol table info available.
#7  0x00000000024eb8ee in g_closure_invoke () from /lib64/libgobject-2.0.so.0
No symbol table info available.
#8  0x0000000002501ef8 in ?? () from /lib64/libgobject-2.0.so.0
No symbol table info available.
#9  0x00000000025032de in g_signal_emit_valist ()
   from /lib64/libgobject-2.0.so.0
No symbol table info available.
#10 0x0000000002503873 in g_signal_emit () from /lib64/libgobject-2.0.so.0
No symbol table info available.
#11 0x00000037537591f8 in gtk_menu_item_select ()
   from /usr/lib64/libgtk-x11-2.0.so.0
No symbol table info available.
#12 0x000000375375d9d2 in ?? () from /usr/lib64/libgtk-x11-2.0.so.0
No symbol table info available.
#13 0x000000375375e8cb in ?? () from /usr/lib64/libgtk-x11-2.0.so.0
No symbol table info available.
#14 0x000000375374c223 in ?? () from /usr/lib64/libgtk-x11-2.0.so.0
No symbol table info available.
#15 0x00000000024eb8ee in g_closure_invoke () from /lib64/libgobject-2.0.so.0
No symbol table info available.
#16 0x0000000002501bb0 in ?? () from /lib64/libgobject-2.0.so.0
No symbol table info available.
#17 0x000000000250319e in g_signal_emit_valist ()
   from /lib64/libgobject-2.0.so.0
No symbol table info available.
#18 0x0000000002503873 in g_signal_emit () from /lib64/libgobject-2.0.so.0
No symbol table info available.
#19 0x000000375386c5af in ?? () from /usr/lib64/libgtk-x11-2.0.so.0
No symbol table info available.
#20 0x0000003753743385 in gtk_propagate_event ()
   from /usr/lib64/libgtk-x11-2.0.so.0
No symbol table info available.
#21 0x00000037537444db in gtk_main_do_event ()
   from /usr/lib64/libgtk-x11-2.0.so.0
No symbol table info available.
#22 0x0000003753e529ec in ?? () from /usr/lib64/libgdk-x11-2.0.so.0
No symbol table info available.
#23 0x00007f0d22f9a12e in g_main_context_dispatch ()
   from /lib64/libglib-2.0.so.0
No symbol table info available.
#24 0x00007f0d22f9d888 in ?? () from /lib64/libglib-2.0.so.0
No symbol table info available.
#25 0x00007f0d22f9dd25 in g_main_loop_run () from /lib64/libglib-2.0.so.0
No symbol table info available.
#26 0x0000000000467524 in app_run ()
No symbol table info available.
#27 0x0000000000468538 in main ()
No symbol table info available.
The program is running.  Quit anyway (and detach it)? (y or n) [answered Y;
input not from terminal]


----------- .xsession-errors ---------------------
warning: the debug information found in
"/usr/lib/debug/lib64/libutil-2.9.90.so.debug" does not match
"/lib64/libutil.so.1" (CRC mismatch).
warning: the debug information found in
"/usr/lib/debug//usr/lib64/gimp/2.0/modules/libdisplay-filter-lcms.so.debug"
does not match "/usr/lib64/gimp/2.0/modules/libdisplay-filter-lcms.so" (CRC
mismatc
warning: the debug information found in
"/usr/lib/debug/usr/lib64/gimp/2.0/modules/libdisplay-filter-lcms.so.debug"
does not match "/usr/lib64/gimp/2.0/modules/libdisplay-filter-lcms.so" (CRC
mismatch
warning: the debug information found in
"/usr/lib/debug//usr/lib64/liblcms.so.1.0.16.debug" does not match
"/usr/lib64/liblcms.so.1" (CRC mismatch).
warning: the debug information found in
"/usr/lib/debug/usr/lib64/liblcms.so.1.0.16.debug" does not match
"/usr/lib64/liblcms.so.1" (CRC mismatch).
--------------------------------------------------

Comment 13 Tom London 2009-03-01 19:07:11 UTC
Filed upstream: http://bugzilla.gnome.org/show_bug.cgi?id=573594

Comments there indicate a likely issue with the "theme engine".

After changing theme from Fedora to Clearlooks, I have not been able to reproduce this.....

Should this be moved there?  (fedora-gnome-theme-8.0.0-8.fc11.noarch?)

Comment 14 Riku Seppala 2009-03-01 19:33:11 UTC
hm.. I'm using Kde and I see this. Or does that matter?

Comment 15 Nils Philippsen 2009-03-02 08:46:41 UTC
(In reply to comment #13)
> Filed upstream: http://bugzilla.gnome.org/show_bug.cgi?id=573594
> 
> Comments there indicate a likely issue with the "theme engine".
> 
> After changing theme from Fedora to Clearlooks, I have not been able to
> reproduce this.....
> 
> Should this be moved there?  (fedora-gnome-theme-8.0.0-8.fc11.noarch?)

Fedora-gnome-theme is only a meta package, gtk-nodoka-theme seems the culprit then. I'm changing the component to it.

(In reply to comment #14)
> hm.. I'm using Kde and I see this. Or does that matter?

Well, you still need to have a gtk theme engine rendering the widgets in gimp...

Comment 16 Matthew Miller 2009-03-06 16:25:16 UTC
*** Bug 488970 has been marked as a duplicate of this bug. ***

Comment 17 Matthew Miller 2009-03-06 16:36:52 UTC
I have my gtk theme set to Mist (both in the XFCE desktop I'm running and in gnome-control-center) and I still see the problem. I tried to remove the gtk-nodoka-engine package completely to make sure it's not referenced somewhere obliquely, but apparently that wants to remove half the universe.

Comment 18 Martin Sourada 2009-03-06 17:27:50 UTC
Having it installed should not make a difference. Clearlooks has slightly different code from most of the other themes, so it sometimes happen that it does not crash were others do (in past we've e.g. had gimp crashing with nodoka, bluecurve, mist, murrine, ... but not with clearlooks). I'm not sure though what to think about this very case. I cannot reproduce it on i586 and do not see any calls in libnodoka.so in the backtrace either :-/

Comment 19 Tom London 2009-03-06 18:30:35 UTC
http://bugzilla.gnome.org/show_bug.cgi?id=574176

and

http://bugzilla.gnome.org/show_bug.cgi?id=572403

Happens to me with clearlooks, mist, fedora, ....

Also reported in http://bugzilla.gnome.org/show_bug.cgi?id=572403 that this is happening in other distros too.

Just a thought, but there was a problem with SDL on x86_64 related to gcc change and "hand tuned" assembler.  The result was that only 32 bits of some registers were being saved

See https://bugzilla.redhat.com/show_bug.cgi?id=487720

Could this be something similar?

Comment 20 Martin Sourada 2009-03-06 21:51:01 UTC
(In reply to comment #19)
> http://bugzilla.gnome.org/show_bug.cgi?id=574176
> 
> and
> 
> http://bugzilla.gnome.org/show_bug.cgi?id=572403
> 
> Happens to me with clearlooks, mist, fedora, ....
> 
> Also reported in http://bugzilla.gnome.org/show_bug.cgi?id=572403 that this is
> happening in other distros too.
> 
> Just a thought, but there was a problem with SDL on x86_64 related to gcc
> change and "hand tuned" assembler.  The result was that only 32 bits of some
> registers were being saved
> 
> See https://bugzilla.redhat.com/show_bug.cgi?id=487720
> 
> Could this be something similar?  

Well, seeing this happening on 64bits only and the offending address being 0xffffffffbb267030, yes, it looks like these two bugs are (at least) similar in nature. And because clearlooks usually don't directly access to widgets (usually gets info via their hint system) it might be the reason why it is unaffected. I wonder what this pointer belongs to... Does anyone know to which string the detail=3403572399 translates to (it would help to find out what part of engine code gets processed here)?

Comment 21 Jacobo Cabaleiro 2009-03-07 11:16:59 UTC
I can reproduce this easily if the first thing I do once gimp is opened is to try to acces the file menu.

So, at least for me, to reproduce:
1) Open gimp
2) Go to file menu
If I open any other menu before the File one, no hang.

Package details:
rpm -q gimp
gimp-2.6.5-2.fc11.x86_64
rpm -q gtk2
gtk2-2.15.5-1.fc11.x86_64
rpm -q glib2
glib2-2.19.10-1.fc11.x86_64
gtk-nodoka-engine-0.7.2-3.fc11.x86_64

I hope this is usefull for someone:
(gdb) bt
#0  0x000000358aa10317 in IA__g_object_get (_object=0xffffffff9b416020, first_property_name=0x70e09b "tooltip") at gobject.c:1585
#1  0x00000000005936ba in gimp_ui_manager_menu_item_select (widget=<value optimized out>, manager=0x7f059b3cb120) at gimpuimanager.c:918
#2  0x000000358aa0b8ee in IA__g_closure_invoke (closure=0x7f059b1e7520, return_value=0x0, n_param_values=1, param_values=0x7f059b1e4ee0,
    invocation_hint=0x7fffaaa40170) at gclosure.c:767
#3  0x000000358aa21ef8 in signal_emit_unlocked_R (node=0x7f059d949fd0, detail=<value optimized out>, instance=<value optimized out>,
    emission_return=<value optimized out>, instance_and_params=<value optimized out>) at gsignal.c:3244
#4  0x000000358aa232de in IA__g_signal_emit_valist (instance=0x2f5e6a0, signal_id=<value optimized out>, detail=0, var_args=0x7fffaaa40360)
    at gsignal.c:2977
#5  0x000000358aa23873 in IA__g_signal_emit (instance=0xffffffff9b416020, signal_id=7397531, detail=2862874607) at gsignal.c:3034
#6  0x00000035903586e8 in IA__gtk_menu_item_select (menu_item=<value optimized out>) at gtkmenuitem.c:795
#7  0x000000359035cec2 in gtk_menu_shell_real_select_item (menu_shell=0x2f5e5d0, menu_item=<value optimized out>) at gtkmenushell.c:1080
#8  0x000000359035ddbb in gtk_menu_shell_button_press (widget=0x2f5e5d0, event=0x7f059a57ea30) at gtkmenushell.c:598
#9  0x000000359034b713 in _gtk_marshal_BOOLEAN__BOXED (closure=0x7f059d936ba0, return_value=0x7fffaaa40690,
    n_param_values=<value optimized out>, param_values=0x7f059a66a980, invocation_hint=<value optimized out>, marshal_data=0x359035db70)
    at gtkmarshalers.c:84
#10 0x000000358aa0b8ee in IA__g_closure_invoke (closure=0x7f059d936ba0, return_value=0x7fffaaa40690, n_param_values=2,
    param_values=0x7f059a66a980, invocation_hint=0x7fffaaa40650) at gclosure.c:767
#11 0x000000358aa21bb0 in signal_emit_unlocked_R (node=0x7f059d936c10, detail=<value optimized out>, instance=<value optimized out>,
    emission_return=<value optimized out>, instance_and_params=<value optimized out>) at gsignal.c:3282
#12 0x000000358aa2319e in IA__g_signal_emit_valist (instance=0x2f5e5d0, signal_id=<value optimized out>, detail=0, var_args=0x7fffaaa40840)
    at gsignal.c:2987
#13 0x000000358aa23873 in IA__g_signal_emit (instance=0xffffffff9b416020, signal_id=7397531, detail=2862874607) at gsignal.c:3034
#14 0x000000359046b9bf in gtk_widget_event_internal (widget=0x2f5e5d0, event=0x7f059a57ea30) at gtkwidget.c:4761
#15 0x0000003590342875 in IA__gtk_propagate_event (widget=0x2f5e5d0, event=0x7f059a57ea30) at gtkmain.c:2396
#16 0x00000035903439cb in IA__gtk_main_do_event (event=0x7f059a57ea30) at gtkmain.c:1601
#17 0x0000003591a5322c in gdk_event_dispatch (source=<value optimized out>, callback=<value optimized out>, user_data=<value optimized out>)
    at gdkevents-x11.c:2364
#18 0x0000003589a3812e in g_main_dispatch (context=<value optimized out>) at gmain.c:1814
#19 IA__g_main_context_dispatch (context=<value optimized out>) at gmain.c:2367
#20 0x0000003589a3b888 in g_main_context_iterate (context=0x7f059d90cd60, block=<value optimized out>, dispatch=<value optimized out>,
    self=<value optimized out>) at gmain.c:2448
#21 0x0000003589a3bd25 in IA__g_main_loop_run (loop=0x7f059d9f6640) at gmain.c:2656
#22 0x0000000000467524 in app_run (full_prog_name=<value optimized out>, filenames=<value optimized out>,
    alternate_system_gimprc=<value optimized out>, alternate_gimprc=<value optimized out>, session_name=<value optimized out>,
    batch_interpreter=<value optimized out>, batch_commands=0x0, as_new=0, no_interface=0, no_data=0, no_fonts=0, no_splash=0, be_verbose=0,
    use_shm=1, use_cpu_accel=1, console_messages=0, use_debug_handler=0, stack_trace_mode=GIMP_STACK_TRACE_NEVER,
    pdb_compat_mode=GIMP_PDB_COMPAT_ON) at app.c:246
#23 0x0000000000468538 in main (argc=1, argv=0x7fffaaa40d78) at main.c:406

918           g_object_get (action, "tooltip", &tooltip, NULL);
(gdb) p action
$2 = (GtkAction *) 0xffffffff9b416020
(gdb) x/1xb 0xffffffff9b416020
0xffffffff9b416020:     Cannot access memory at address 0xffffffff9b416020
(gdb)

static void
909     gimp_ui_manager_menu_item_select (GtkWidget     *widget,
910                                       GimpUIManager *manager)
911     {
912       GtkAction *action = gtk_widget_get_action (widget);
913
914       if (action)
915         {
916           gchar *tooltip;
917
918           g_object_get (action, "tooltip", &tooltip, NULL);
919
920           if (tooltip)
921             {
922               g_signal_emit (manager, manager_signals[SHOW_TOOLTIP], 0,

#2  0x000000358aa0b8ee in IA__g_closure_invoke (closure=0x7f059b1e7520, return_value=0x0, n_param_values=1, param_values=0x7f059b1e4ee0,
    invocation_hint=0x7fffaaa40170) at gclosure.c:767
767           marshal (closure,
(gdb) list -
757               marshal_data = closure->notifiers[0].data;
758               marshal = (GClosureMarshal) closure->notifiers[0].notify;
759             }
760           else
761             {
762               marshal_data = NULL;
763               marshal = closure->marshal;
764             }
765           if (!in_marshal)
766             closure_invoke_notifiers (closure, PRE_NOTIFY);
(gdb) list
767           marshal (closure,
768                    return_value,
769                    n_param_values, param_values,
770                    invocation_hint,
771                    marshal_data);
772           if (!in_marshal)
773             closure_invoke_notifiers (closure, POST_NOTIFY);
774           SET (closure, in_marshal, in_marshal);
775         }
776       g_closure_unref (closure);

(gdb) up
#7  0x000000359035cec2 in gtk_menu_shell_real_select_item (menu_shell=0x2f5e5d0, menu_item=<value optimized out>) at gtkmenushell.c:1080
1080      gtk_menu_item_select (GTK_MENU_ITEM (menu_shell->active_menu_item));
(gdb) p menu_shell
$21 = (GtkMenuShell *) 0x2f5e5d0
(gdb) p active_menu_item
No symbol "active_menu_item" in current context.
(gdb) p menu_shell->active_menu_item
$22 = (GtkWidget *) 0x2f5e6a0
(gdb) p *menu_shell->active_menu_item
$23 = {object = {parent_instance = {g_type_instance = {g_class = 0x7f059bfbce00}, ref_count = 3, qdata = 0x7f059b20ffa0}, flags = 2164704},
  private_flags = 3608, state = 2 '\2', saved_state = 0 '\0', name = 0x7f059b1e74d0 "File", style = 0x7f059ad50e00, requisition = {
    width = 67, height = 23}, allocation = {x = 1, y = 1, width = 67, height = 23}, window = 0x7f059ad5a010, parent = 0x2f5e5d0}
(gdb)

Comment 22 Jacobo Cabaleiro 2009-03-07 11:31:55 UTC
I read that for some of you this is random. On my system Gimp 2.6.5-2 is now completely nonfunctional as I get this 1 out of 3 clicks on menu items while browsing main Gimp menus.

Comment 23 Martin Sourada 2009-03-07 13:41:20 UTC
(In reply to comment #21)
> 918           g_object_get (action, "tooltip", &tooltip, NULL);
> (gdb) p action
> $2 = (GtkAction *) 0xffffffff9b416020
> (gdb) x/1xb 0xffffffff9b416020
> 0xffffffff9b416020:     Cannot access memory at address 0xffffffff9b416020

Well, that seems to give more info... It suggest it might be failing when trying to draw tooltip. After some searching in the nodoka code, it seems like the only place where this could fail is:

params->ltr = !(nodoka_get_direction ((GtkWidget *) widget) == GTK_TEXT_DIR_RTL);

(there is missing check if the widget exists). But, even though this seems to expose a bug in nodoka code, the actual problem is the 0xffffffff9b416020 adress that is probably passed there.

I am not sure if adding the missing check is enough (or at the right place) to fix this issue, but worth a try:

http://koji.fedoraproject.org/koji/buildinfo?buildID=93205

Comment 24 Tom London 2009-03-07 16:21:04 UTC
Created attachment 334402 [details]
gimp crash report

As you suspected, this did not fix:


Program received signal SIGSEGV, Segmentation fault.
0x0000003b19c10317 in IA__g_object_get (_object=0xffffffffef4a78e0, 
    first_property_name=0x70e09b "tooltip") at gobject.c:1585
1585	  g_return_if_fail (G_IS_OBJECT (object));
Missing separate debuginfos, use: debuginfo-install hal-libs-0.5.12-24.20090226git.fc11.x86_64 libgcc-4.4.0-0.22.x86_64 libstdc++-4.4.0-0.22.x86_64 libtdb-1.1.3-9.fc11.x86_64
(gdb)

Comment 25 Jacobo Cabaleiro 2009-03-07 17:24:05 UTC
Mmm... I've been taking a slow look at this, but I'm not experienced enough with closures, marshallers and the like to be 100% sure of this analysis, but it seems correct.

    #0  0x000000358aa10317 in IA__g_object_get (_object=0x81f9030,
    first_property_name=0x70e09b "tooltip") at gobject.c:1585
    1585      g_return_if_fail (G_IS_OBJECT (object));
    (gdb) x/1cb _object
    0x81f9030:      Cannot access memory at address 0x81f9030
    (gdb) list -
    1575     * </example>
    1576     */
    1577    void
    1578    g_object_get (gpointer     _object,
    1579                  const gchar *first_property_name,
    1580                  ...)
    1581    {
    1582      GObject *object = _object;
    1583      va_list var_args;
    1584
That means object = _object.
    (gdb) up
    #1  0x00000000005936ba in gimp_ui_manager_menu_item_select (widget=<value 
    optimized out>, manager=0x7fee086380f0) at gimpuimanager.c:918
    918           g_object_get (action, "tooltip", &tooltip, NULL);
    (gdb) list -
    908     static void
    909     gimp_ui_manager_menu_item_select (GtkWidget     *widget,
    910                                       GimpUIManager *manager)
    911     {
    912       GtkAction *action = gtk_widget_get_action (widget);
, and object is action and action is get from widget
    (gdb) p action
    $14 = (GtkAction *) 0x81f9030
I need to get more info about the widget, but it's optimized out. We're using a marshaller to call  gimp_ui_manager_menu_item_select, which should be of type _cclosure_marshal_VOID__VOID (as manager is passed as user data). Let's check that
    (gdb) up
    #2  0x000000358aa0b8ee in IA__g_closure_invoke (closure=0x7fee07f91a70, 
    return_value=0x0, n_param_values=1, param_values=0x7fee072e3560,
        invocation_hint=0x7fff176dde50) at gclosure.c:767
    767           marshal (closure,
    (gdb) p *closure
    $19 = {ref_count = 2, meta_marshal = 0, n_guards = 0, n_fnotifiers = 0, 
    n_inotifiers = 0, in_inotify = 0, floating = 0, derivative_flag = 0,
      in_marshal = 1, is_invalid = 0, marshal = 0x465450 
    <g_cclosure_marshal_VOID__VOID@plt>, data = 0x7fee086380f0, notifiers = 0x0}
So, when calling the marshal, the param_values should be a 1 array holding the widget (instance)
    (gdb) list
    762               marshal_data = NULL;
    763               marshal = closure->marshal;
    764             }
    765           if (!in_marshal)
    766             closure_invoke_notifiers (closure, PRE_NOTIFY);
    767           marshal (closure,
    768                    return_value,
    769                    n_param_values, param_values,
    770                    invocation_hint,
    771                    marshal_data);
    (gdb) p param_values[0]
    $24 = {g_type = 39428288, data = {{v_int = 149882496, v_uint = 149882496, 
    v_long = 140660328826496, v_ulong = 140660328826496,
          v_int64 = 140660328826496, v_uint64 = 140660328826496, v_float = 
    1.43858174e-33, v_double = 6.9495436205904855e-310,
          v_pointer = 0x7fee08ef0680}, {v_int = 0, v_uint = 0, v_long = 0, 
    v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0,
          v_pointer = 0x0}}}
What type is it?
    (gdb) printf "%s\n", g_type_name(param_values[0].g_type)
    Cannot access memory at address 0xffffffff905775df
Not good. It should be a fundamental type (pointer), but it doesn't seem so:
    (gdb) x/4ub &(param_values[0].g_type)
    0x7fee072e3560: 192     160     89      2
Fundamental types are left shifted. Where's the shift?? Let's suppose it's a pointer to a widget, and let's try to get the action
    (gdb) print "%h\n", gtk_widget_get_action(param_values[0].data.v_pointer)
    $29 = (GtkAction *) 0x7fee081f9030
Our original action was: (GtkAction *) 0x81f9030 = 0x7fee081f9030 & 0x0000FFFFFFFF
    (gdb) p *(GtkAction *)(0x7fee081f9030)
    $32 = {object = {g_type_instance = {g_class = 0x259bc00}, ref_count = 5, 
    qdata = 0x7fee08218860}, private_data = 0x7fee081f9070}
And this action seems to be ok!!

So, it appears that some code in charge of type casting is incorrectly getting only the lower 32 bits of the pointer.

Comment 26 Jacobo Cabaleiro 2009-03-07 17:48:01 UTC
This is getting funny. Really funny. I put a breakpoint on gimpuimanager.c:912, to check the path of getting the action from the widget. I stepped into gtk_widget_get_action call and saw this:

   [skipped path to this point]
   (gdb) s
   507         g_object_unref (action);
   (gdb) p action
   $4 = (GtkAction *) 0x7f8fe9c1b030
   (gdb) n
   510     }
   (gdb) p action
   $5 = (GtkAction *) 0x7f8fe9c1b030
   (gdb) n
   gimp_ui_manager_menu_item_select (widget=<value optimized out>, 
    manager=0x7f8fe9dcfcf0) at gimpuimanager.c:914
   914       if (action)
   (gdb) n
   918           g_object_get (action, "tooltip", &tooltip, NULL);
   (gdb) p action
   $6 = (GtkAction *) 0xffffffffe9c1b030
And of course if I step over g_object_get, it will fail as the pointer to the action is damaged!

So the pointer got corrupted somewhere in between these shown lines. But I'm just doing just stack frame returns! ¿?¿?

Comment 27 Matthias Clasen 2009-03-08 02:51:53 UTC
This is likely miscompilation due to

gimpuimanager.c: In function ‘gimp_ui_manager_menu_item_select’:
gimpuimanager.c:912: warning: implicit declaration of function ‘gtk_widget_get_action’
gimpuimanager.c:912: warning: initialization makes pointer from integer without a cast


Don't compile with -DGTK_DISABLE_DEPRECATED if you are using deprecated functions...

Comment 28 Jacobo Cabaleiro 2009-03-08 11:01:31 UTC
I haven't custom built either GTK/GLIB or GIMP on my F11 alpha. I'm using rawhide stock versions. So this flag must be set either on GIMP spec or on GTK2 one. I'm checking.

Comment 29 Jacobo Cabaleiro 2009-03-08 11:08:29 UTC
Last build log on Koji:
http://kojipkgs.fedoraproject.org/packages/gimp/2.6.5/2.fc11/data/logs/x86_64/build.log

gcc -DHAVE_CONFIG_H -I. -I../.. -I../.. -I../.. -I../../app -I../../app -pthread -I/usr/include/gtk-2.0 -I/usr/lib64/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12   -I/usr/include -DISO_CODES_LOCATION=\"\" -DISO_CODES_LOCALEDIR=\"\" -DG_LOG_DOMAIN=\"Gimp-Widgets\" -DGIMP_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED -DGDK_MULTIHEAD_SAFE -DGTK_MULTIHEAD_SAFE  -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -Wdeclaration-after-statement -Wmissing-prototypes -Wmissing-declarations -Winit-self -Wpointer-arith -Wold-style-definition -MT gimpuimanager.o -MD -MP -MF .deps/gimpuimanager.Tpo -c -o gimpuimanager.o gimpuimanager.c

So gimpuimanager.c requires a change or we must remove the DISABLE_DEPRECATED define.

Comment 30 Nils Philippsen 2009-03-09 10:20:15 UTC
(In reply to comment #27)
> This is likely miscompilation due to
> 
> gimpuimanager.c: In function ‘gimp_ui_manager_menu_item_select’:
> gimpuimanager.c:912: warning: implicit declaration of function
> ‘gtk_widget_get_action’
> gimpuimanager.c:912: warning: initialization makes pointer from integer without
> a cast
> 
> 
> Don't compile with -DGTK_DISABLE_DEPRECATED if you are using deprecated
> functions...  

This is really a GIMP problem then. That it doesn't (seem to) crash with Clearlooks is maybe only sign of a very robust theme implementation ;-P. Anyway, changing the component back to gimp.

Comment 31 Nils Philippsen 2009-03-09 10:40:22 UTC
gimp-2.6.5-3.fc11 is building right now which has "#undef GTK_DISABLE_DEPRECATED" in its belly to get gtk_widget_get_action() declared properly.

Comment 32 Nils Philippsen 2009-03-09 10:44:56 UTC
Submitted patch upstream: http://bugzilla.gnome.org/show_bug.cgi?id=572403#c11

Comment 33 Jacobo Cabaleiro 2009-03-09 11:23:40 UTC
I've been testing the new build for 15 minutes and it is apparently working  again. Thanks.

Comment 34 Nils Philippsen 2009-03-09 12:44:50 UTC
In that case, I'll close it. Thanks everybody for your efforts in getting this fixed.

Comment 35 Tom London 2009-03-09 14:03:22 UTC
I can confirm: gimp-2.6.5-3.fc11.x86_64 makes this "work for me".

Thanks!


Note You need to log in before you can comment on or make changes to this bug.