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 597082 - Crash while migrating folder info
Crash while migrating folder info
Status: RESOLVED FIXED
Product: evolution
Classification: Applications
Component: Mailer
2.28.x (obsolete)
Other All
: Normal critical
: ---
Assigned To: evolution-mail-maintainers
Evolution QA team
: 579042 616542 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2009-10-02 08:27 UTC by milan.jurik
Modified: 2011-04-28 01:50 UTC
See Also:
GNOME target: ---
GNOME version: 2.27/2.28


Attachments
Call the gtk_label_set_text in an idle function (2.35 KB, patch)
2009-10-13 09:35 UTC, Jeff Cai
reviewed Details | Review
Rework it (2.94 KB, patch)
2010-01-15 07:55 UTC, Jeff Cai
accepted-commit_now Details | Review

Description milan.jurik 2009-10-02 08:27:10 UTC
What were you doing when the application crashed?
Migration from Evolution 1.x


Distribution:                  Solaris Express Community Edition snv_124 SPARC
Gnome Release: 2.27.91 2009-09-07 (Sun Microsystems, Inc.)
BugBuddy Version: 2.27.1

X Vendor: Sun Microsystems, Inc.
X Vendor Release: 6620
Selinux: No
Accessibility: Disabled
GTK+ Theme: nimbus
Icon Theme: nimbus
GTK+ Modules: canberra-gtk-module, gnomebreakpad

Memory status: size: 172539904 vsize: 172539904 resident: 59383808 share: 4972544 rss: 59383808 rss_rlim: 0
CPU usage: start_time: 1254471587 rtime: 1117 utime: 4423183 stime: 6749789 cutime:0 cstime: 0 timeout: 0 it_real_value: 0 frequency: 0

Backtrace was generated from '/usr/bin/evolution'

