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 555276 - corrupted vfolders; SIGSEGV in camel_folder_get_message()
corrupted vfolders; SIGSEGV in camel_folder_get_message()
Status: RESOLVED FIXED
Product: evolution
Classification: Applications
Component: Mailer
2.24.x (obsolete)
Other Linux
: Normal critical
: ---
Assigned To: evolution-mail-maintainers
Evolution QA team
evolution[disk-summary]
: 557422 567754 (view as bug list)
Depends on:
Blocks: 543389
 
 
Reported: 2008-10-06 19:24 UTC by Pedro Villavicencio
Modified: 2009-01-15 13:02 UTC
See Also:
GNOME target: ---
GNOME version: 2.23/2.24


Attachments
a log with CAMEL_DEBUG=vfolder (138.87 KB, text/plain)
2008-10-14 21:23 UTC, Tim Cole
  Details
output from valgrind (470.73 KB, text/plain)
2008-10-15 15:00 UTC, Tim Cole
  Details
vfolders.xml (6.46 KB, application/xml)
2008-10-15 18:32 UTC, Tim Cole
  Details
Test patch (1.56 KB, patch)
2008-10-16 13:17 UTC, Srinivasa Ragavan
committed Details | Review
vfolders.xml per comment #30 (42.12 KB, text/xml)
2008-11-06 14:58 UTC, Brian J. Murrell
  Details
vfolders.xml (39.57 KB, text/plain)
2008-11-06 21:04 UTC, Ted Gould
  Details
Preemptive reading of mail. I'm just that good. (6.94 KB, image/png)
2008-11-07 22:19 UTC, Ted Gould
  Details
Test patch (574 bytes, patch)
2008-11-11 09:14 UTC, Srinivasa Ragavan
committed Details | Review

Description Pedro Villavicencio 2008-10-06 19:24:01 UTC
this report has been opened here:

https://bugs.edge.launchpad.net/ubuntu/+source/evolution/+bug/279070

"Evolution has been corrupting vfolders and crashing lately; I have lots of duplicate or irretrievable messages that show up in vfolders. Deleting the contents of .evolution/vfolders/ does not appear to help."

".

Thread 3 (process 14541)

  • #0 __lll_unlock_wake
    from /lib/libpthread.so.0
  • #1 _L_unlock_56
    from /lib/libpthread.so.0
  • #2 __pthread_mutex_unlock_usercnt
    from /lib/libpthread.so.0
  • #3 emfv_message_selected_timeout
    at em-folder-view.c line 2582
  • #4 g_timeout_dispatch
    at /build/buildd/glib2.0-2.18.1/glib/gmain.c line 3587
  • #5 IA__g_main_context_dispatch
    at /build/buildd/glib2.0-2.18.1/glib/gmain.c line 2142
  • #6 g_main_context_iterate
    at /build/buildd/glib2.0-2.18.1/glib/gmain.c line 2776
  • #7 IA__g_main_loop_run
    at /build/buildd/glib2.0-2.18.1/glib/gmain.c line 2984
  • #8 bonobo_main
    at bonobo-main.c line 311
  • #9 main
    at main.c line 689

Thread 1 (process 24297)

  • #0 vee_get_message
    at camel-vee-folder.c line 634
  • #1 camel_folder_get_message
    at camel-folder.c line 1145
  • #2 get_message_exec
    at mail-ops.c line 1794
  • #3 mail_msg_proxy
    at mail-mt.c line 520
  • #4 g_thread_pool_thread_proxy
    at /build/buildd/glib2.0-2.18.1/glib/gthreadpool.c line 265
  • #5 g_thread_create_proxy
    at /build/buildd/glib2.0-2.18.1/glib/gthread.c line 635
  • #6 start_thread
    from /lib/libpthread.so.0
  • #7 clone
    from /lib/libc.so.6
  • #8 ??

