List:Maria Storage Engine« Previous MessageNext Message »
From:Guilhem Bichot Date:April 26 2008 10:55am
Subject:Re: merge of Maria into 6.0
View as plain text  
Hello,

I can give a concrete example.

On Fri, Apr 25, 2008 at 10:23:29PM +0300, Michael Widenius wrote:
> >>>>> "Guilhem" == Guilhem Bichot <guilhem@stripped> writes:
> 
> Guilhem> Hello,
> Guilhem> Jani was saying today that of all these merges of 5.1-main into
> Guilhem> 5.1-maria, that we have done over the last two years, some may have
> Guilhem> introduced problems (wrong merges). I agree with him. I think that we
> Guilhem> should not port these problems into 6.0-main when we, in a few weeks
> Guilhem> hopefully, merge 5.1-maria into 6.0-main.
> 
> Guilhem> So I suggest that once we are code-complete for Maria version 1.5 (all
> Guilhem> tasks pushed), we, instead of pushing immediately into 6.0-main (or
> Guilhem> 6.0-maria to be created), take the time to do this:
<cut>
> 
> Guilhem> 3) do a diff between 5.1-maria/storage/myisam and
> Guilhem> 5.1-maria/storage/maria and a review of it (as we have seen in the
> Guilhem> past that we sometimes forgot to merge MyISAM into Maria); this will
> Guilhem> be difficult because some reworking was done into Maria, but I believe
> Guilhem> we still have to do it.
> 
> I don't think this part is possible anymore.  Too much changes to do
> any decent comparison in a reasonable time.
> 
> Assuming that most major bug fixes in MyISAM have test cases, we
> already have a good verification that Maria parts are ok by running
> all tests with the Maria engine.

On Dec 20 2007 we did a MyISAM->Maria merge.
Back from Orlando (20 Jan 2008) I ran all tests with
--default-storage-engine=maria, inspected all test results, and found
no issue.
On March 25 I discovered, because I was looking at some code portion,
that the merge of Dec 20 had missed some MyISAM changes. Which had not
been caught by running the testsuite with
--default-storage-engine=maria, as we have seen.
Jani and you then made a diff and fixed the bugs; they were:

  Bug#28837  MyISAM storage engine error (134) doing delete with self-join
  Bug#31277  myisamchk --unpack corrupts table
  Bug#4692   DISABLE/ENABLE KEYS waste a space
  Bug#31305  myisam tables crash when they are near capacity

which are important bugs (corruption, errors). They were all missed
during the Dec 20 merge (they were all fixed before Dec 20 in
5.1-main, some even in November).

So, maybe most major bug fixes in MyISAM have test cases, as you say,
but truly some don't have, as the example shows. Running with
--default-storage-engine=maria missed all above ones; it thus is not a
good *enough* verification that Maria parts are ok.

Whereas looking at Maria code (which I did) caught BUG#4692, which led
you and Jani to generate a diff, which led to fixing the bugs.

So I still believe that generating a diff before the big merge into
6.0, is necessary. It may take a while to read this diff (actually,
I'd rather have a look at it from a GUI like kdiff3), it is clear that
we won't catch all mistakes because some code has diverged, but we can
catch some.
If you think it is worthless, then I'll put it on my personal to-do
list (but I may still involve you for explaining the differences which
I don't understand).

-- 
   __  ___     ___ ____  __
  /  |/  /_ __/ __/ __ \/ /    Mr. Guilhem Bichot <guilhem@stripped>
 / /|_/ / // /\ \/ /_/ / /__   Sun Microsystems, Lead Software Engineer
/_/  /_/\_, /___/\___\_\___/   Bordeaux, France
       <___/   www.mysql.com   
Thread
merge of Maria into 6.0Guilhem Bichot25 Apr
  • re: merge of Maria into 6.0Michael Widenius25 Apr
    • Re: merge of Maria into 6.0Guilhem Bichot25 Apr
    • Re: merge of Maria into 6.0Guilhem Bichot26 Apr
      • Re: merge of Maria into 6.0Michael Widenius28 Apr