1371:	evolution
-----------------  lwp# 1 / thread# 1  --------------------
 ff2c6140 waitid   (0, 564, ffbfa8f8, 3)
 ff27ade0 waitpid  (564, ffbfaa00, 0, 0, 0, 564) + 64
 ff002b28 g_spawn_sync (0, ffbfaa04, 0, ffbfaa00, 0, 0) + 4a8
 ff002ebc g_spawn_command_line_sync (24a7f0, 0, 0, 0, ffbfab6c, 16e490) + 98
 fac61d88 __1cNrun_bug_buddy6Fpkclp0_b_ (47f50, 55b, 0, fac62598, 16e490, 24a7f0) + f0
 fac61fe0 __1cMcheck_if_gdb6F_v_ (400, 1, 1, fffeffba, 55b, 10000) + 118
 fac619f0 __1cUbugbuddy_segv_handle6Fi_v_ (1, 0, fac72748, 46c, 10dd8, 400) + 84
 ff2c12e8 __sighndlr (b, 0, ffbfae08, 2590c, a, ffbfae08) + c
 ff2b4f8c call_user_handler (b, 0, ffbfae08, 0, 0, 9ec18) + 1a4
 ff2b542c sigacthandler (b, 0, ffbfae08, 40d48, feb61aa4, ff354000) + 48
 --- called from signal handler with signal 11 (SIGSEGV) ---
 fe2d9ebc pango_context_get_gravity (aaaaaaaa, 43, 13800, ff071684, ff06f298, 40) + 4c
 fe2e4230 line_set_resolved_dir (10d990, 0, ffffffff, ee598, 80, 10d990) + 44
 fe2e43fc process_line (ee598, ffbfb278, 2620e8, 2fcf8, fe3140a0, 10d990) + 58
 fe2e4d8c pango_layout_check_lines (24, ee598, 25bae0, 0, 25bb04, 0) + 380
 fe2e2f78 pango_layout_get_extents_internal (ee598, 0, ffbfb410, 0, 152b24, 0) + 11c
 fe58bb64 gtk_label_ensure_layout (944c0, ffffffff, 3, 944c0, 20010000, 0) + 314
 fe58bd28 gtk_label_size_request (944c0, 944dc, 94530, 16dd80, 8a0d8, 20010000) + 48
 fef2f998 g_closure_invoke (8a0d8, 0, 2, 16dd80, ffbfb674, 1) + 150
 fef476c0 signal_emit_unlocked_R (1, fef6f438, 944c0, fef5aae8, 0, fef6e468) + 8c8
 fef468a0 g_signal_emit_valist (944c0, 16dd80, 0, ffbfb888, 3f334, 1) + 710
 fef46d84 g_signal_emit_by_name (944c0, fe77d210, 3f2a8, 30, fef6f438, 18) + 1d8
 fe61a46c _gtk_size_group_compute_requisition (944c0, ffbfb8f8, fff6d8c8, 1592f4, fe827da4, 92400) + 54
 fe4ce4e4 gtk_box_size_request (efba8, 111c1c, 78cc8, 111c50, 111c00, 0) + 78
 fef2f998 g_closure_invoke (8a0d8, 0, 2, 1664c0, ffbfbaa4, 1) + 150
 fef476c0 signal_emit_unlocked_R (1, fef6f438, 111c00, fef5aae8, 0, fef6e468) + 8c8
 fef468a0 g_signal_emit_valist (111c00, 1664c0, 0, ffbfbcb8, 3f334, 1) + 710
 fef46d84 g_signal_emit_by_name (111c00, fe77d210, 3f2a8, 30, fef6f438, 18) + 1d8
 fe61a46c _gtk_size_group_compute_requisition (111c00, ffbfbd28, fff6d8c8, 1592f4, fe827da4, 92400) + 54
 fe4ce4e4 gtk_box_size_request (efbb8, 111b4c, 0, 111b80, 111b30, 2) + 78
 fef2f998 g_closure_invoke (8a0d8, 0, 2, 16df20, ffbfbed4, 1) + 150
 fef476c0 signal_emit_unlocked_R (1, fef6f438, 111b30, fef5aae8, 0, fef6e468) + 8c8
 fef468a0 g_signal_emit_valist (111b30, 16df20, 0, ffbfc0e8, 3f334, 1) + 710
 fef46d84 g_signal_emit_by_name (111b30, fe77d210, 3f2a8, 30, fef6f438, 18) + 1d8
 fe61a46c _gtk_size_group_compute_requisition (111b30, ffbfc158, fff6d8c8, 1592f4, fe827da4, 92400) + 54
 fe4ce4e4 gtk_box_size_request (ee120, 111834, 78cc8, 111868, 111818, 1) + 78
 fef2f998 g_closure_invoke (8a0d8, 0, 2, 1668f0, ffbfc304, 1) + 150
 fef476c0 signal_emit_unlocked_R (1, fef6f438, 111818, fef5aae8, 0, fef6e468) + 8c8
 fef468a0 g_signal_emit_valist (111818, 1668f0, 0, ffbfc518, 3f334, 1) + 710
 fef46d84 g_signal_emit_by_name (111818, fe77d210, 3f2a8, 30, fef6f438, 18) + 1d8
 fe61a46c _gtk_size_group_compute_requisition (111818, ffbfc588, fff6d8c8, 1592f4, fe827da4, 92400) + 54
 fe6e3830 gtk_window_size_request (1ebd08, 1ebd24, 1ebd08, 162f20, 1ebd08, 6) + 9c
 fef2f968 g_closure_invoke (8a0d8, 0, 2, 162f20, ffbfc734, 0) + 120
 fef476c0 signal_emit_unlocked_R (1, fef6f438, 1ebd08, fef5aae8, 0, fef6e468) + 8c8
 fef468a0 g_signal_emit_valist (1ebd08, 162f20, 0, ffbfc948, 3f334, 1) + 710
 fef46d84 g_signal_emit_by_name (1ebd08, fe77d210, 3f2a8, 30, fef6f438, 18) + 1d8
 fe61a46c _gtk_size_group_compute_requisition (1ebd08, 0, fff6d8c8, 1592f4, fe827da4, 92400) + 54
 fe6e4db8 gtk_window_compute_configure_request (1ebd08, ffbfcb48, ffbfcb10, ffbfcb0c, fe827da4, fef6e468) + 40
 fe6e5240 gtk_window_move_resize (1ebd08, 53828, 1, 1ebd08, 8f4b0, 2187d0) + 50
 fef2f968 g_closure_invoke (8f4b0, 0, 1, f70c0, ffbfccfc, 0) + 120
 fef48374 signal_emit_unlocked_R (0, fef6f438, 1ebd08, fef5aae8, 0, fef6e468) + 157c
 fef468a0 g_signal_emit_valist (1ebd08, f70c0, 0, ffbfcf08, 3f334, 1) + 710
 fef46b9c g_signal_emit (1ebd08, 58, 0, fe8347c8, 320b98, c800) + 1c
 fe506f58 gtk_container_idle_sizer (0, 1ebd08, c800, fe827da4, 320ebc, ca20) + 74
 feaa2e98 gdk_threads_dispatch (16e610, feb37b48, 91e68, 0, 0, 7c) + 64
 fefc6158 g_main_dispatch (65a68, 65a70, ff07157c, 0, ff06f298, fefca484) + 1e4
 fefc7824 g_main_context_dispatch (3f334, 65a70, 20, 3f338, 65a70, 65a68) + cc
 fefc7d74 g_main_context_iterate (65a68, 1, 1, 3f2ac, 1, 1) + 4c4
 fefc8000 g_main_context_iteration (0, 1, 65a70, 28, 1, 65a68) + c4
 fe599038 gtk_main_iteration (1, feb37b4c, 0, fe827da4, 28edac, 128) + 44
 f473ff3c em_migrate_set_progress (fffd3550, 0, 2caa8, 2c800, f476c938, 0) + b0
 f474320c update_progress_in_main_thread (f39fbe30, f4743204, f39fbe30, 4c, 0, 0) + 8
 fefc6158 g_main_dispatch (65a68, 65a70, ff07157c, 0, ff06f298, fefca484) + 1e4
 fefc7824 g_main_context_dispatch (3f334, 65a70, 20, 3f338, 65a70, 65a68) + cc
 fefc7d74 g_main_context_iterate (65a68, 1, 1, 3f2ac, 1, 1) + 4c4
 fefc8000 g_main_context_iteration (0, 1, 65a70, 28, 1, 65a68) + c4
 fe599038 gtk_main_iteration (1, feb37b4c, 0, fe827da4, 28edac, 128) + 44
 f473ff3c em_migrate_set_progress (fffd3550, 0, 2caa8, 2c800, f476c938, 0) + b0
 f474320c update_progress_in_main_thread (f39fbe30, f4743204, f39fbe30, 4c, 0, 0) + 8
 fefc6158 g_main_dispatch (65a68, 65a70, ff07157c, 0, ff06f298, fefca484) + 1e4
 fefc7824 g_main_context_dispatch (3f334, 65a70, 20, 3f338, 65a70, 65a68) + cc
 fefc7d74 g_main_context_iterate (65a68, 1, 1, 3f2ac, 1, 1) + 4c4
 fefc8000 g_main_context_iteration (0, 1, 65a70, 28, 1, 65a68) + c4
 fe599038 gtk_main_iteration (1, feb37b4c, 0, fe827da4, 28edac, 128) + 44
 f473ff3c em_migrate_set_progress (fffd3550, 0, 2caa8, 2c800, f476c938, 0) + b0
 f474320c update_progress_in_main_thread (f39fbe30, f4743204, f39fbe30, 4c, 0, 0) + 8
 fefc6158 g_main_dispatch (65a68, 65a70, ff07157c, 0, ff06f298, fefca484) + 1e4
 fefc7824 g_main_context_dispatch (3f334, 65a70, 20, 3f338, 65a70, 65a68) + cc
 fefc7d74 g_main_context_iterate (65a68, 1, 1, 3f2ac, 1, 1) + 4c4
 fefc8000 g_main_context_iteration (0, 1, 65a70, 28, 1, 65a68) + c4
 fe599038 gtk_main_iteration (1, feb37b4c, 0, fe827da4, 28edac, 128) + 44
 f473ff3c em_migrate_set_progress (fffd3550, 0, 2caa8, 2c800, f476c938, 0) + b0
 f474320c update_progress_in_main_thread (f39fbe30, f4743204, f39fbe30, 4c, 0, 0) + 8
 fefc6158 g_main_dispatch (65a68, 65a70, ff07157c, 0, ff06f298, fefca484) + 1e4
 fefc7824 g_main_context_dispatch (3f334, 65a70, 20, 3f338, 65a70, 65a68) + cc
 fefc7d74 g_main_context_iterate (65a68, 1, 1, 3f2ac, 1, 1) + 4c4
 fefc8000 g_main_context_iteration (0, 1, 65a70, 28, 1, 65a68) + c4
 fe599038 gtk_main_iteration (1, feb37b4c, 0, fe827da4, 28edac, 128) + 44
 f473ff3c em_migrate_set_progress (fffd3550, 0, 2caa8, 2c800, f476c938, 0) + b0
 f474320c update_progress_in_main_thread (f39fbe30, f4743204, f39fbe30, 4c, 0, 0) + 8
 fefc6158 g_main_dispatch (65a68, 65a70, ff07157c, 0, ff06f298, fefca484) + 1e4
 fefc7824 g_main_context_dispatch (3f334, 65a70, 20, 3f338, 65a70, 65a68) + cc
 fefc7d74 g_main_context_iterate (65a68, 1, 1, 3f2ac, 1, 1) + 4c4
 fefc8000 g_main_context_iteration (0, 1, 65a70, 28, 1, 65a68) + c4
 fe599038 gtk_main_iteration (1, feb37b4c, 0, fe827da4, 28edac, 128) + 44
 f473ff3c em_migrate_set_progress (fffd3550, 0, 2caa8, 2c800, f476c938, 0) + b0
 f474320c update_progress_in_main_thread (f39fbe30, f4743204, f39fbe30, 4c, 0, 0) + 8
 fefc6158 g_main_dispatch (65a68, 65a70, ff07157c, 0, ff06f298, fefca484) + 1e4
 fefc7824 g_main_context_dispatch (3f334, 65a70, 20, 3f338, 65a70, 65a68) + cc
 fefc7d74 g_main_context_iterate (65a68, 1, 1, 3f2ac, 1, 1) + 4c4
 fefc8000 g_main_context_iteration (0, 1, 65a70, 28, 1, 65a68) + c4
 fe599038 gtk_main_iteration (1, feb37b4c, 0, fe827da4, 28edac, 128) + 44
 f473ff3c em_migrate_set_progress (fffd3550, 0, 2caa8, 2c800, f476c938, 0) + b0
 f474320c update_progress_in_main_thread (f39fbec8, f4743204, f39fbec8, 4c, 0, 0) + 8
 fefc6158 g_main_dispatch (65a68, 65a70, ff07157c, 0, ff06f298, fefca484) + 1e4
 fefc7824 g_main_context_dispatch (3f334, 65a70, 20, 3f338, 65a70, 65a68) + cc
 fefc7d74 g_main_context_iterate (65a68, 1, 1, 3f2ac, 1, 1) + 4c4
 fefc8000 g_main_context_iteration (0, 1, 65a70, 28, 1, 65a68) + c4
 fe599038 gtk_main_iteration (1, feb37b4c, 0, fe827da4, 28edac, 128) + 44
 f473ff3c em_migrate_set_progress (fffd3550, 0, 2caa8, 2c800, f476c938, 0) + b0
 f474320c update_progress_in_main_thread (f39fbec8, f4743204, f39fbec8, 4c, 0, 0) + 8
 fefc6158 g_main_dispatch (65a68, 65a70, ff07157c, 0, ff06f298, fefca484) + 1e4
 fefc7824 g_main_context_dispatch (3f334, 65a70, 20, 3f338, 65a70, 65a68) + cc
 fefc7d74 g_main_context_iterate (65a68, 1, 1, 3f2ac, 1, 1) + 4c4
 fefc8000 g_main_context_iteration (0, 1, 65a70, 28, 1, 65a68) + c4
 f474359c migrate_to_db (29400, 238120, 15a7b8, 15a940, f475a4a0, f476c938) + 124
 f4743a84 em_migrate (e8c80, c39a8, 4, fffec410, 1dd108, 291ec) + 33c
 f4748228 impl_upgradeFromVersion (0, 1, 4, 0, ffbfec8c, 2475c) + 50
 ff11df08 ORBit_c_stub_invoke (1f7528, f682c1c8, f6815d88, 0, ffbfec1c, 0) + 7c
 f6817830 GNOME_Evolution_Component_upgradeFromVersion (ffbfec72, 1, 4, 0, ffbfec8c, 0) + 8c
 0001d244 attempt_upgrade (1a0260, 1, 4, 0, 0, ffbfec8c) + 60
 0001d840 e_shell_attempt_upgrade (11ea90, feb37b4c, 0, feb37b48, 0, a6c18) + 15c
 0001d45c e_shell_construct (11ea90, 26f5c, 98c90, 98c90, 26c00, 0) + fc
 0001d538 e_shell_new (0, ffbfeee0, ffbfee54, 152bc0, 26c00, 11ea90) + 20
 000256d4 idle_cb  (0, 1c00, ff358340, 3f338, ffbfeee4, 3f094) + 8c
 00025524 show_development_warning (1, 25000, 10f1d0, 111010, 111010, 111010) + 32c
 00025e5c main     (0, ffbff094, 48c48, a6c18, 4a400, 26000) + 350
 0001aff8 _start   (0, 0, 0, 0, 0, 0) + 108
