Bug 773462 - gtk programs crash in Windows32 after deploying with DLL's from mingw32-gtk
Summary: gtk programs crash in Windows32 after deploying with DLL's from mingw32-gtk
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: mingw32-gtk2
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Erik van Pienbroek
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2012-01-11 21:29 UTC by Dov Grobgeld
Modified: 2012-01-31 20:56 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2012-01-31 20:56:55 UTC


Attachments (Terms of Use)
Example program illustrating the bug (1.22 KB, text/x-csrc)
2012-01-12 19:02 UTC, Dov Grobgeld
no flags Details
compilation script for test program (1011 bytes, application/x-sh)
2012-01-12 19:03 UTC, Dov Grobgeld
no flags Details
build win32 runtime environment for example program (1.57 KB, application/x-sh)
2012-01-12 19:11 UTC, Dov Grobgeld
no flags Details

Description Dov Grobgeld 2012-01-11 21:29:41 UTC
Description of problem:

After compiling a program against mingw32-gtk+ and deploying it in a windows XP box with the ming32-gtk+, it randomly crashes after within a GtkFileChooserDialog.

As a comparison I downloaded gtk+-bundle_2.24.8-20111122_win32.zip and compiled and deployed with this version, which eliminated the bug.

Version-Release number of selected component (if applicable):

mingw32-gtk2-2.24.8-2.fc17_cross.noarch

How reproducible:

The gtk program crashes (almost) every time I click on a bookmark in the GtkFileChooserDialog and in random other places.

Steps to Reproduce:
1. Create a gtk program that pops up a GtkFileChooserDialog.
2. Cross compile.
3. Deploy and run on windows
  
Actual results:

After interacting with the Dialog the program crashes.

Expected results:

No crash.

Additional info:

If needed I can create a minimum example including an example program, and a script compiling and creating a zip file for deployment.

Comment 1 Thomas Sailer 2012-01-12 10:29:05 UTC
This does not seem to apply to a package from the fedora project.

Our current rawhide package would be mingw32-gtk2-2.24.8-1.fc17.noarch

Comment 2 Erik van Pienbroek 2012-01-12 11:18:41 UTC
This package is from the mingw-w64 testing repo which contains packages which will be merged back to Fedora when the legal approval for mingw-w64 is in: https://fedoraproject.org/wiki/MinGW/CrossCompilerFramework

As bugreports for packages in this testing repo are appreciated (we want to have them fixed before everything is merged back to Fedora) I'm reopening this bug for now.

@Reporter: a minimal testcase would sure be welcome to investigate this issue! That way we can also integrate it in our testsuite to make sure this bug doesn't re-appear in the future: http://fedoraproject.org/wiki/MinGW/Testsuite

If you could also manage to get a gdb backtrace that would be really helpful as well (the mingw32-gdb package contains a gdb.exe)

Comment 3 Dov Grobgeld 2012-01-12 19:02:57 UTC
Created attachment 552470 [details]
Example program illustrating the bug

Comment 4 Dov Grobgeld 2012-01-12 19:03:48 UTC
Created attachment 552471 [details]
compilation script for test program

Comment 5 Dov Grobgeld 2012-01-12 19:11:09 UTC
Created attachment 552479 [details]
build win32 runtime environment for example program

I have attached three files illustrating the bug.

To reproduce do the following:

1. Save the three files in a directory.
2. Run ./compile.sh to compile.
3. Run ./build-win32.sh to build the win32 runtime environment
4. Copy the run time environment to a windows box and run test-gtk-dialog.exe
5. Press the open button.
6. Repeatedly press shortcuts and drives in the right hand margin until program crashes.

Unfortunately gdb does not give much info about the source of the crash. For that I need a glib and gtk libraries with debug info. In any case here is the gdb trace:

(gdb) run
Starting program: h:\dov\gtk-dialog\win32\bin/test-gtk-dialog.exe
[New Thread 2108.0x49c]
[New Thread 2108.0x850]
[New Thread 2108.0x7d8]
[New Thread 2108.0x5f8]
[New Thread 2108.0x5f4]

Program received signal SIGSEGV, Segmentation fault.
0x61930dcc in ?? ()
   from h:\dov\github\gtk-dialog\win32\bin\libgtk-win32-2.0-0.dll
