List:Commits« Previous MessageNext Message »
From:Jørgen Løland Date:August 13 2008 6:34am
Subject:Re: bzr commit into mysql-6.0-backup branch (jorgen.loland:2676)
Bug#38624
View as plain text  
Chuck Bell wrote:
> Oystein, 
> 
>>> I've had a look at this myself. There is no way to reproduce this 
>>> error at a lower level without additional heroics. The error from 
>>> open_tables() is beyond the scope of backup. We are not 
>> testing what 
>>> happens when
>>> open_tables() fails, we are testing how backup would handle 
>> such a failure.
>>> The real issue is that the original code never returned an error 
>>> status. We are asking, "what happens if this method returns 
>> true?" In 
>>> that case, debug insertion is perfectly valid.
>> So why do we not ask our self that question for all methods 
>> that may return true?  The only thing special about this 
>> method is that someone at one point in time made a typo when 
>> handling the result from calling this method.
> 
> I agree that we should, but in this case we have found an omission whereby
> we do not know the consequences of repairing the defect. We can only repair
> and guard against unforeseen problems with the correction.
> 
> We should probably make it a point to ensure all such returns are validated
> during reviews.
> 
>> The main reason for adding tests as part of a bug fix is that 
>> the occurrence of the bug has revealed that our test suite is 
>> missing a test case that could make us aware of this bug at a 
>> earlier stage, and that we should plug that hole to ensure 
>> that we don't have a regression at a 
>> later stage.   For this particular issue, the added test case 
>> will not 
>> detect if someone reversed the fix later.  (To detect that 
>> you would have to put the DBUG_EXECUTE_IF statement inside 
>> open_tables.)
>>
>> However, one can argue that this test tests what will happen 
>> if TriggerObj::do_serialize fails.  However, if we think that 
>> is important, it follows that we should add the same type of 
>> statement to all do_serialize methods.
> 
> I think we could indeed find consensus on this topic but I would motion to
> move this outside of this bug report and take it up as an agenda item for a
> team meeting. The code in si_objects was originally supposed to be the
> responsibility of another team and I think we need discussion before suggest
> changes.

Unfortunately, I think both arguments make sense. I'm not sure if we 
should scatter the code with thousands of DBUG_EXECUTE_IF's, but the 
test did ensure me that the fix was correct.

Should I put this on hold until we have had the next team meeting? Since 
team tree is currently frozen, there's no additional delay involved.

-- 
Jørgen Løland
Thread
bzr commit into mysql-6.0-backup branch (jorgen.loland:2676) Bug#38624Jorgen Loland8 Aug
  • Re: bzr commit into mysql-6.0-backup branch (jorgen.loland:2676)Bug#38624Øystein Grøvlen11 Aug
    • RE: bzr commit into mysql-6.0-backup branch (jorgen.loland:2676) Bug#38624Chuck Bell11 Aug
      • Re: bzr commit into mysql-6.0-backup branch (jorgen.loland:2676)Bug#38624Øystein Grøvlen12 Aug
        • RE: bzr commit into mysql-6.0-backup branch (jorgen.loland:2676) Bug#38624Chuck Bell12 Aug
          • Re: bzr commit into mysql-6.0-backup branch (jorgen.loland:2676)Bug#38624Jørgen Løland13 Aug
            • Re: bzr commit into mysql-6.0-backup branch (jorgen.loland:2676)Bug#38624Øystein Grøvlen13 Aug
              • Re: bzr commit into mysql-6.0-backup branch (jorgen.loland:2676)Bug#38624Jørgen Løland13 Aug