-----------------  lwp# 6 / thread# 6  --------------------
 ff2c126c lwp_park (0, 0, 0)
 ff2bb3f4 cond_wait_queue (175a40, 197808, 0, 0, fe371200, 0) + 4c
 ff2bb9a0 cond_wait (175a40, 197808, a0b3c, 3, ff06f298, 0) + 10
 ff2bb9dc pthread_cond_wait (175a40, 197808, 48c00, 0, 1, ff2bb9d4) + 8
 fef9b728 g_async_queue_pop_intern_unlocked (1977c8, 3f2a8, 0, 3f334, 3f2cc, ff06f298) + b0
 fef9b8e0 g_async_queue_pop (1977c8, fffb17ec, 3f2b4, 4e800, ff06f298, ff020a84) + cc
 fa89de70 sync_request_thread_cb (1047e8, 0, ff358340, fa8e87ac, 4a960, 0) + 28
 feff2078 g_thread_create_proxy (eb360, ff0717d8, 2528, 3f338, 3f2dc, ff0717d8) + 160
 ff2c11f0 _lwp_start (0, 0, 0, 0, 0, 0)
-----------------  lwp# 5 / thread# 5  --------------------
 ff2c126c lwp_park (0, 0, 0)
 ff2bb3f4 cond_wait_queue (c2768, c5400, 0, 0, fe370a00, 0) + 4c
 ff2bb9a0 cond_wait (c2768, c5400, a0b3c, 3, ff06f298, 0) + 10
 ff2bb9dc pthread_cond_wait (c2768, c5400, 48c00, 0, 1, ff2bb9d4) + 8
 fef9b728 g_async_queue_pop_intern_unlocked (c53e0, 3f2a8, 0, 3f334, 3f2cc, ff06f298) + b0
 fef9b8e0 g_async_queue_pop (c53e0, fffb17ec, 3f2b4, 4e800, ff06f298, ff020a84) + cc
 fa89de70 sync_request_thread_cb (ce1e8, 0, ff358340, fa8e87ac, 4a960, 0) + 28
 feff2078 g_thread_create_proxy (e60d0, ff0717d8, 2528, 3f338, 3f2dc, ff0717d8) + 160
 ff2c11f0 _lwp_start (0, 0, 0, 0, 0, 0)
