[sr-dev] "sql_buffer_size" causes crash in certain configurations
Peter Dunkley
peter.dunkley at crocodile-rcs.com
Sun Oct 30 17:03:57 CET 2011
Hi,
I will pass this along to Andy Miller who implemented this change. I
don't know when he will have time to look into this.
Regards,
Peter
On Sun, 2011-10-30 at 18:01 +0200, Timo Teräs wrote:
> Hi,
>
> I just upgraded to kam 3.2.0 and my config started crashed. I did some
> bisecting, until I came to commit 5cd87175faa97161023c37e2cc0f0c06
> (core, srdb1, modules/db_*, modules_k/db_*: Added support for
> configuring SQL buffer size and mediumblob/mediumtext in MySQL) which
> seems to be the culprit.
>
> It seems that this commit broke things that were earlier possible. My
> existing configuration loads 'permissions' module before the
> 'db_postgres' module. This used to work perfectly well: the SQL modules
> were usable after loading without requiring initialization.
>
> After this commit, this causes segmentation fault with following backtrace:
>
> #0 0xb7fabeaf in memcpy () from /lib/libc.so.0.9.32
> #1 0xb7fa5b78 in ?? () from /lib/libc.so.0.9.32
> #2 0xb7fa7148 in ?? () from /lib/libc.so.0.9.32
> #3 0xb7fa4b16 in vsnprintf () from /lib/libc.so.0.9.32
> #4 0xb7fa4862 in snprintf () from /lib/libc.so.0.9.32
> #5 0xb5a7a540 in db_do_query (_h=0xb7c4553c, _k=0xbffff614, _op=0x0,
> _v=0xbffff600, _c=0xbffff618, _n=1, _nc=1, _o=0x0, _r=0xbffff5fc,
> val2str=0xb56ef1c0 <db_postgres_val2str>, submit_query=0xb56f4a70
> <db_postgres_submit_query>,
> store_result=0xb56f5350 <db_postgres_store_result>) at db_query.c:63
> #6 0xb56f6a15 in db_postgres_query (_h=0xb7c4553c, _k=0xbffff614, _op=0x0,
> _v=0xbffff600, _c=0xbffff618, _n=1, _nc=1, _o=0x0,
> _r=0xbffff5fc) at km_dbase.c:370
> #7 0xb5a7fdc9 in db_table_version (dbf=0xb5930be0,
> connection=0xb7c4553c, table=0xb59303f0) at db.c:378
> #8 0xb5a8044a in db_check_table_version (dbf=0xb5930be0,
> dbh=0xb7c4553c, table=0xb59303f0, version=4) at db.c:416
> #9 0xb591c6fe in init_addresses () at address.c:208
> #10 0xb592238d in mod_init () at permissions.c:630
> #11 0x001606d6 in init_mod (m=0xb7bc17f0) at sr_module.c:886
> #12 0x0016064e in init_mod (m=0xb7bc1dc8) at sr_module.c:883
> #13 0x0016064e in init_mod (m=0xb7bc23a8) at sr_module.c:883
> #14 0x0016064e in init_mod (m=0xb7bc2a7c) at sr_module.c:883
> #15 0x0016064e in init_mod (m=0xb7bc2ef4) at sr_module.c:883
> #16 0x0016064e in init_mod (m=0xb7bc3430) at sr_module.c:883
> #17 0x0016064e in init_mod (m=0xb7bc37a8) at sr_module.c:883
> #18 0x0016064e in init_mod (m=0xb7bc3c2c) at sr_module.c:883
> #19 0x0016064e in init_mod (m=0xb7bc3fa4) at sr_module.c:883
> #20 0x0016064e in init_mod (m=0xb7bc4da0) at sr_module.c:883
> #21 0x00161729 in init_modules () at sr_module.c:913
> #22 0x00128957 in main (argc=7, argv=0xbffffd14) at main.c:2412
>
>
> This is because db_do_query gets called (from permissions module when it
> checks table version) before the database module was initialized (and
> thus, db_query_init was not yet called).
>
> Now, I'm not sure if the previous behaviour is to be required. But at
> least we should not crash if the module ordering is not right.
>
> Peter, please fix the code to either work as before, or give proper
> error message and exit (instead of crashing).
>
> Thanks,
> Timo
--
Peter Dunkley
Technical Director
Crocodile RCS Ltd
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-dev/attachments/20111030/b41460c1/attachment.htm>
More information about the sr-dev
mailing list