Re: [Tracker] Memory leak in tracker-indexer



Hello,

Le jeudi 25 septembre 2008 Ã 13:48 +0200, laurent aguerreche free fr a
Ãcrit :
Selon Carlos Garnacho <carlos imendio com>:

On miÃÂ, 2008-09-24 at 23:56 +0200, Laurent Aguerreche wrote:
Le mercredi 17 septembre 2008 Ã  11:02 +0100, Martyn Russell a ÃÂcrit :
Laurent Aguerreche wrote:
Hello,

Hello,

Hello,


there is a big memory leak with tracker-indexer. The processus uses
more
and more memory but free almost all memory when it exists so I assume
that a list of extracted info is not freed while tracker-indexer is
running.

Hi,

I thought I would check up on this. My indexer was running at ~200Mb. I
found 3 or 4 leaks so far in code which is run thousands of times. I
will commit the fixes when I finish valgrinding.

I still see a big memory leak when tracker-indexer starts to treat
Evolution emails. Tracker-indexer uses more than 1GB after less than one
hour of Evolution emails indexing and so I have to kill trackerd.

IMAP or mbox? the code paths are quite different

IMAP !

I was fed up with slowdowns from tracker so I decided to run gdb when
tracker-indexer hit 1600Mo (yes, really 1,6Go) of resident memory and I
obtained that :


(gdb) bt
#0  0x00000038fbc82f1d in memset () from /lib64/libc.so.6
#1  0x000000304523f6db in g_try_malloc0 () from /lib64/libglib-2.0.so.0
#2  0x00000000044f8d1f in read_summary (summary=0x7fab9b755360) at
evolution.c:209
#3  0x00000000044fb381 in tracker_module_file_iter_contents
(file=0x2239f60) at evolution.c:1593
#4  0x000000000040e7ee in tracker_indexer_module_file_iter_contents
(module=0x1d8bc60, file=0x2239f60) at tracker-indexer-module.c:212
#5  0x000000000040b54e in process_file (indexer=0x1d84800,
info=0x20ce340) at tracker-indexer.c:1927
#6  0x000000000040b9df in process_func (data=0x1d84800) at
tracker-indexer.c:2101
#7  0x000000304523742b in g_main_context_dispatch ()
from /lib64/libglib-2.0.so.0
#8  0x000000304523ac0d in ?? () from /lib64/libglib-2.0.so.0
#9  0x000000304523b13d in g_main_loop_run ()
from /lib64/libglib-2.0.so.0
#10 0x000000000040fa2d in main (argc=1, argv=0x7fffa8f94ae8) at
tracker-main.c:364
(gdb) frame 2
#2  0x00000000044f8d1f in read_summary (summary=0x7fab9b755360) at
evolution.c:209
209                             str = g_try_malloc0 (len);
(gdb) print str
$1 = (gchar *) 0x55 <Address 0x55 out of bounds>
(gdb) list
204     
205                             if (len <= 1) {
206                                     continue;
207                             }
208     
209                             str = g_try_malloc0 (len);
210                             if (!str) {
211                                     return FALSE;
212                             }
213     
(gdb) 
214                             if (fread (str, len - 1, 1, summary) != 1) {
215                                     g_free (str);
216                                     return FALSE;
217                             }
218     
219                             if (dest) {
220                                     *dest = str;
221                             } else {
222                                     g_free (str);
223                             }
(gdb) print len
$2 = 2834908688
(gdb) 



So summary file is still not correctly parsed. Since I use a 64 bits
system and that you do not seem to have this problem, I suspect a wrong
assumption with size of types like it happened with time_t. Do you
remember any assumption you made with size of types?


Laurent.


Thanks for spotting this.

_______________________________________________
tracker-list mailing list
tracker-list gnome org
http://mail.gnome.org/mailman/listinfo/tracker-list
--
Carlos Garnacho
Imendio AB - Expert solutions in GTK+
http://www.imendio.com

_______________________________________________
tracker-list mailing list
tracker-list gnome org
http://mail.gnome.org/mailman/listinfo/tracker-list



Attachment: signature.asc
Description: Ceci est une partie de message =?ISO-8859-1?Q?num=E9riquement?= =?ISO-8859-1?Q?_sign=E9e?=



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]