Re: [gnome-db] [Mysql] Memory leaks detected by valgrind



Hello,

I updated a previous bug entry who is in the same scope than the mentioned memory leaks. 

I also added a patch file, it fix these leaks for me. Thx to test and commit.

https://bugzilla.gnome.org/show_bug.cgi?id=711301

Regards

Adrien.


On Sat, Apr 5, 2014 at 7:14 PM, Vivien Malerba <vmalerba gmail com> wrote:
Hi!

Looking at the code, it seems this has not been corrected. Can you file a bug report in Mozilla?
Can you also specify which version you are using, and if possible the part of you database schema which the code refers to?

Thanks,

Vivien


On 5 April 2014 10:31, Adrien Schwartzentruber <adrien schwartzentruber gmail com> wrote:
Hello guys,

I did some memory test using valgrind, and it turns out that i found few memory leaks. I can of course add these bug in bugzilla, but I want to have the confirmation that these bugs aren't already fixed, and in the first case, if the proposition is correct. 

1. GdaConnectionEvent

Valgrind stack trace : 

 ==00:00:00:07.808 3268== 820 (320 direct, 500 indirect) bytes in 10 blocks are definitely lost in loss record 2,219 of 2,365
==00:00:00:07.808 3268== at 0x4C2B6CD: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==00:00:00:07.808 3268== by 0x4E7FA38: g_malloc (gmem.c:159)
==00:00:00:07.808 3268== by 0x4E92C72: g_slice_alloc (gslice.c:1003)
==00:00:00:07.808 3268== by 0x4E931B5: g_slice_alloc0 (gslice.c:1029)
==00:00:00:07.808 3268== by 0x5AF0889: g_type_create_instance (gtype.c:1872)
==00:00:00:07.808 3268== by 0x5AD50B8: g_object_constructor (gobject.c:1849)
==00:00:00:07.808 3268== by 0x5AD66E3: g_object_newv (gobject.c:1713)
==00:00:00:07.808 3268== by 0x5AD6EC5: g_object_new_valist (gobject.c:1830)
==00:00:00:07.808 3268== by 0x5AD71D3: g_object_new (gobject.c:1545)
==00:00:00:07.808 3268== by 0x51690CD: gda_connection_point_available_event (gda-connection.c:2606)
==00:00:00:07.808 3268== by 0xAD17585: gda_mysql_provider_statement_execute (gda-mysql-provider.c:2812)
==00:00:00:07.808 3268== by 0x51705F8: gda_connection_statement_execute_v (gda-connection.c:3544)
==00:00:00:07.808 3268== by 0x517200B: gda_connection_statement_execute (gda-connection.c:3725)
==00:00:00:07.808 3268== by 0x54F8378: ast_db_record_new_full (ast_db.c:652)
==00:00:00:07.808 3268== by 0x400909: main (main.c:24)

Correction : 

--- a/providers/mysql/gda-mysql-provider.c
+++ b/providers/mysql/gda-mysql-provider.c
@@ -2826,6 +2826,11 @@ gda_mysql_provider_statement_execute (GdaServerProvider *provider,
*last_inserted_row = make_last_inserted_set (cnc, stmt, last_row);
}

 + //Memory leak correction
+ if (event) {
+ g_object_unref(event);
+ }

2. GdaStatementSelect :

Valgrind stack trace : 

==00:00:00:07.942 18943==    at 0x4C29DB4: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)

==00:00:00:07.942 18943==    by 0x4E7FAA0: g_malloc0 (gmem.c:189)

==00:00:00:07.942 18943==    by 0x51E9DCD: gda_sql_statement_select_new (gda-statement-struct-select.c:60)

==00:00:00:07.942 18943==    by 0x51E3AED: gda_sql_statement_new (gda-statement-struct.c:112)

==00:00:00:07.942 18943==    by 0xAD181F7: gda_mysql_provider_statement_execute (gda-mysql-provider.c:2019)

==00:00:00:07.942 18943==    by 0x51705F8: gda_connection_statement_execute_v (gda-connection.c:3544)

==00:00:00:07.942 18943==    by 0x517200B: gda_connection_statement_execute (gda-connection.c:3725)

==00:00:00:07.942 18943==    by 0x54F8378: ast_db_record_new_full (ast_db.c:652)

==00:00:00:07.942 18943==    by 0x40095C: main (main.c:24)

3. GdaRender 

 at 0x4C2B6CD: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==00:00:00:07.941 18943==    by 0x4E7FA38: g_malloc (gmem.c:159)
==00:00:00:07.941 18943==    by 0x4E92C72: g_slice_alloc (gslice.c:1003)
==00:00:00:07.941 18943==    by 0x4E93F92: g_slist_append (gslist.c:222)
==00:00:00:07.941 18943==    by 0x51BF065: default_render_param_spec (gda-statement.c:1395)
==00:00:00:07.941 18943==    by 0xAD13E8E: mysql_render_expr (gda-mysql-provider.c:1647)
==00:00:00:07.941 18943==    by 0xAD163CE: mysql_render_insert (gda-mysql-provider.c:1565)
==00:00:00:07.941 18943==    by 0xAD155DF: gda_mysql_provider_statement_to_sql (gda-mysql-provider.c:1484)
==00:00:00:07.941 18943==    by 0xAD1569F: real_prepare (gda-mysql-provider.c:1826)
==00:00:00:07.941 18943==    by 0xAD159DC: gda_mysql_provider_statement_prepare (gda-mysql-provider.c:1917)
==00:00:00:07.941 18943==    by 0xAD17386: gda_mysql_provider_statement_execute (gda-mysql-provider.c:2208)
==00:00:00:07.941 18943==    by 0x51705F8: gda_connection_statement_execute_v (gda-connection.c:3544)
==00:00:00:07.941 18943==    by 0x517200B: gda_connection_statement_execute (gda-connection.c:3725)
==00:00:00:07.941 18943==    by 0x54F8378: ast_db_record_new_full (ast_db.c:652)
==00:00:00:07.941 18943==    by 0x40095C: main (main.c:24)


Attached : Code sample 


_______________________________________________
gnome-db-list mailing list
gnome-db-list gnome org
https://mail.gnome.org/mailman/listinfo/gnome-db-list





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