(gdb) where
#0  0x61930dcc in ?? ()
   from h:\dov\github\gtk-dialog\win32\bin\libgtk-win32-2.0-0.dll
#1  0x00000000 in ?? ()

Comment 6 Erik van Pienbroek 2012-01-12 19:12:34 UTC
Thank you for the testcase!
With it I managed to reproduce the crash.
Investigating now..

Comment 7 Erik van Pienbroek 2012-01-12 19:42:17 UTC
Here's a proper gdb backtrace (created by placing the .dll.debug files from the mingw32-glib-debuginfo and mingw32-gtk2-debuginfo packages in the same folder as the other .dll files):

C:\Documents and Settings\Erik van Pienbroek\Desktop\mingw>gdb test-gtk-dialog.e
xe
GNU gdb (GDB) 7.3
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-w64-mingw32".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from C:\Documents and Settings\Erik van Pienbroek\Desktop\mingw/
test-gtk-dialog.exe...done.
(gdb) r
Starting program: C:\Documents and Settings\Erik van Pienbroek\Desktop\mingw/tes
t-gtk-dialog.exe
[New Thread 188.0xad4]
warning: section .gnu_debuglink not found in C:\Documents and Settings\Erik van
Pienbroek\Desktop\mingw\libgobject-2.0-0.dll.debug
warning: section .gnu_debuglink not found in C:\Documents and Settings\Erik van
Pienbroek\Desktop\mingw\libglib-2.0-0.dll.debug
warning: section .gnu_debuglink not found in C:\Documents and Settings\Erik van
Pienbroek\Desktop\mingw\libgtk-win32-2.0-0.dll.debug
warning: section .gnu_debuglink not found in C:\Documents and Settings\Erik van
Pienbroek\Desktop\mingw\libgdk-win32-2.0-0.dll.debug
warning: section .gnu_debuglink not found in C:\Documents and Settings\Erik van
Pienbroek\Desktop\mingw\libgio-2.0-0.dll.debug
warning: section .gnu_debuglink not found in C:\Documents and Settings\Erik van
Pienbroek\Desktop\mingw\libgmodule-2.0-0.dll.debug
[New Thread 188.0xb4c]
[New Thread 188.0xac8]
[New Thread 188.0x3d4]
[New Thread 188.0xba4]

Program received signal SIGSEGV, Segmentation fault.
g_thread_xp_WakeConditionVariable (cond=0xb98a50)
    at ../../glib/gthread-win32.c:871
871     ../../glib/gthread-win32.c: No such file or directory.
        in ../../glib/gthread-win32.c
(gdb) bt
#0  g_thread_xp_WakeConditionVariable (cond=0xb98a50)
    at ../../glib/gthread-win32.c:871
#1  0x6862bcd0 in g_cond_signal (cond=0xb98a50)
    at ../../glib/gthread-win32.c:288
#2  0x685c5331 in g_async_queue_push_sorted_unlocked (queue=0xb98a48,
    data=0xbf3d08, func=0x6d5aeb60 <g_io_job_compare>, user_data=0x0)
    at ../../glib/gasyncqueue.c:403
#3  0x686132bd in g_thread_pool_queue_push_unlocked (data=0xbf3d08,
    pool=0xb989f8) at ../../glib/gthreadpool.c:132
#4  g_thread_pool_push (pool=0xb989f8, data=0xbf3d08, error=0x0)
    at ../../glib/gthreadpool.c:575
#5  0x6d5be3e2 in g_simple_async_result_run_in_thread (simple=0xb75e38,
    func=0x6d594a50 <query_info_async_thread>, io_priority=0,
    cancellable=0xb56f20) at ../../gio/gsimpleasyncresult.c:883
#6  0x6d592b90 in g_file_real_query_info_async (file=0xb51cc0,
    attributes=0x61a77234 "standard::display-name,standard::is-hidden,standard::
is-backup", flags=G_FILE_QUERY_INFO_NONE, io_priority=0,
    cancellable=0xb56f20, callback=0x61807d60 <query_info_callback>,
    user_data=0xc0a9a0) at ../../gio/gfile.c:4864
