asctime/Ev2W

Gtk crash when creating Task / Memo etc from existing

Closed this issue · 1 comments

For example, when creating a Task from a Message we get backtrace:

(evolution.exe:2388): Gdk-CRITICAL **: 17:27:59.823: gdk_property_delete: assert
ion 'window != NULL' failed
(evolution.exe:2388): evolution-mail-DEBUG: 17:28:04.025:
Message ID selected: 97927, cursor: 98008, total selected: 1

(evolution.exe:2388): Gdk-CRITICAL **: 17:28:04.301: gdk_property_delete: assert
ion 'window != NULL' failed
[New Thread 2388.0x854]
[New Thread 2388.0x3aac]

(evolution.exe:2388): GLib-CRITICAL **: 17:28:15.379: g_main_context_push_thread
_default: assertion 'acquired_context' failed

(evolution.exe:2388): GLib-CRITICAL **: 17:28:15.385: g_main_context_push_thread
_default: assertion 'acquired_context' failed
**
GLib:ERROR:../glib-2.72.0/glib/gmain.c:3489:g_main_context_acquire: assertion fa
iled: (context->owner_count == 0)
Bail out! GLib:ERROR:../glib-2.72.0/glib/gmain.c:3489:g_main_context_acquire: as
sertion failed: (context->owner_count == 0)

Thread 1 received signal SIGTRAP, Trace/breakpoint trap.
0x00007ffb86f2b503 in KERNELBASE!DebugBreak ()
   from C:\Windows\System32\KernelBase.dll
(gdb) bt full
#0  0x00007ffb86f2b503 in KERNELBASE!DebugBreak ()
   from C:\Windows\System32\KernelBase.dll
No symbol table info available.
#1  0x0000000064a353a8 in g_abort ()
   from mingw64\bin\libglib-2.0-0.dll
No symbol table info available.
#2  0x0000000064a21345 in g_assertion_message ()
   from mingw64\bin\libglib-2.0-0.dll
No symbol table info available.
#3  0x0000000064a213a2 in g_assertion_message_expr ()
   from mingw64\bin\libglib-2.0-0.dll
No symbol table info available.
#4  0x00000000649f6b7c in g_main_context_acquire ()
   from mingw64\bin\libglib-2.0-0.dll
No symbol table info available.
#5  0x00000000649f78d6 in g_main_context_iterate.isra ()
   from mingw64\bin\libglib-2.0-0.dll
No symbol table info available.
#6  0x00000000649f7e63 in g_main_loop_run ()
   from mingw64\bin\libglib-2.0-0.dll
No symbol table info available.
#7  0x0000000061848b90 in ?? ()
   from mingw64\bin\libgtk-win32-2.0-0.dll
No symbol table info available.
#8  0x00000000004035c1 in ?? ()
...

MSVC doesn't support gdb dwarf2 but further confirmed suspicion that the crash originates with the liborg-gnome-mail-to-task.dll plugin:
mail-to-task-plugin-crash

"set follow-fork-mode child" allows mingw64 gdb debugging of the plugin:

#8  0x000000006b4c22b5 in set_attachments (message=0x6237a90, comp=0x61f6f00,
    client=0x63c2400) at ../../../plugins/mail-to-task/mail-to-task.c:369
        attachment_list = <optimized out>
...
#9  do_mail_to_event (data=0xcb4fcb0)
    at ../../../plugins/mail-to-task/mail-to-task.c:835
        message = <optimized out>
        icalprop = <optimized out>

Which is:
set_attachments (client, comp, message);

Attachments in Appointments, Tasks and Memos often doesn't work anyway (even in Linux version, esp. in CalDAV). It was probably safe to ignore this in Linux at the time, but under Windows it crashes the main process. ifdef mail-to-task.c line 835 out for G_OS_WIN32 fixes for now, but should be re-visited should we support event attachments later.

Fixed in fc9b9a5