-----------------  lwp# 7 / thread# 7  --------------------
 feff1f18 g_thread_create_proxy(), exit value = 0x00000000
	** zombie (exited, not detached, not yet joined) **
Comment 1 André Klapper 2009-10-03 18:44:43 UTC
Well. That's not supported anymore and I don't think anybody will test this case as it's quite rare.
Comment 2 milan.jurik 2009-10-05 09:08:17 UTC
I am not sure how rare it is (Solaris 10 to Solaris Next upgrade). But core dumping is not cool reaction on "unsupported upgrade path" I think :-)
Comment 3 Jeff Cai 2009-10-13 09:33:52 UTC
gtk_label_set_text should not be called in a thread function. I'll provide a patch that the UI operation is invoked in a idle function.
Comment 4 Jeff Cai 2009-10-13 09:35:22 UTC
Created attachment 145336 [details] [review]
Call the gtk_label_set_text in an idle function
Comment 5 Milan Crha 2009-12-16 20:55:41 UTC
Patch looks fine with things:
a) the call to g_free (folder_name); in update_label_in_main_thread may invoke a
   compiler warning, please fix that.
b) (rather question) you do iterate for gtk_events and allocate new memory for
   progress in migrate_folders. Why not to not allocate it, and move
   the iteration after the idle_add for both label and progress? (of course,
   having one function for both might be nice, but it probably doesn't worth it).
Comment 6 Jeff Cai 2010-01-15 07:55:07 UTC
Created attachment 151453 [details] [review]
Rework it
Comment 7 Matthew Barnes 2010-01-15 13:11:47 UTC
Note that in 2.31 (pre-3.0) I'll be removing support for migrating from Evolution 1.x.  The user will instead see an error message saying he needs to migrate to an earlier Evolution 2.x first.
Comment 8 Milan Crha 2010-01-15 17:24:38 UTC
It invokes a compiler warning for me:
> e-mail-migrate.c:2816: warning: passing argument 1 of ‘g_free’ discards
> qualifiers from pointer target type
> /usr/include/glib-2.0/glib/gmem.h:55: note: expected ‘gpointer’ but argument
> is of type ‘const struct _migrate_state_info *’

But apart of that looks good. Please fix this warning and commit to master.

Matt, the code in question is
> if (major < 2 || (major == 2 && minor < 24))
thus it'll be in use regardless your removal.
Comment 10 Milan Crha 2010-03-30 11:01:08 UTC
*** Bug 579042 has been marked as a duplicate of this bug. ***
Comment 11 Akhil Laddha 2010-04-23 03:34:22 UTC
*** Bug 616542 has been marked as a duplicate of this bug. ***
Comment 12 Matthew Barnes 2011-04-27 18:57:52 UTC
REOPENING: The patch for this needs reworked.  Cycling the main loop from an idle callback will just keep invoking the idle callback, and in this case means we keep freeing the same memory over and over until we crash.