#7  0x61809b5a in _gtk_file_system_get_info (file_system=0xb569e0,
    file=0xb51cc0,
    attributes=0x61a77234 "standard::display-name,standard::is-hidden,standard::
is-backup", callback=0x61881b70 <gtk_path_bar_get_info_callback>,
    data=0xc0d2b8) at ../../gtk/gtkfilesystem.c:931
#8  0x61882fcb in _gtk_path_bar_set_file (path_bar=0xb57f00, file=0xb51cc0,
    keep_trail=1, error=0x0) at ../../gtk/gtkpathbar.c:1728
#9  0x617ffd3d in update_current_folder_get_info_cb (cancellable=0xbd8500,
    info=0xb54720, error=0x0, user_data=0xbe9168)
    at ../../gtk/gtkfilechooserdefault.c:7112
#10 0x61807db7 in query_info_callback (source_object=0xb51cc0,
    result=0xb75c78, user_data=0xbf4070) at ../../gtk/gtkfilesystem.c:894
#11 0x6d5be142 in g_simple_async_result_complete (simple=0xb75c78)
    at ../../gio/gsimpleasyncresult.c:744
#12 0x6d5be1b4 in complete_in_idle_cb_for_thread (_data=0xb90e20)
    at ../../gio/gsimpleasyncresult.c:812
#13 0x685f1aba in g_main_dispatch (context=0xb62550)
    at ../../glib/gmain.c:2513
#14 g_main_context_dispatch (context=0xb62550) at ../../glib/gmain.c:3050
#15 0x685f1e88 in g_main_context_iterate (dispatch=1, block=1751113872,
    context=<optimized out>, self=<optimized out>) at ../../glib/gmain.c:3121
#16 g_main_context_iterate (context=<optimized out>, block=1751113872,
    dispatch=1, self=Unhandled dwarf expression opcode 0xfa
) at ../../glib/gmain.c:3058
#17 0x685f22f7 in g_main_loop_run (loop=0xbf59d8) at ../../glib/gmain.c:3315
#18 0x617d43a1 in gtk_dialog_run (dialog=0xb7b008)
    at ../../gtk/gtkdialog.c:1094
#19 0x004015a9 in my_open_dialog (self=0xb72018, user_data=0x0)
    at test-gtk-dialog.c:11
#20 0x63a45dbc in g_closure_invoke (closure=0xb80f10, return_value=0x0,
    n_param_values=1, param_values=0xb546d8, invocation_hint=0x22f4bc)
    at ../../gobject/gclosure.c:774
#21 0x63a557d0 in signal_emit_unlocked_R (node=<optimized out>, detail=0,
    instance=0xb72018, emission_return=0x0, instance_and_params=0xb546d8)
    at ../../gobject/gsignal.c:3302
#22 0x63a5c94a in g_signal_emit_valist (instance=0xb72018, signal_id=92,
    detail=0, var_args=0x22f66c "\264\367eh\001")
    at ../../gobject/gsignal.c:3033
#23 0x63a5cab7 in g_signal_emit (instance=0xb72018, signal_id=92, detail=0)
    at ../../gobject/gsignal.c:3090
#24 0x617a4a19 in gtk_button_clicked (button=0xb72018)
    at ../../gtk/gtkbutton.c:1128
#25 0x617a5b1d in gtk_real_button_released (button=0xb72018)
    at ../../gtk/gtkbutton.c:1725
#26 gtk_real_button_released (button=0xb72018) at ../../gtk/gtkbutton.c:1715
#27 0x63a45dbc in g_closure_invoke (closure=0xb6eb90, return_value=0x0,
    n_param_values=1, param_values=0xb546f0, invocation_hint=0x22f78c)
    at ../../gobject/gclosure.c:774
#28 0x63a552f6 in signal_emit_unlocked_R (node=<optimized out>, detail=0,
    instance=0xb72018, emission_return=0x0, instance_and_params=0xb546f0)
    at ../../gobject/gsignal.c:3232
#29 0x63a5c94a in g_signal_emit_valist (instance=0xb72018, signal_id=91,
    detail=0, var_args=0x22f93c "8\023\267") at ../../gobject/gsignal.c:3033
#30 0x63a5cab7 in g_signal_emit (instance=0xb72018, signal_id=91, detail=0)
    at ../../gobject/gsignal.c:3090
