Bug #8799 Killed filesorts can fail inited==RND assertion in ha_rnd_end
Submitted: 25 Feb 2005 5:27 Modified: 15 Mar 2005 19:20
Reporter: Dean Ellis Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server Severity:S3 (Non-critical)
Version:4.1.11 OS:
Assigned to: Ramil Kalimullin CPU Architecture:Any

[25 Feb 2005 5:27] Dean Ellis
Description:
In filesort.cc, find_all_keys() calls ha_rnd_end() if the filesort is killed.  In some cases file->inited==INDEX so the assertion in ha_rnd_end() fails.

How to repeat:
Create breakpoint on filesort.cc's find_all_keys(), execute:

CREATE TABLE t1 ( a INT PRIMARY KEY, b int );
INSERT INTO t1 VALUES (1,1), (2,2), (3,3), (4,4), (5,5);
SELECT * FROM t2 WHERE a IN (2,4) ORDER BY b DESC;

Examine file->inited.  Set *killed=1 and observe failed assertion.

Suggested fix:
n/a
[25 Feb 2005 5:30] Dean Ellis
Typo, obviously:

SELECT * FROM t1 WHERE a IN (2,4) ORDER BY b DESC;
[14 Mar 2005 16:22] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/internals/23005
[15 Mar 2005 11:32] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/internals/23034
[15 Mar 2005 14:33] Ramil Kalimullin
fixed in 4.1.11
[15 Mar 2005 19:20] Paul Dubois
Noted in 4.1.11 changelog.