List:Internals« Previous MessageNext Message »
From:Marc Alff Date:June 8 2012 6:46am
Subject:Re: possible overactive assert in line 3701
View as plain text  
Hi Rich,

On 6/7/12 11:49 PM, Rich Prohaska wrote:
> Hello,
> Some of our tests assert when running on the MySQL 5.6.6 labs june
> release,  The assert is at line 3701.  In our case,
> state->m_index == 0 and table->m_share->m_key_count == 0, so the
> assert fires.  Is this assert correct?

The assert is:

   DBUG_ASSERT((state->m_index < table->m_share->m_key_count) ||
               (state->m_index == MAX_INDEXES));

which looks correct.

What it means is:
- table io done using an index should use m_index in the [0, 
m_key_count-1] range.
For example with 10 indexes, [0, 9]
- table io done using no index at all should be done using m_index = 

In this case, m_index = 0 (using the first index) with a table that has 
no index (m_key_count = 0) looks like a bug in the caller.

It would help to have more details about the call stack leading to this 
point, to see where the index value passed comes from.

-- Marc Alff, Oracle.

possible overactive assert in line 3701Rich Prohaska7 Jun
  • Re: possible overactive assert in line 3701Marc Alff8 Jun
    • Re: possible overactive assert in line 3701Rich Prohaska8 Jun