Comment 1 Akhil Laddha 2008-10-07 03:54:26 UTC
could be related to bug 554990
Comment 2 Srinivasa Ragavan 2008-10-07 05:46:33 UTC
try deleting ~/.evolution/mail/vfolder/folders.db

It is the vfolder cache. I would like to know if this happens just after migration or very repetitive
Comment 3 Tim Cole 2008-10-08 20:29:35 UTC
It is very repetitive.  I have deleted vfolder/folders.db several times and the problem comes back.  I see a lot of duplicated messages, and a number of "bogus" ones without subjects or text.  Clicking on one of those almost invariably causes Evolution to hang for a long period of time and then eventually segfault.
Comment 4 Tim Cole 2008-10-08 20:32:44 UTC
(deleting folders.db *does* help temporarily)
Comment 5 Tim Cole 2008-10-09 12:55:02 UTC
Did this a few more times.  Deleting folders.db doesn't always help.  Sometimes it seems to actually make things worse (with the number of duplicate messages doubling).
Comment 6 Tim Cole 2008-10-09 16:35:31 UTC
I rely on search folders fairly heavily; this has made Evolution almost unusable for me.
Comment 7 Srinivasa Ragavan 2008-10-14 19:03:26 UTC
I'm working on this bug next. Lemme try to fix it before 2.24.1
Comment 8 Srinivasa Ragavan 2008-10-14 19:13:34 UTC
Can you tell me what sort of vfolder it corrupts? Hmm, can you gimme the vfolders.xml file? I can try to read the vfolder cfg.

Also,

export CAMEL_DEBUG=vfolder
and use evolution for some time. It puts some logs on the console and preserve and forward that to me.

Just for once, clear vfolder/folders.db and do this test. That way, I can try to understand,how this happens, and then I will fix it.
Comment 9 Tim Cole 2008-10-14 21:23:12 UTC
Created attachment 120604 [details]
a log with CAMEL_DEBUG=vfolder

I've attached a debug log with the output during a session of Evolution, up until the time it crashed.

I had deleted vfolders/folder.db right before starting evolution, but I started seeing duplicate (and then garbage) vfolder entries very quickly, and it didn't take very long after that for evolution to crash.
Comment 10 Tim Cole 2008-10-14 21:24:15 UTC
Incidentally, all of the vfolders are search folders, created on recipient or mailing list addresses.
Comment 11 Srinivasa Ragavan 2008-10-15 01:20:14 UTC
Tim, Im analysing the trace. Just yet another report. Looks like some mem corruption.

'valgrind --tool=valgrind evolution'

This will be a lot slower. Just capture the logs and attach here. Again, clear vfolder/folders.db here also. Thanks a lot. 
Comment 12 Tim Cole 2008-10-15 15:00:13 UTC
Created attachment 120649 [details]
output from valgrind

Here's valgrind output for a session which crashed.
Comment 13 Srinivasa Ragavan 2008-10-15 15:29:57 UTC
Thanks alot Tim, Its a lot useful. Just a question, do you have vfolders for which sources are some vfolders ?

I think, it might be due to that. Lemme do a testing anyways of such a case.

Otherwise, I have fixed a code, where such issue would be gone for trash/junk vfolders.

Can you give me your vfolders.xml file ?

if you build from source, I have a patch, which fixes the same issue for trash/junk. I would like you to run with it. Thanks for your support. 
Comment 14 Srinivasa Ragavan 2008-10-15 16:02:51 UTC
I think I can reproduce the issue, when I have vfolders as source of some vfolders. Sigh. I will try to work on it now and fix before 2.24.1
Comment 15 Tim Cole 2008-10-15 18:32:03 UTC
Created attachment 120672 [details]
vfolders.xml

