12 messages in com.mysql.lists.bugsPATCH: MySQL 3.23 crashes on FreeBSD 4.2| From | Sent On | Attachments |
|---|---|---|
| Maciek Dobrzanski | 16 Apr 2001 02:17 | |
| Michael Widenius | 16 Apr 2001 04:19 | |
| Sinisa Milivojevic | 16 Apr 2001 04:31 | |
| Andrei Cojocaru | 16 Apr 2001 05:47 | |
| Andrei Cojocaru | 16 Apr 2001 05:49 | |
| Maciek Dobrzanski | 16 Apr 2001 06:28 | |
| Michael Widenius | 16 Apr 2001 14:54 | |
| Michael Widenius | 16 Apr 2001 14:56 | |
| Andrei Errapart | 16 Apr 2001 22:21 | |
| Maciek Dobrzanski | 17 Apr 2001 03:50 | .txt |
| Michael Widenius | 17 Apr 2001 04:45 | |
| Maciek Dobrzanski | 17 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





.txt