#31 0x617a4979 in gtk_button_released (button=0xb72018)
    at ../../gtk/gtkbutton.c:1120
#32 0x617a49a2 in gtk_button_button_release (widget=0xb72018, event=0xb70210)
    at ../../gtk/gtkbutton.c:1617
#33 0x6185222f in _gtk_marshal_BOOLEAN__BOXED (closure=0xb65d38,
    return_value=0x22fab0, n_param_values=2, param_values=0xb71338,
    invocation_hint=0x22fa9c, marshal_data=0x617a4980)
    at ../../gtk/gtkmarshalers.c:86
#34 0x63a45dbc in g_closure_invoke (closure=0xb65d38, return_value=0x22fab0,
    n_param_values=2, param_values=0xb71338, invocation_hint=0x22fa9c)
    at ../../gobject/gclosure.c:774
#35 0x63a55cbb in signal_emit_unlocked_R (node=<optimized out>, detail=0,
    instance=0xb72018, emission_return=0x22fbe8, instance_and_params=0xb71338)
    at ../../gobject/gsignal.c:3340
#36 0x63a5c874 in g_signal_emit_valist (instance=0xb72018, signal_id=33,
    detail=0, var_args=<optimized out>) at ../../gobject/gsignal.c:3043
#37 0x63a5cab7 in g_signal_emit (instance=0xb72018, signal_id=33, detail=0)
    at ../../gobject/gsignal.c:3090
#38 0x6196e7a3 in gtk_widget_event_internal (widget=0xb72018, event=0xb70210)
    at ../../gtk/gtkwidget.c:4984
#39 0x618505ff in gtk_propagate_event (widget=0xb72018, event=0xb70210)
    at ../../gtk/gtkmain.c:2489
#40 0x6185092c in gtk_main_do_event (event=0xb70210)
    at ../../gtk/gtkmain.c:1684
#41 0x6c37d9a7 in gdk_event_dispatch (source=0xb62478, callback=0,
    user_data=0x0) at ../../../gdk/win32/gdkevents-win32.c:3602
#42 0x685f1aba in g_main_dispatch (context=0xb62550)
    at ../../glib/gmain.c:2513
#43 g_main_context_dispatch (context=0xb62550) at ../../glib/gmain.c:3050
#44 0x685f1e88 in g_main_context_iterate (dispatch=1, block=1751113872,
    context=<optimized out>, self=<optimized out>) at ../../glib/gmain.c:3121
#45 g_main_context_iterate (context=<optimized out>, block=1751113872,
    dispatch=1, self=Unhandled dwarf expression opcode 0xfa
) at ../../glib/gmain.c:3058
#46 0x685f22f7 in g_main_loop_run (loop=0xb8e340) at ../../glib/gmain.c:3315
#47 0x6184f96f in gtk_main () at ../../gtk/gtkmain.c:1256
#48 0x0040174f in main (argc=1, argv=0x3e27d0) at test-gtk-dialog.c:32
(gdb)

In a different attempt I got a different stacktrace with additional warnings about heap corruption:

C:\Documents and Settings\Erik van Pienbroek\Desktop\mingw>gdb test-gtk-dialog.e
xe
GNU gdb (GDB) 7.3
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-w64-mingw32".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from C:\Documents and Settings\Erik van Pienbroek\Desktop\mingw/
test-gtk-dialog.exe...done.
(gdb) r
Starting program: C:\Documents and Settings\Erik van Pienbroek\Desktop\mingw/tes
t-gtk-dialog.exe
[New Thread 3000.0xbbc]
warning: section .gnu_debuglink not found in C:\Documents and Settings\Erik van
Pienbroek\Desktop\mingw\libgobject-2.0-0.dll.debug
warning: section .gnu_debuglink not found in C:\Documents and Settings\Erik van
Pienbroek\Desktop\mingw\libglib-2.0-0.dll.debug
warning: section .gnu_debuglink not found in C:\Documents and Settings\Erik van
Pienbroek\Desktop\mingw\libgtk-win32-2.0-0.dll.debug
warning: section .gnu_debuglink not found in C:\Documents and Settings\Erik van
Pienbroek\Desktop\mingw\libgdk-win32-2.0-0.dll.debug
warning: section .gnu_debuglink not found in C:\Documents and Settings\Erik van
Pienbroek\Desktop\mingw\libgio-2.0-0.dll.debug
warning: section .gnu_debuglink not found in C:\Documents and Settings\Erik van
Pienbroek\Desktop\mingw\libgmodule-2.0-0.dll.debug
[New Thread 3000.0x2fc]
[New Thread 3000.0x230]
[New Thread 3000.0xbe8]
[New Thread 3000.0xbec]
[New Thread 3000.0xbf0]
warning: HEAP[test-gtk-dialog.exe]:
warning: Heap block at 00BB7D38 modified at 00BB7D44 past requested size of 4


