Bug #5373 Handler

Submitted: 2 Sep 2004 17:22 Modified: 10 Jun 2005 17:31
Reporter: Andres Castiglia Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: InnoDB storage engine Severity:S2 (Serious)
Version:mysql-4.0.20d-win OS:Windows (Win2k SP4)
Assigned to: Sergei Golubchik CPU Architecture:Any

[2 Sep 2004 17:22] Andres Castiglia
Description:
Using "HANDLER tbl_name READ index_name NEXT" without "HANDLER tbl_name READ index_name = (value1,value2,...)" crash the service.

How to repeat:
-- Ok --
HANDLER tbl_name OPEN [ AS alias ]
HANDLER tbl_name READ index_name = (value1,value2,...)
HANDLER tbl_name READ index_name NEXT
HANDLER tbl_name CLOSE

-- Crash the service ---
HANDLER tbl_name OPEN [ AS alias ]
//HANDLER tbl_name READ index_name = (value1,value2,...) // <-- without this line
HANDLER tbl_name READ index_name NEXT // <-- here crash the service
HANDLER tbl_name CLOSE

Suggested fix:
I believe that it would have to return an error.
[2 Sep 2004 17:51] MySQL Verification Team
Verified with the latest BK 4.0 tree.

create table innhandler(id int primary key,
first_name varchar(10),
last_name varchar(10),
index(first_name,last_name))engine=innodb;

insert into innhandler values
(1,'aaa','bbb');

HANDLER innhandler OPEN as a;
HANDLER a READ first_name NEXT;

(gdb) bt
#0  que_fork_get_first_thr (fork=0x0) at ../../innobase/que/../include/que0que.ic:32
#1  0x0823e15c in row_search_for_mysql (buf=0x8a2e558 "ü\001", mode=0, prebuilt=0x41196a68, match_mode=0,
    direction=1) at row0sel.c:2988
#2  0x08168994 in ha_innobase::general_fetch (this=0x8a2e470, buf=0x8a2e558 "ü\001", direction=1, match_mode=0)
    at ha_innodb.cc:2940
#3  0x08168a55 in ha_innobase::index_next (this=0x8a2e470, buf=0x8a2e558 "ü\001") at ha_innodb.cc:2976
#4  0x080bad6a in mysql_ha_read (thd=0x8a232e0, tables=0x8a33c98, mode=RNEXT, keyname=0x8a33ce8 "first_name",
    key_expr=0x8a33d08, ha_rkey_mode=HA_READ_KEY_EXACT, cond=0x0, select_limit=1, offset_limit=0)
    at sql_handler.cc:277
#5  0x08106f0f in mysql_execute_command () at sql_parse.cc:2535
#6  0x08107d0c in mysql_parse (thd=0x8a232e0, inBuf=0x8a33c48 "HANDLER a READ first_name NEXT", length=30)
    at sql_parse.cc:3001
#7  0x0810320c in dispatch_command (command=COM_QUERY, thd=0x8a232e0, packet=0x8a2fbe9 "", packet_length=31)
    at sql_parse.cc:1083
#8  0x08102c6f in do_command (thd=0x8a232e0) at sql_parse.cc:953
#9  0x0810234e in handle_one_connection (arg=0x8a232e0) at sql_parse.cc:737
#10 0x4016314b in pthread_start_thread () from /lib/libpthread.so.0
#11 0x401631df in pthread_start_thread_event () from /lib/libpthread.so.0
#12 0x402df50a in clone () from /lib/libc.so.6
[27 Oct 2004 13:40] Heikki Tuuri
Hi!

Is the command sequence correct for HANDLER at all?

Regards,
Heikki
[27 Oct 2004 14:43] Andres Castiglia
obviously the command sequence is incorrect, but don't must crash the service
[6 Dec 2004 20:19] Sergei Golubchik
Heikki, I would prefer to have it fixed in the InnoDB (or rather in ha_innodb.cc).

FIxing it in the HANDLER command it rather easy in 4.1, but I would rather not to backport these changes to 4.0. Fixing in ha_innodb requires less code changes in the stable branch.
[7 May 2005 10:50] David Axmark
Monty wanted this as P1 since it can crash the Server
[7 Jun 2005 20:42] 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/25731
[8 Jun 2005 15:22] Sergei Golubchik
Fixed in 4.1.13, 5.0.7
[10 Jun 2005 17:31] Paul DuBois
Noted in 4.1.13, 5.0.7 changelogs.

Portions of this website are copyright © 2001, 2002 The PHP Group

Page generated in 0.041 sec. using MySQL 8.4.7-u6-cloud

Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the respective copyright holders.
It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.