[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