Here's my vfolders.xml.
Comment 16 Tim Cole 2008-10-15 18:32:49 UTC
Where is the patch available from?
Comment 17 Srinivasa Ragavan 2008-10-16 02:01:21 UTC
Tim, forget that patch, its only for junk/trash vfolders. It doesn't fix it. Its due to vfolder of vfolders. I need to find a way to work this out.
Comment 18 Srinivasa Ragavan 2008-10-16 02:59:23 UTC
Tim, if Im right, you must face this issue/crash in your 'Bug mail' vfolder only.
Comment 19 Tim Cole 2008-10-16 13:10:37 UTC
Nope, I have the problem with all of them.
Comment 20 Tim Cole 2008-10-16 13:11:52 UTC
(The one I use the most, and where I typically have problems, is "Personal Mail".)
Comment 21 Srinivasa Ragavan 2008-10-16 13:13:11 UTC
Tim, I don't think, I can fix it before 2.24.1 and it might be huge changes with the new design. This vfolder of vfolders, stops other regular vfolders to be working correct. I'm tending towards not-loading such a sub-vfolder for a vfolder for now, so that every thing else works well. But you can reframe your query for such a vfolder, and it might just work well after that. Tim, your points would be valuable here. Thanks.
Comment 22 Srinivasa Ragavan 2008-10-16 13:14:27 UTC
Tim, remove that vfolder 'Bug mail' vfolder for now, and remove vfolder/folders.db and restart, everything hsould be normal and fine.
Comment 23 Srinivasa Ragavan 2008-10-16 13:17:38 UTC
Created attachment 120715 [details] [review]
Test patch

