After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 357195 - GtkFileChooser widget crasches
GtkFileChooser widget crasches
Status: RESOLVED FIXED
Product: gtk+
Classification: Platform
Component: Widget: GtkFileChooser
2.10.x
Other Windows
: Normal major
: ---
Assigned To: gtk-bugs
Federico Mena Quintero
Depends on:
Blocks:
 
 
Reported: 2006-09-22 13:50 UTC by Tomasz Jankowski
Modified: 2006-10-03 16:46 UTC
See Also:
GNOME target: ---
GNOME version: 2.13/2.14



Description Tomasz Jankowski 2006-09-22 13:50:32 UTC
GtkFileChooser widget in GTK+ v2.10.3 for win32 always crash on this platform. This is output from gtk-demo.exe:

Microsoft Windows XP [Wersja 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\GTK+\bin>gtk-demo.exe

(gtk-demo.exe:1368): Gtk-WARNING **: file_system_win32=01458F20 still has handle
=010CC270 at finalization which is NOT CANCELLED!

(gtk-demo.exe:1368): Gtk-WARNING **: file_system_win32=01458F20 still has handle
=010CC6A8 at finalization which is NOT CANCELLED!

(gtk-demo.exe:1368): Gtk-WARNING **: file_system_win32=01458F20 still has handle
=010CC9C0 at finalization which is NOT CANCELLED!

(gtk-demo.exe:1368): Gtk-WARNING **: file_system_win32=01458F20 still has handle
=010CC8D0 at finalization which is NOT CANCELLED!

(gtk-demo.exe:1368): Gtk-WARNING **: file_system_win32=010CA8E0 still has handle
=010CC7F8 at finalization which is NOT CANCELLED!

(gtk-demo.exe:1368): Gtk-WARNING **: file_system_win32=010CA8E0 still has handle
=010CC888 at finalization which is NOT CANCELLED!

(gtk-demo.exe:1368): Gtk-WARNING **: file_system_win32=010CA8E0 still has handle
=010CC810 at finalization which is NOT CANCELLED!

(gtk-demo.exe:1368): Gtk-WARNING **: file_system_win32=010CA8E0 still has handle
=010CC7C8 at finalization which is NOT CANCELLED!

C:\GTK+\bin>

IAre you possible to fix it in v2.10.4?
Comment 1 Tomasz Jankowski 2006-09-22 19:11:22 UTC
Morover I can say, that it concer to all types of GtkFileChooser widget: opening files, saving files, selecting folders and creating folders.
Comment 2 Tomasz Jankowski 2006-09-25 16:59:41 UTC
Error occurs only when I try to destroy widget or it's parent.
Comment 3 Tor Lillqvist 2006-09-25 17:34:28 UTC
I have seen these warnings, too. gtkfilesystemwin32.c is supposed to match gtkfilesystemunix.c as closely as possible. Does the corresponding warning occur on Unix? (You you really get a crash, btw? Have you tried debugging it and see where it crashes?)

It is not entirely clear to me whether this warning is supposed to mean something like "this should never happen, but I'll try to continue anyway" or whether it just means "the author doesn't fully understand why this happens, but things should work fine anyway"...

This hopefully is obvious, but anyway: To see the actual differences between gtkfilesystemunix.c and gtkfilesystemwin32.c, do:

sed -e 's/Win32/Unix/' -e 's/WIN32/UNIX/' -e 's/win32/unix/' <gtkfilesystemwin32.c >1.c
diff -pbu gtkfilesystemunix.c 1.c

There shouldn't be any difference that would explain why the warning would occur only on Win32, I think?
Comment 4 Tomasz Jankowski 2006-09-26 15:34:36 UTC
Again my english knowledge makes me bad...

Yes I tried to debug gtk-demo.exe, this is backtrace generated by GDB for windows:

(gdb) bt
  • #0 _libmsvcrt_a_iname

i'm not sure if this will be helpful... :|

This occured when I clicked cross button it title bar of window named "Pickers". moreover I tested it again in my own code and it stall crash, when I'm calling gtk_widget_destroy () on some GtkFileChooser based widget or it's parent.

I'll compare those two files, when I back home...
Comment 5 Philippe Gauthier 2006-09-27 16:59:18 UTC
I can reproduce the crash everytime with the save versions of Windows and Gtk+ by using the Pickers demo from gtk-demo. Here is the corresponding backtrace:

(7a0.754): Access violation - code c0000005 (first chance)
First chance exceptions are reported before any exception handling.
This exception may be expected and handled.
eax=00000000 ebx=00000000 ecx=00000000 edx=00000000 esi=00000000 edi=00000000
eip=77c478c0 esp=0022f49c ebp=0022f818 iopl=0         nv up ei pl zr na po nc
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00010246
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for C:\W
INDOWS\system32\MSVCRT.dll -
MSVCRT!strlen+0x20:
77c478c0 8b01             mov     eax,[ecx]         ds:0023:00000000=????????
0:000> k
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for C:\P
rogram Files\Evolution\bin\libglib-2.0-0.dll -
ChildEBP RetAddr
WARNING: Stack unwind information not available. Following frames may be wrong.
0022f818 004ccc47 MSVCRT!strlen+0x20
0022f838 004c37f4 libglib_2_0_0!g_win32_locale_filename_from_utf8+0x1d37
0022f858 004b3816 libglib_2_0_0!g_vasprintf+0x24
0022f878 004a482e libglib_2_0_0!g_strdup_vprintf+0x26
0022fce8 004a4a36 libglib_2_0_0!g_logv+0x1fe
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for C:\P
rogram Files\Evolution\bin\libgobject-2.0-0.dll -
0022fd08 00620e27 libglib_2_0_0!g_log+0x26
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for C:\P
rogram Files\Evolution\bin\libgtk-win32-2.0-0.dll -
0022fd38 00949f42 libgobject_2_0_0!g_type_check_instance_cast+0x107
0022fd68 006077a9 libgtk_win32_2_0_0!gtk_file_system_win32_path_compare+0x2b2
0022fd98 0094a50b libgobject_2_0_0!g_object_unref+0x159
0022fdc8 0049d8f7 libgtk_win32_2_0_0!gtk_file_system_win32_path_compare+0x87b
0022fe18 0049edcb libglib_2_0_0!g_main_context_dispatch+0x197
0022fe58 0049efaa libglib_2_0_0!g_main_context_acquire+0x3db
0022fe88 008043be libglib_2_0_0!g_main_loop_run+0x16a
*** ERROR: Module load completed but symbols could not be loaded for C:\Program
Files\Evolution\bin\gtk-demo.exe
0022fed8 00413b68 libgtk_win32_2_0_0!gtk_main+0x9e
0022ff78 004011e7 gtk_demo+0x13b68
0022ffb0 00401238 gtk_demo+0x11e7
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for C:\W
INDOWS\system32\kernel32.dll -
0022ffc0 7c816fd7 gtk_demo+0x1238
0022fff0 00000000 kernel32!RegisterWaitForInputIdle+0x49
Comment 6 Tomasz Jankowski 2006-10-03 15:11:36 UTC
This error doesn't occur on GTK+ 2.10.4 for win32 for me any more. Can some check it on his machine and close this bug report, if this bug won't generate any problems?
Comment 7 Philippe Gauthier 2006-10-03 16:29:45 UTC
Gtk+ 2.10.4 works correctly here too. I suggest to close this bug.
Comment 8 Matthias Clasen 2006-10-03 16:46:12 UTC
Thanks for confirming.