[SR-Users] db_sqlite bugs

Timo Teras timo.teras at iki.fi
Mon Oct 15 16:12:05 CEST 2012


On Thu, 11 Oct 2012 12:37:23 +0200 Pedro Antonio Vico Solano
<pvsolano at amper.es> wrote:

> Hello everyone,
> 
> We are developing a solution based on the SQLite module for Kamailio
> and we've found some bugs/errors regarding it. We use kamailio 3.2.4
> and SQLite 3.7.14.1. The errors are about this:
> 
> - Memory leaks on querys via sqlops. Kamailio main process leaks 4kB
> each 3 queries (aprox.) and that memory is never freed. [Attached
> basic example]
> - Segmentation fault when doing a SELECT COUNT(*) via sqlops.
> [Attached basic example 2]
> 
> Can you help us?

Does this help for the memory leak?

diff --git a/modules_k/db_sqlite/dbase.c b/modules_k/db_sqlite/dbase.c
index 0b32e07..c1d3b71 100644
--- a/modules_k/db_sqlite/dbase.c
+++ b/modules_k/db_sqlite/dbase.c
@@ -543,7 +543,12 @@ int db_sqlite_update(const db1_con_t* _h, const db_key_t* _k, const db_op_t* _o,
 
 int db_sqlite_raw_query(const db1_con_t* _h, const str* _s, db1_res_t** _r)
 {
-       return db_do_raw_query(_h, _s, _r,
+       int rc;
+
+       rc = db_do_raw_query(_h, _s, _r,
                               db_sqlite_submit_query,
                               db_sqlite_store_result);
+       db_sqlite_cleanup_query(_h);
+
+       return rc;
 }

Seems that all other database driver postpone the resource release to
free_results - but there's no reason why we couldn't do this right away
in sqlite. Since in sqlite free_results we just free cached result set.

Will take a look at the other bug later when I get the time to
reproduce it.

-Timo



More information about the sr-users mailing list