Tim, try this patch for Evo. It just avoids loading a vfolders a subfolder for a vfolder. With this, my vfolders are perfect. I just need to reset the query so that I cover what I want.
Comment 24 Srinivasa Ragavan 2008-10-17 09:48:46 UTC
I have pushed this to 2.24.1. It must fix vfolder issues. Such vfolders need to be redone. I might still try to do this vfolder of vfolders, a bit later. I would rename this bug post 2.24.1, once you confirm, it works for you. thanks.
Comment 25 Srinivasa Ragavan 2008-10-22 02:52:03 UTC
The corruption would be fixed in 2.24.1. Please confirm. Thanks
Comment 26 André Klapper 2008-10-22 15:49:57 UTC
*** Bug 557422 has been marked as a duplicate of this bug. ***
Comment 27 Brian J. Murrell 2008-10-22 16:02:06 UTC
(In reply to comment #25)
> The corruption would be fixed in 2.24.1. Please confirm. Thanks

I'm afraid not.

(In reply to comment #26)
> *** Bug 557422 has been marked as a duplicate of this bug. ***

This bug was reported on 2.24.1 on Ubuntu's Intrepid.  Here's my package list:

$ dpkg -l \*evolution\* | cat
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
||/ Name                                           Version                               Description
+++-==============================================-=====================================-============================================
ii  evolution                                      2.24.1-0ubuntu1                       groupware suite with mail client and organiz
ii  evolution-common                               2.24.1-0ubuntu1                       architecture independent files for Evolution
ii  evolution-data-server                          2.24.1-0ubuntu1                       evolution database backend server
ii  evolution-data-server-common                   2.24.1-0ubuntu1                       architecture independent files for Evolution
ii  evolution-data-server-dbg                      2.24.1-0ubuntu1                       evolution database backend server with debug
ii  evolution-dbg                                  2.24.1-0ubuntu1                       debugging symbols for Evolution
ii  evolution-dev                                  2.24.1-0ubuntu1                       development library files for Evolution
rc  evolution-exchange                             2.11.1-0ubuntu1                       Exchange plugin for the Evolution groupware 
ii  evolution-jescs                                2.24.0-0ubuntu1                       Evolution Connector for Sun Java Enterprise 
ii  evolution-plugins                              2.24.0-0ubuntu3                       standard plugins for Evolution
ii  evolution-plugins-experimental                 2.24.1-0ubuntu1                       experimental plugins for Evolution
ii  evolution-rss                                  0.1.0-1ubuntu2                        Evolution RSS Reader Plugin
ii  evolution-webcal                               2.24.0-0ubuntu1                       webcal: URL handler for GNOME and Evolution

Unless you think one of those few ancillary packages which didn't get upgraded (for whatever unknown reason) is the cause.  Seems doubtful though.
Comment 28 Brian J. Murrell 2008-10-23 16:36:17 UTC
Yet another on 2.24.1:

Program received signal SIGSEGV, Segmentation fault.

Thread 2902457232 (LWP 29481)

  • #0 vee_get_message
    at camel-vee-folder.c line 636
  • #1 camel_folder_get_message
    at camel-folder.c line 1123
  • #2 get_message_exec
    at mail-ops.c line 1824
  • #3 mail_msg_proxy
    at mail-mt.c line 520
  • #4 g_thread_pool_thread_proxy
    at /build/buildd/glib2.0-2.18.1/glib/gthreadpool.c line 265
  • #5 g_thread_create_proxy
    at /build/buildd/glib2.0-2.18.1/glib/gthread.c line 635
  • #6 start_thread
    from /lib/tls/i686/cmov/libpthread.so.0
  • #7 clone
    from /lib/tls/i686/cmov/libc.so.6

Thread 138 (Thread 0xacfffb90 (LWP 29481))

  • #0 vee_get_message
    at camel-vee-folder.c line 636
  • #1 camel_folder_get_message
    at camel-folder.c line 1123
  • #2 get_message_exec
    at mail-ops.c line 1824
  • #3 mail_msg_proxy
    at mail-mt.c line 520
  • #4 g_thread_pool_thread_proxy
    at /build/buildd/glib2.0-2.18.1/glib/gthreadpool.c line 265
  • #5 g_thread_create_proxy
    at /build/buildd/glib2.0-2.18.1/glib/gthread.c line 635
  • #6 start_thread
    from /lib/tls/i686/cmov/libpthread.so.0
  • #7 clone
    from /lib/tls/i686/cmov/libc.so.6

Comment 29 Brian J. Murrell 2008-10-24 12:38:11 UTC
FWIW, here's another.  I've included the end of some of evolutions messages:

bbdb: Buddy list has changed since last sync.

** (evolution:30670): WARNING **: bbdb: failed to get addressbook: e_book_new: no factories available for URI `'


(evolution:30670): camel-CRITICAL **: camel_object_is: assertion `o != NULL' failed

(evolution:30670): camel-CRITICAL **: camel_object_ref: assertion `CAMEL_IS_OBJECT(o)' failed
[New Thread 0xb0521b90 (LWP 8552)]

Program received signal SIGSEGV, Segmentation fault.

Thread 2958171024 (LWP 8552)

  • #0 vee_get_message
    at camel-vee-folder.c line 636
  • #1 camel_folder_get_message
    at camel-folder.c line 1123
  • #2 get_message_exec
    at mail-ops.c line 1824
  • #3 mail_msg_proxy
    at mail-mt.c line 520
  • #4 g_thread_pool_thread_proxy
    at /build/buildd/glib2.0-2.18.1/glib/gthreadpool.c line 265
  • #5 g_thread_create_proxy
    at /build/buildd/glib2.0-2.18.1/glib/gthread.c line 635
  • #6 start_thread
    from /lib/tls/i686/cmov/libpthread.so.0
  • #7 clone
    from /lib/tls/i686/cmov/libc.so.6

Thread 5991 (Thread 0xb0521b90 (LWP 8552))

  • #0 vee_get_message
    at camel-vee-folder.c line 636
  • #1 camel_folder_get_message
    at camel-folder.c line 1123
  • #2 get_message_exec
    at mail-ops.c line 1824
  • #3 mail_msg_proxy
    at mail-mt.c line 520
  • #4 g_thread_pool_thread_proxy
    at /build/buildd/glib2.0-2.18.1/glib/gthreadpool.c line 265
  • #5 g_thread_create_proxy
    at /build/buildd/glib2.0-2.18.1/glib/gthread.c line 635
  • #6 start_thread
    from /lib/tls/i686/cmov/libpthread.so.0
  • #7 clone
    from /lib/tls/i686/cmov/libc.so.6

Thread 1 (Thread 0xb647e940 (LWP 30670))

  • #0 __i686.get_pc_thunk.bx
    from /usr/lib/evolution/2.24/libemiscwidgets.so.0
  • #1 e_activity_handler_cancelable_operation_started
    at e-activity-handler.c line 414
  • #2 op_status_exec
    at mail-mt.c line 993
  • #3 mail_msg_idle_cb
    at mail-mt.c line 491
  • #4 g_idle_dispatch
    at /build/buildd/glib2.0-2.18.1/glib/gmain.c line 4233
  • #5 IA__g_main_context_dispatch
    at /build/buildd/glib2.0-2.18.1/glib/gmain.c line 2142
  • #6 g_main_context_iterate
    at /build/buildd/glib2.0-2.18.1/glib/gmain.c line 2776
  • #7 IA__g_main_loop_run
    at /build/buildd/glib2.0-2.18.1/glib/gmain.c line 2984
  • #8 bonobo_main
    from /usr/lib/libbonobo-2.so.0
  • #9 main
    at main.c line 689

Comment 30 Brian J. Murrell 2008-10-24 15:05:35 UTC
This is getting annoying.

Let me know if you don't need any more stack traces.

bbdb: Buddy list has changed since last sync.

** (evolution:8869): WARNING **: bbdb: failed to get addressbook: e_book_new: no factories available for URI `'

removing cache for  Other Users/jennifer/vmINBOX 1 0xad77cbb8
done .. now 0
removing cache for  sent 6 0xb3dda5b8
done .. now 6

(evolution:8869): camel-CRITICAL **: camel_object_is: assertion `o != NULL' failed

(evolution:8869): camel-CRITICAL **: camel_object_ref: assertion `CAMEL_IS_OBJECT(o)' failed

Program received signal SIGSEGV, Segmentation fault.

Thread 2995776400 (LWP 21555)

  • #0 vee_get_message
    at camel-vee-folder.c line 636
  • #1 camel_folder_get_message
    at camel-folder.c line 1123
  • #2 get_message_exec
    at mail-ops.c line 1824
  • #3 mail_msg_proxy
    at mail-mt.c line 520
  • #4 g_thread_pool_thread_proxy
    at /build/buildd/glib2.0-2.18.1/glib/gthreadpool.c line 265
  • #5 g_thread_create_proxy
    at /build/buildd/glib2.0-2.18.1/glib/gthread.c line 635
  • #6 start_thread
    from /lib/tls/i686/cmov/libpthread.so.0
  • #7 clone
    from /lib/tls/i686/cmov/libc.so.6

Thread 983 (Thread 0xb28feb90 (LWP 21555))

  • #0 vee_get_message
    at camel-vee-folder.c line 636
  • #1 camel_folder_get_message
    at camel-folder.c line 1123
  • #2 get_message_exec
    at mail-ops.c line 1824
  • #3 mail_msg_proxy
    at mail-mt.c line 520
  • #4 g_thread_pool_thread_proxy
    at /build/buildd/glib2.0-2.18.1/glib/gthreadpool.c line 265
  • #5 g_thread_create_proxy
    at /build/buildd/glib2.0-2.18.1/glib/gthread.c line 635
  • #6 start_thread
    from /lib/tls/i686/cmov/libpthread.so.0
  • #7 clone
    from /lib/tls/i686/cmov/libc.so.6

Thread 1 (Thread 0xb62ba940 (LWP 8869))

  • #0 IA__g_value_unset
    at /build/buildd/glib2.0-2.18.1/gobject/gvalue.c line 273
  • #1 IA__g_object_new_valist
    at /build/buildd/glib2.0-2.18.1/gobject/gobject.c line 1318
  • #2 IA__g_object_new
    at /build/buildd/glib2.0-2.18.1/gobject/gobject.c line 1056
  • #3 IA__gtk_frame_new
    at /build/buildd/gtk+2.0-2.14.4/gtk/gtkframe.c line 275
  • #4 e_task_widget_construct
    at e-task-widget.c line 136
  • #5 e_task_widget_new_with_cancel
    at e-task-widget.c line 196
  • #6 task_widget_new_from_activity_info
    at e-activity-handler.c line 169
  • #7 e_activity_handler_cancelable_operation_started
    at e-activity-handler.c line 436
  • #8 op_status_exec
    at mail-mt.c line 993
  • #9 mail_msg_idle_cb
    at mail-mt.c line 491
  • #10 g_idle_dispatch
    at /build/buildd/glib2.0-2.18.1/glib/gmain.c line 4233
  • #11 IA__g_main_context_dispatch
    at /build/buildd/glib2.0-2.18.1/glib/gmain.c line 2142
  • #12 g_main_context_iterate
    at /build/buildd/glib2.0-2.18.1/glib/gmain.c line 2776
  • #13 IA__g_main_loop_run
    at /build/buildd/glib2.0-2.18.1/glib/gmain.c line 2984
  • #14 bonobo_main
    from /usr/lib/libbonobo-2.so.0
  • #15 main
    at main.c line 689

Comment 31 Srinivasa Ragavan 2008-11-06 04:02:44 UTC
Did you try removing vfolder/folders.db post 2.24.1 ? Its possible the old vfolder cache is being used. But as I tested it was due to the vfolder being a subfolder of a vfolder. I had made a patch not to load a vfolder as a subfolder, in which case you might have to rework the query better. 
Comment 32 Srinivasa Ragavan 2008-11-06 10:15:39 UTC
(In reply to comment #30)
Can you give me your vfolder.xml file?
Comment 33 Brian J. Murrell 2008-11-06 14:56:11 UTC
(In reply to comment #31)
> Did you try removing vfolder/folders.db post 2.24.1 ?

Not until now, no, but have just done it.
Comment 34 Brian J. Murrell 2008-11-06 14:58:12 UTC
Created attachment 122102 [details]
vfolders.xml per comment #30

Per request in comment #30, here is my vfolders.xml.
Comment 35 Ted Gould 2008-11-06 21:03:17 UTC
This also continues to happen to me with 2.24.1.  I deleted my vfolder/folder.db also, it works for a while, but then breaks down.  It seems like the counting or something like that has a problem.  I've gotten in cases where Evo is reporting 4 million unread messages in a folder.  I've attached my vfolders.xml also.
Comment 36 Ted Gould 2008-11-06 21:04:15 UTC
Created attachment 122151 [details]
vfolders.xml
Comment 37 Srinivasa Ragavan 2008-11-07 03:41:12 UTC
Ted, which vfolder do you see that corruption of message list, or this crash?
Comment 38 Srinivasa Ragavan 2008-11-07 03:50:50 UTC
(In reply to comment #36)
> Created an attachment (id=122151) [edit]
> vfolders.xml
> 
Inkscape, GNOME, To Me, GNOME/Screensaver , Ubuntu/Wiki, Ubuntu/Devel Discuss, Inkscape/GSoC Mentor, GNOME/Pulse Audio, , NTLUG/Discuss, Wikipedia Daily,  are the vfolders, which has a vfolder as a subfolder. This doesn't work now. Do you see the crash in this folder? Or any other folder?
Comment 39 Ted Gould 2008-11-07 22:17:06 UTC
So I went through all my instances of "vfolder:" in my vfolders.xml file and I removed them.  Which is a little odd, because only one of them was actually active while the others weren't using the specific folders entries.  But, they're all gone.  And Evolution has only hung once on me today (huge improvement) and I've been using vFolders almost all day.  It still doesn't get the folder count right (attached a PNG) though.

So, I guess the patch is to catch the instances of "vfolder:" in the XML earlier so that the rest of the code doesn't get confused.  Either that or a migration script for users.
Comment 40 Ted Gould 2008-11-07 22:19:04 UTC
Created attachment 122209 [details]
Preemptive reading of mail.  I'm just that good.
Comment 41 Ted Gould 2008-11-07 22:27:48 UTC
I think it should also be noted that when creating a new saved search when you have a vfolder selected auto-populates the list of folders for that saved search folder with the vfolders.  It seems that becasue of that, there are likely to be a bunch of users that have folders configured that way.
Comment 42 Srinivasa Ragavan 2008-11-10 09:37:57 UTC
Ted, is your issue is with counts, then it is a different bug. Im loosing track on this bug, which is on corruption of vfolders and the crasher.

 gnome-bugs@interlinx.bc.ca: You happen to see this again?
Comment 43 Brian J. Murrell 2008-11-10 19:55:30 UTC
This is still alive and well, on 2.24.1 as of just 30 minutes ago:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xa60b3b90 (LWP 26776)]
0xb7d9acf9 in vee_get_message (folder=0xa764dc0, 
    uid=0xd873b20 "����DLQC50483", ex=0xbb484d4) at camel-vee-folder.c:636
636	camel-vee-folder.c: No such file or directory.
	in camel-vee-folder.c
(gdb) apply thread all bt full
Undefined command: "apply".  Try "help".
(gdb) thread apply all bt full

Thread 19076 (Thread 0xa60b3b90 (LWP 26776))

  • #0 vee_get_message
    at camel-vee-folder.c line 636
  • #1 camel_folder_get_message
    at camel-folder.c line 1123
  • #2 get_message_exec
    at mail-ops.c line 1824
  • #3 mail_msg_proxy
    at mail-mt.c line 520
  • #4 g_thread_pool_thread_proxy
    at /build/buildd/glib2.0-2.18.2/glib/gthreadpool.c line 265
  • #5 g_thread_create_proxy
    at /build/buildd/glib2.0-2.18.2/glib/gthread.c line 635
  • #6 start_thread
    from /lib/tls/i686/cmov/libpthread.so.0
  • #7 clone
    from /lib/tls/i686/cmov/libc.so.6

This goes along with not always seeing all new/unread messages in my vfolder.  Frequently I have to go back to the real folders to see new/unread messages that the vfolder did not show.
Comment 44 Srinivasa Ragavan 2008-11-11 02:30:37 UTC
(In reply to comment #43)
> This is still alive and well, on 2.24.1 as of just 30 minutes ago:
> 
> 
> This goes along with not always seeing all new/unread messages in my vfolder. 
> Frequently I have to go back to the real folders to see new/unread messages
> that the vfolder did not show.
> 

These are the two bugs, that I'm just working on to figure out why it happens, and works for me and a few others only. Anyways... I hope I must fix it before 2.24.2
Comment 45 Srinivasa Ragavan 2008-11-11 04:00:14 UTC
Do you see a warning like 'VFolder of VFolders not supporting. Ignoring loading this vfolder as a subfolder' on the console? Im just trying to make sure that Im on the right direction. 
Comment 46 Brian J. Murrell 2008-11-11 04:30:42 UTC
(In reply to comment #45)
> Do you see a warning like 'VFolder of VFolders not supporting. Ignoring loading
> this vfolder as a subfolder' on the console? Im just trying to make sure that
> Im on the right direction. 

I have seen that warning in the past, yes.  Im not sure if I've seen it with any particular crash though.
Comment 47 Srinivasa Ragavan 2008-11-11 07:01:10 UTC
I think Im good. I see some cases where vfolders are still loaded as subfolders. There is more than one path, which I must seal. Thanks for the help. lemme do some more, before asking for more. Thanks for all your support.
Comment 48 Srinivasa Ragavan 2008-11-11 09:14:26 UTC
Created attachment 122395 [details] [review]
Test patch

Can you try with this patch?
Comment 49 Brian J. Murrell 2008-11-11 22:28:26 UTC
Patch installed.  I notice that I am now seeing mails in the vfolder that I was not seeing before and had to go back to the real folder to see.  Also, I notice that the vfolders of vfolders that I do have are all showing as empty when you click on them despite them showing as having unread mail in them.  I suspect this is expected.

This limitation of vfolders of vfolders is really quite annoying though.  I would have opted to hold back the sqlite paradigm rollout and keep what we had until the sqlite paradigm was at least as functional as the status quo.  :-(
Comment 50 Srinivasa Ragavan 2008-11-12 04:03:09 UTC
> This limitation of vfolders of vfolders is really quite annoying though.  I
> would have opted to hold back the sqlite paradigm rollout and keep what we had
> until the sqlite paradigm was at least as functional as the status quo.  :-(
> 

I understand. But you know, in earlier code, everything was in memory and searched and kept. Now with this, a vfolder is just a sql query on db. And querying a vfolder for another vfolder is just impossible. I can hack it and still make it, but it won't be efficient. 

Lemme know how this goes. I hope it shouldn't crash anymore. I will wait for some time before closing this bug. Thanks a lot for your patience and support. Im off to unread vfolder fully now.
Comment 51 Brian J. Murrell 2008-11-12 04:08:41 UTC
(In reply to comment #50)
> 
> I understand. But you know, in earlier code, everything was in memory and
> searched and kept. Now with this, a vfolder is just a sql query on db.

But with a couple of pretty visible and serious regressions.  vfolders in vfolders is one and read (or more unexpectedly, replied-to) messages all of a sudden disappearing from a vfolder is another.  For some people, those are very visible and painful regressions.  Having to go back to the real folder to delete a message that was in the vfolder that you just replied to is a pain too.

> And
> querying a vfolder for another vfolder is just impossible.

Which is why I would have advocated holding back the sqlite feature until it was feature compatible.

> Lemme know how this goes. I hope it shouldn't crash anymore.

Good.  We will see I guess.

> I will wait for
> some time before closing this bug.

OK.

> Thanks a lot for your patience and support.

No, thank you for your effort.  I have just been a pain in the ass for you.  :-)
Comment 52 Srinivasa Ragavan 2008-11-19 05:42:26 UTC
Committed to stable/trunk.
Comment 53 Till Berger 2008-11-25 14:22:15 UTC
As I’m also affected by the regression of search folders: would it not be possible to implement vfolders of vfolders by combining the search criteria with and? I don’t know how the implementation exactly works but I would imagine it something like this:

Search folder A: SELECT … FROM … WHERE argumentsA
Search folder B: SELECT … FROM … WHERE argumentsB

Then if folder B queries folder A the query would be:
SELECT … FROM … WHERE argumentsA AND argumentsB
Comment 54 Till Berger 2008-11-25 14:33:37 UTC
If it is not possible to do the user interface should disallow selecting a search folder as a search folder source and when upgrading from earlier versions update the existing search folders so that they don’t use other search folders as source. The situation now is just bad. How will a random user know of this limitation?
Comment 55 Srinivasa Ragavan 2008-11-25 15:56:24 UTC
This is still possible to be done, not a limitation. But surely its not a combination of such SQL queries. But this needs a bit of redesign to the core piece, where as Im still fixing bugs around.

This, Unmatched vfolders are the two limitations that Im aware of.
Comment 56 palfrey 2009-01-15 13:02:39 UTC
*** Bug 567754 has been marked as a duplicate of this bug. ***