12 messages in com.mysql.lists.bugsPATCH: MySQL 3.23 crashes on FreeBSD 4.2
FromSent OnAttachments
Maciek Dobrzanski16 Apr 2001 02:17 
Michael Widenius16 Apr 2001 04:19 
Sinisa Milivojevic16 Apr 2001 04:31 
Andrei Cojocaru16 Apr 2001 05:47 
Andrei Cojocaru16 Apr 2001 05:49 
Maciek Dobrzanski16 Apr 2001 06:28 
Michael Widenius16 Apr 2001 14:54 
Michael Widenius16 Apr 2001 14:56 
Andrei Errapart16 Apr 2001 22:21 
Maciek Dobrzanski17 Apr 2001 03:50.txt
Michael Widenius17 Apr 2001 04:45 
Maciek Dobrzanski17 Apr 2001 06:55 
Subject:PATCH: MySQL 3.23 crashes on FreeBSD 4.2
From:Michael Widenius (mon@mysql.com)
Date:04/16/2001 04:19:15 AM
List:com.mysql.lists.bugs

Hi!

"Maciek" == Maciek Dobrzanski <mac@hub.interia.pl> writes:

Maciek> Hi, Maciek> MySQL 3.23.36 crashes (SEGV) during execution of mysqldump program. I've Maciek> encountered this problem before in different mysql versions. It doesn't Maciek> happen everytime. Below you can find any information I thought could be Maciek> useful.

Maciek> mysqldump is run from a script that makes backup of the whole db.

Maciek> mysqldump -u $DBLOGIN -p$DBPASS -T Maciek> $BACKUPDIR/$DATE/$db --all --fields-terminated-by='~END~' $db

Could you please check if the following patch fixes this:

===== sql/field.cc 1.38 vs edited ===== *** /tmp/field.cc-1.38-3281 Mon Apr 16 14:05:55 2001 --- edited/sql/field.cc Mon Apr 16 14:18:25 2001 *************** *** 1791,1797 **** #endif memcpy_fixed((byte*) &nr,ptr,sizeof(nr));

! val_buffer->alloc(max(field_length,70)); char *to=(char*) val_buffer->ptr();

if (dec >= NOT_FIXED_DEC) --- 1791,1798 ---- #endif memcpy_fixed((byte*) &nr,ptr,sizeof(nr));

! uint to_length=max(field_length,70); ! val_buffer->alloc(to_length); char *to=(char*) val_buffer->ptr();

if (dec >= NOT_FIXED_DEC) *************** *** 1841,1848 **** while (tmp_dec--) *to++= *pos++; #else ! #ifdef HAVE_SNPRINTF_ ! sprintf(to,val_buffer->length(),"%.*f",dec,nr); #else sprintf(to,"%.*f",dec,nr); #endif --- 1842,1850 ---- while (tmp_dec--) *to++= *pos++; #else ! #ifdef HAVE_SNPRINTF ! to[to_length-1]=0; // Safety ! snprintf(to,to_length-1,"%.*f",dec,nr); #else sprintf(to,"%.*f",dec,nr); #endif

Another option is to change the FLOAT column to DOUBLE and check if this helps!

Regards, Monty