[freetds] Cored dump

martin A. acevedoma at hotmail.com
Mon Nov 28 12:26:04 EST 2005


hi
Linux localhost.localdomain 2.6.11-1.1369_FC4smp #1 SMP Thu Jun 2 23:08:39 
EDT 2005 i686 i686 i386 GNU/Linux

the kernel is SMP on intel dual processor machine....



>From: "ZIGLIO, Frediano, VF-IT" <Frediano.Ziglio at vodafone.com>
>Reply-To: FreeTDS Development Group <freetds at lists.ibiblio.org>
>To: "FreeTDS Development Group" <freetds at lists.ibiblio.org>
>Subject: Re: [freetds] Cored dump
>Date: Mon, 28 Nov 2005 16:47:04 +0100
>
> >
> > Hello, I have now another core.xxx but with this some debug
> > info is showed
> >
> > 1) tail -f freetds_20051126_182913.log
> > util.c:276:Starting log file for FreeTDS 0.64.dev.20051019
> >         on 2005-11-26 18:27:45 with debug flags 0x4fff.
> > iconv.c:361:iconv to convert client-side data to the
> > "ISO-8859-1" character
> > set
> > iconv.c:514:tds_iconv_info_init: converting "ISO-8859-1"->"UCS-2LE"
> > iconv.c:514:tds_iconv_info_init: converting "ISO-8859-1"->"UCS-2LE"
> > net.c:168:Connecting to 213.27.242.161 port 1433.
> >
>
>Mm... this time no connection error, it seems tds_open_socket returns
>TDS_SUCCEED
>
> > 2)  GDB shows some information
> >
> > ......
> >
> > #0  tds_connect (tds=Cannot access memory at address 0x8
> > ) at login.c:235
> >
> >
> > 235             if (IS_TDS80(tds)) {
> >
> >
> > (gdb)  backtrace
> > #0  tds_connect (tds=Cannot access memory at address 0x8
> > ) at login.c:235
> > Cannot access memory at address 0x0
> > Current language:  auto; currently c
> > (gdb)
> >
> > ........
> >
> >
> > (gdb) list -
> > 225
> > 226             memcpy(tds->capabilities, connection->capabilities,
> > TDS_MAX_CAPABILITY);
> > 227
> > 228             retval = tds_version(tds, version);
> > 229             if (!retval)
> > 230                     version[0] = '\0';
> > 231
> > 232             if (tds_open_socket(tds,
> > tds_dstr_cstr(&connection->ip_addr), connection->port,
> > connect_timeout) !=
> > TDS_SUCCEED)
> > 233                     return TDS_FAIL;
> > 234
> >
> > (gdb) list
> >
> > 235             if (IS_TDS80(tds)) { /** <<<<<  ERROR HERE */
> > 236                     retval = tds8_do_login(tds, connection);
> > 237                     db_selected = 1;
> > 238             } else if (IS_TDS7_PLUS(tds)) {
> > 239                     retval = tds7_send_login(tds, connection);
> > 240                     db_selected = 1;
> > 241             } else {
> > 242                     tds->out_flag = 0x02;
> > 243                     retval = tds_send_login(tds, connection);
> > 244
> >
> > I can open and disconnect many connections without problem
> > but after some
> > hours [5-10] the program dump the core...
> >
> > Regards
>
>Mmmm... tds == 0x8 means a corruption on stack. tds variable can't be
>0x8 in tds_open_socket so something in tds_open_socket corrupts memory
>(or another thread or kernel).
>
>Which system are you using?
>
>freddy77
>_______________________________________________
>FreeTDS mailing list
>FreeTDS at lists.ibiblio.org
>http://lists.ibiblio.org/mailman/listinfo/freetds




More information about the FreeTDS mailing list