Program received signal SIGTRAP, Trace/breakpoint trap.
0x7c90120f in ntdll!DbgUiConnectToDbg () from C:\WINDOWS\system32\ntdll.dll
(gdb) bt
#0  0x7c90120f in ntdll!DbgUiConnectToDbg ()
   from C:\WINDOWS\system32\ntdll.dll
#1  0x7c96e139 in ntdll!RtlpNtMakeTemporaryKey ()
   from C:\WINDOWS\system32\ntdll.dll
#2  0x7c95f38c in ntdll!RtlZeroHeap () from C:\WINDOWS\system32\ntdll.dll
#3  0x00bb7d38 in ?? ()
#4  0x7c96e507 in ntdll!RtlpNtMakeTemporaryKey ()
   from C:\WINDOWS\system32\ntdll.dll
#5  0x7c96f75e in ntdll!RtlpNtMakeTemporaryKey ()
   from C:\WINDOWS\system32\ntdll.dll
#6  0x7c94bc4c in ntdll!LdrFindEntryForAddress ()
   from C:\WINDOWS\system32\ntdll.dll
#7  0x003e0000 in ?? ()
#8  0x7c927573 in ntdll!RtlPcToFileHeader ()
   from C:\WINDOWS\system32\ntdll.dll
#9  0x77c2c2de in msvcrt!free () from C:\WINDOWS\system32\msvcrt.dll
#10 0x003e0000 in ?? ()
#11 0x6192f0e7 in gtk_tree_path_free (path=0xbd7588)
    at ../../gtk/gtktreemodel.c:659
#12 0x6193149d in gtk_tree_row_reference_free (reference=0xbd6538)
    at ../../gtk/gtktreemodel.c:2130
#13 0x61951671 in gtk_tree_view_real_set_cursor (tree_view=0xbd3608,
    path=0xbd7520, clear_and_select=4, clamp_node=1)
    at ../../gtk/gtktreeview.c:12557
#14 0x619554d0 in gtk_tree_view_button_press (widget=0xbd3608, event=0xb708f0)
    at ../../gtk/gtktreeview.c:2797
#15 0x6185222f in _gtk_marshal_BOOLEAN__BOXED (closure=0xb65a90,
    return_value=0x22f240, n_param_values=2, param_values=0xbb0f40,
    invocation_hint=0x22f22c, marshal_data=0x61954ca0)
    at ../../gtk/gtkmarshalers.c:86
#16 0x63a45dbc in g_closure_invoke (closure=0xb65a90, return_value=0x22f240,
    n_param_values=2, param_values=0xbb0f40, invocation_hint=0x22f22c)
    at ../../gobject/gclosure.c:774
#17 0x63a55cbb in signal_emit_unlocked_R (node=<optimized out>, detail=0,
    instance=0xbd3608, emission_return=0x22f378, instance_and_params=0xbb0f40)
    at ../../gobject/gsignal.c:3340
#18 0x63a5c874 in g_signal_emit_valist (instance=0xbd3608, signal_id=32,
    detail=0, var_args=<optimized out>) at ../../gobject/gsignal.c:3043
#19 0x63a5cab7 in g_signal_emit (instance=0xbd3608, signal_id=32, detail=0)
    at ../../gobject/gsignal.c:3090
#20 0x6196e7a3 in gtk_widget_event_internal (widget=0xbd3608, event=0xb708f0)
    at ../../gtk/gtkwidget.c:4984
