GNOME Bugzilla – Bug 627616
CamelIMAPXStoreSummary never frees its namespace list
Last modified: 2013-09-14 16:53:43 UTC
==23683== 174 (72 direct, 102 indirect) bytes in 3 blocks are definitely lost in loss record 21,308 of 26,937 ==23683== at 0x4A04481: calloc (vg_replace_malloc.c:418) ==23683== by 0x3A4DC456A7: g_malloc0 (in /lib64/libglib-2.0.so.0.2512.0) ==23683== by 0x19DF59E9: imapx_parse_namespace_list (camel-imapx-utils.c:502) ==23683== by 0x19DFF60B: imapx_untagged (camel-imapx-server.c:1303) ==23683== by 0x19E05C0A: imapx_step (camel-imapx-server.c:1915) ==23683== by 0x19E05EB1: imapx_command_run (camel-imapx-server.c:1939) ==23683== by 0x19E06E43: camel_imapx_server_connect (camel-imapx-server.c:3031) ==23683== by 0x19E07BA7: camel_imapx_conn_manager_get_connection (camel-imapx-conn-manager.c:240) ==23683== by 0x19DF92C7: camel_imapx_store_get_server (camel-imapx-store.c:233) ==23683== by 0x19DFCC36: imapx_sync (camel-imapx-folder.c:214) ==23683== by 0x66A2017: camel_folder_sync (camel-folder.c:1124) ==23683== by 0xF175C4B: refresh_folders_exec (mail-send-recv.c:881)
Perhaps this is it: --- a/camel/providers/imapx/camel-imapx-server.c +++ b/camel/providers/imapx/camel-imapx-server.c @@ -1305,6 +1305,8 @@ imapx_untagged(CamelIMAPXServer *imap, GError **error) CamelIMAPXStore *imapx_store = (CamelIMAPXStore *) imap->store; CamelIMAPXStoreNamespace *ns; + /* XXX: Locking? */ + camel_imapx_namespace_list_clear(imapx_store->summary->namespaces); imapx_store->summary->namespaces = nsl; camel_store_summary_touch ((CamelStoreSummary *) imapx_store->summary);
I don't think that was it. I'm still seeing this in my latest tests.
CamelIMAPXStoreSummary is missing a finalize() method to free its CamelIMAPXNamespaceList (assuming it owns that structure).
I think this should do it. Fixed for 2.31.91 in: http://git.gnome.org/browse/evolution-data-server/commit/?id=ce7f6a065a868f5cb769413cecb0b6499df9e35d
Oh already done :) /me removes it off the todo list.