[freetds] Crashes happen all the time

Frediano Ziglio freddy77 at gmail.com
Tue Apr 27 04:27:10 EDT 2010


2010/4/26 Federico Alves <sales at minixel.com>:
> I need some help from the freetds gurus, maybe Frediano Ziglio?. Since I
> moved on to the Asterisk version 1.6, it crashes several times per day. The
> traces are in
> https://issues.asterisk.org/view.php?id=17084
>
> The Asterisk developers think that they are not responsible, and I don't
> know if I need to contact the makers of unixODBC or in fact the offending
> code is  in freetds.
>
> I use the latest version of unixodbc, unixODBC 2.2.14, and Freetds
> Compile-time settings (established with the "configure" script)
>                            Version: freetds v0.82.1.dev.20100304
>             freetds.conf directory: /usr/etc
>     MS db-lib source compatibility: yes
>        Sybase binary compatibility: no
>                      Thread safety: yes
>                      iconv library: yes
>                        TDS version: 8.0
>                              iODBC: no
>                           unixodbc: yes
>
> My server is SQL 2008.
>
> Many thanks Federico
>

It's quite complicated cause it seems a corruption. I noted that 2
reports reports a problem on line

if (coldata->len < maxcol + 1) {
 	ast_str_make_space(&coldata, maxcol + 1);
}

(func/func_odbc.c lines 414-416). I suspect that for some reasons
coldata get corrupted before. One possibility is a wrong SQLULEN type.
I think if you recompiled unixODBC from sources is better to remove
any unixODBC package (even devel!) and recompile after installing
unixODBC again Asterisk and FreeTDS. unixODBC fixed some ABI problems
for 64bit changing ABI compatibility. I think you should check that
maxcol is 8 bytes and not 4.

Frediano



More information about the FreeTDS mailing list