#21 0x618505ff in gtk_propagate_event (widget=0xbd3608, event=0xb708f0)
    at ../../gtk/gtkmain.c:2489
#22 0x6185092c in gtk_main_do_event (event=0xb708f0)
    at ../../gtk/gtkmain.c:1684
#23 0x6c37d9a7 in gdk_event_dispatch (source=0xb62478, callback=0,
    user_data=0x0) at ../../../gdk/win32/gdkevents-win32.c:3602
#24 0x685f1aba in g_main_dispatch (context=0xb62550)
    at ../../glib/gmain.c:2513
#25 g_main_context_dispatch (context=0xb62550) at ../../glib/gmain.c:3050
#26 0x685f1e88 in g_main_context_iterate (dispatch=1, block=1751113872,
    context=<optimized out>, self=<optimized out>) at ../../glib/gmain.c:3121
#27 g_main_context_iterate (context=<optimized out>, block=1751113872,
    dispatch=1, self=Unhandled dwarf expression opcode 0xfa
) at ../../glib/gmain.c:3058
#28 0x685f22f7 in g_main_loop_run (loop=0xbfb308) at ../../glib/gmain.c:3315
#29 0x617d43a1 in gtk_dialog_run (dialog=0xb7a000)
    at ../../gtk/gtkdialog.c:1094
#30 0x004015a9 in my_open_dialog (self=0xb72018, user_data=0x0)
    at test-gtk-dialog.c:11
#31 0x63a45dbc in g_closure_invoke (closure=0xb80f10, return_value=0x0,
    n_param_values=1, param_values=0xb54cc0, invocation_hint=0x22f77c)
    at ../../gobject/gclosure.c:774
#32 0x63a557d0 in signal_emit_unlocked_R (node=<optimized out>, detail=0,
    instance=0xb72018, emission_return=0x0, instance_and_params=0xb54cc0)
    at ../../gobject/gsignal.c:3302
#33 0x63a5c94a in g_signal_emit_valist (instance=0xb72018, signal_id=92,
    detail=0, var_args=0x22f92c "\030") at ../../gobject/gsignal.c:3033
#34 0x63a5cab7 in g_signal_emit (instance=0xb72018, signal_id=92, detail=0)
    at ../../gobject/gsignal.c:3090
#35 0x617a4a19 in gtk_button_clicked (button=0xb72018)
    at ../../gtk/gtkbutton.c:1128
#36 0x617a59e6 in gtk_button_finish_activate (button=0xb72018, do_it=1)
    at ../../gtk/gtkbutton.c:1803
#37 0x617a5a6a in gtk_button_key_release (widget=0xb72018, event=0xb70160)
    at ../../gtk/gtkbutton.c:1654
#38 0x6185222f in _gtk_marshal_BOOLEAN__BOXED (closure=0xb66450,
    return_value=0x22fab0, n_param_values=2, param_values=0xb712d8,
    invocation_hint=0x22fa9c, marshal_data=0x617a5a30)
    at ../../gtk/gtkmarshalers.c:86
#39 0x63a45dbc in g_closure_invoke (closure=0xb66450, return_value=0x22fab0,
    n_param_values=2, param_values=0xb712d8, invocation_hint=0x22fa9c)
    at ../../gobject/gclosure.c:774
#40 0x63a55cbb in signal_emit_unlocked_R (node=<optimized out>, detail=0,
    instance=0xb72018, emission_return=0x22fbe8, instance_and_params=0xb712d8)
    at ../../gobject/gsignal.c:3340
#41 0x63a5c874 in g_signal_emit_valist (instance=0xb72018, signal_id=42,
    detail=0, var_args=<optimized out>) at ../../gobject/gsignal.c:3043
#42 0x63a5cab7 in g_signal_emit (instance=0xb72018, signal_id=42, detail=0)
    at ../../gobject/gsignal.c:3090
#43 0x6196e7a3 in gtk_widget_event_internal (widget=0xb72018, event=0xb70160)
    at ../../gtk/gtkwidget.c:4984
#44 0x618506aa in gtk_propagate_event (widget=0xb72018, event=0xb70160)
    at ../../gtk/gtkmain.c:2455
#45 0x6185092c in gtk_main_do_event (event=0xb70160)
    at ../../gtk/gtkmain.c:1684
