Re: possible overactive assert in pfs.cc line 3701

Marc Alff <[email protected]> Fri, 08 Jun 2012 08:46:54 +0200
Newsgroups gmane.comp.db.mysql.devel
Message-ID <[email protected]>
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 pfs.cc 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 = 
MAX_INDEXES

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.

Regards,
-- Marc Alff, Oracle.



-- 
MySQL Internals Mailing List
For list archives: http://lists.mysql.com/internals
To unsubscribe:    http://lists.mysql.com/internals