List:General Discussion« Previous MessageNext Message »
From:Michael Widenius Date:November 25 1999 5:05pm
Subject:Re: Insertion may corrupt the database when key is 255 characters
long
View as plain text  
>>>>> "bruce" == bruce  <bruce@stripped> writes:

>> Fix (for the MyISAM format):
>> 
>> *** /my/monty/master/mysql-3.23.6-alpha/myisam/mi_search.c	Mon Oct 18 01:53:12
> 1999
>> --- ./mi_search.c	Sat Nov 20 17:16:22 1999
>> ***************
>> *** 865,871 ****
>> /* If the stored length has changed, we must move the key */
>> if (tot_length >= 255 && *start != 255)
>> {
>> ! 	  bmove_upp((char*) key+length+2,(char*) key+length,length);
>> *key=255;
>> mi_int2store(key+1,tot_length);
>> key+=3+length;
>> --- 865,872 ----
>> /* If the stored length has changed, we must move the key */
>> if (tot_length >= 255 && *start != 255)
>> {
>> ! 	  /* length prefix changed from a length of one to a length of 3 */
>> ! 	  bmove_upp((char*) key+length+3,(char*) key+length+1,length);
>> *key=255;
>> mi_int2store(key+1,tot_length);
>> key+=3+length;
>> 
>> Regards,
>> Monty

bruce> Hi,

bruce> Just wanted to let you know that this patch fixes the initial problem
bruce> with some insertion statements.  However, there appear to still be
bruce> other, probably related bugs in the 3.23.5_alpha code.  

Could you send me an example of this?

bruce> BTW, the original error I reported was also present in the ISAM format
bruce> as well.

I have already fixed this for the next MySQL version...

bruce> I haven't yet been able to identify a simple test case that triggers
bruce> this, but when I apply some update logs from another server to an
bruce> uncorrupted database, the database is getting corrupted again.

bruce> Here is the relevant portion of the myisamchk output after the updates
bruce> have been applied:

bruce> --
bruce> % myisamchk url
bruce> Checking MyISAM file: url
bruce> Data records: 1550858   Deleted blocks:       0
bruce> - check file-size
bruce> myisamchk: warning: Size of datafile is: 288607108       Should be: 288140880
bruce> ...
bruce> --

bruce> The warning is easily corrected by running 'myisamchk -r -q url' so its
bruce> not a show stopper for me, but I wanted to bring it to your attention.

bruce> When I have the time, I will try to identify a reproducible scenario and
bruce> perhaps even poke through the code to see if I can the source of the
bruce> errors.  

Yes;  An example would help me quickly find the problem!


bruce> Thanks,

bruce> Bruce

Regards,
Monty
Thread
Insertion may corrupt the database when key is 255 characters longbruce17 Nov
  • Re: Insertion may corrupt the database when key is 255 characters longsasha17 Nov
    • Re: Insertion may corrupt the database when key is 255 characters longsinisa17 Nov
      • Re: Insertion may corrupt the database when key is 255 characters longbruce18 Nov
        • Re: Insertion may corrupt the database when key is 255 characters longsinisa18 Nov
          • Unknown Sender19 Nov
  • Insertion may corrupt the database when key is 255 characters longMichael Widenius20 Nov
    • Connections dies after logrotate has been runKristian Soerensen21 Nov
    • Re: Insertion may corrupt the database when key is 255 characters longbruce24 Nov
      • Re: Insertion may corrupt the database when key is 255 characters longMichael Widenius26 Nov