#46 0x6c37d9a7 in gdk_event_dispatch (source=0xb62478, callback=0,
    user_data=0x0) at ../../../gdk/win32/gdkevents-win32.c:3602
#47 0x685f1aba in g_main_dispatch (context=0xb62550)
    at ../../glib/gmain.c:2513
#48 g_main_context_dispatch (context=0xb62550) at ../../glib/gmain.c:3050
#49 0x685f1e88 in g_main_context_iterate (dispatch=1, block=1751113872,
    context=<optimized out>, self=<optimized out>) at ../../glib/gmain.c:3121
#50 g_main_context_iterate (context=<optimized out>, block=1751113872,
    dispatch=1, self=Unhandled dwarf expression opcode 0xfa
) at ../../glib/gmain.c:3058
#51 0x685f22f7 in g_main_loop_run (loop=0xb8e340) at ../../glib/gmain.c:3315
#52 0x6184f96f in gtk_main () at ../../gtk/gtkmain.c:1256
#53 0x0040174f in main (argc=1, argv=0x3e27d0) at test-gtk-dialog.c:32

Comment 8 Erik van Pienbroek 2012-01-12 19:53:50 UTC
This bug also exists in the package mingw32-gtk2-2.24.8-1.fc17 (which is currently in Fedora rawhide and uses the mingw.org toolchain) so this does look like a generic win32 issue

Comment 9 Erik van Pienbroek 2012-01-12 20:00:05 UTC
I suspect this GLib bug to be the culprit: https://bugzilla.gnome.org/show_bug.cgi?id=666296
This is already fixed in glib 2.31.6. As we're currently still using glib 2.31.2 (in both Fedora and the mingw-w64 testing repo) now will be a good time to update mingw32-glib2 to the latest available version.

Comment 10 Erik van Pienbroek 2012-01-12 20:06:38 UTC
This GLib bug may even be more interesting: https://bugzilla.gnome.org/show_bug.cgi?id=666551
There they explicitly mention the GtkFileChooser. That issue should be fixed in Glib version 2.31.8 (which is the latest available version) and I'm just about to push an update to that version (to both Fedora and the mingw-w64 testing repo)

Comment 11 Dov Grobgeld 2012-01-20 09:26:52 UTC
Any progress with the preparation of the new packages?

Comment 12 Erik van Pienbroek 2012-01-20 14:47:58 UTC
In the Fedora rawhide repository a new mingw32-glib2 package was pushed.

Some days ago a mass rebuild was done against gcc 4.7. For the mingw-w64 testing repository we also updated to the latest mingw-w64 trunk snapshot before rebuilding all packages. Unfortunately during this mass rebuild several packages failed to build. The mingw-glib2 package was one of them. See http://lists.fedoraproject.org/pipermail/mingw/2012-January/004386.html for more details about that.

A fix for the mingw-glib2 build failure (and various other failures) was pushed to mingw-w64 trunk yesterday. Right now I'm running another mass rebuild to find out if the mingw-glib2 build failure is really resolved now. Once the new packages are ready I'll leave a comment in this bugreport.

Comment 13 Erik van Pienbroek 2012-01-31 13:42:17 UTC
New packages have been pushed to the testing repo. With these packages I wasn't able to reproduce the crash anymore. Is the issue resolved for you if you update to these packages?

Here are the packages I've used:
mingw32-atk-2.2.0-2.fc17_cross.noarch
mingw32-cairo-1.11.2-2.fc17_cross.noarch
mingw32-gdk-pixbuf-2.24.0-3.fc17_cross.noarch
mingw32-glib2-2.31.12-1.fc17_cross.noarch
mingw32-gtk2-2.24.9-2.fc17_cross.noarch
mingw32-libffi-3.0.10rc8-2.fc17_cross.noarch
mingw32-pango-1.29.4-2.fc17_cross.noarch

Comment 14 Dov Grobgeld 2012-01-31 20:46:57 UTC
I just tested with two of my programs including a multi-thread program that was unusable with the previous mingw32 versions, and everything is stable now. Thus the problem seems to have been resolved. Thanks a lot!!

Comment 15 Erik van Pienbroek 2012-01-31 20:56:55 UTC
You're welcome. Closing bug


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