Bug #29610 func_group fails with lost connection
| Submitted: | 7 Jul 2007 10:22 | Modified: | 25 Jul 2007 3:17 |
|---|---|---|---|
| Reporter: | Daniel Fischer | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: Tests | Severity: | S7 (Test Cases) |
| Version: | 5.1.20, 5.1 BK | OS: | Any (hpux,aix,solaris,osx,linux) |
| Assigned to: | Sergey Petrunya | CPU Architecture: | Any |
[7 Jul 2007 10:22]
Daniel Fischer
[7 Jul 2007 10:30]
Daniel Fischer
Additional note: Appears to occur on 64-bit platforms only.
[7 Jul 2007 14:40]
Sveta Smirnova
Thank you for the report. Verified as described.
[11 Jul 2007 9:19]
Sergey Petrunya
Ok. managed to repeat. Stack trace:
#0 0x000000010044078c in ptr_compare_1 (compare_length=0xffffffff7d33d494,
a=0x1009c9a80, b=0x1009c9a80) at ptr_cmp.c:92
#1 0x0000000100441dd8 in queue_insert (queue=0xffffffff7d33d420,
element=0x1009c9a70 "") at queues.c:216
#2 0x00000001002e4d34 in merge_buffers (param=0xffffffff7d33d6e0,
from_file=0xffffffff7d33d870, to_file=0x100965ed0,
sort_buffer=0x100979a50 "\001\200", lastbuff=0x1009c9a70, Fb=0x1009c9a70,
Tb=0x1009c9b60, flag=1) at filesort.cc:1178
#3 0x00000001002e564c in merge_index (param=0xffffffff7d33d6e0,
sort_buffer=0x100979a50 "\001\200", buffpek=0x1009c9a70, maxbuffer=5,
tempfile=0xffffffff7d33d870, outfile=0x100965ed0) at filesort.cc:1329
#4 0x00000001002e2354 in filesort (thd=0x100949a70, table=0x100966a40,
sortorder=0x100963d80, s_length=1, select=0x100963818,
max_rows=18446744073709551615, sort_positions=false,
examined_rows=0xffffffff7d33dac0) at filesort.cc:275
#5 0x000000010024f580 in create_sort_index (thd=0x100949a70,
join=0x100967a60, order=0x100962a48, filesort_limit=18446744073709551615,
select_limit=18446744073709551615, is_order_by=true) at sql_select.cc:12905
#6 0x000000010023004c in JOIN::exec (this=0x100967a60) at sql_select.cc:2040
#7 0x0000000100230a7c in mysql_select (thd=0x100949a70,
rref_pointer_array=0x10094b5b0, tables=0x1009625e8, wild_num=0,
fields=@0x10094b4d0, conds=0x0, og_num=1, order=0x0, group=0x100962a48,
having=0x100962be8, proc_param=0x0, select_options=2147764736,
---Type <return> to continue, or q <return> to quit---
result=0x100962e20, unit=0x10094afc8, select_lex=0x10094b3c8)
at sql_select.cc:2273
#8 0x0000000100228b30 in handle_select (thd=0x100949a70, lex=0x10094af28,
result=0x100962e20, setup_tables_done_option=0) at sql_select.cc:246
#9 0x00000001001d0858 in execute_sqlcom_select (thd=0x100949a70,
all_tables=0x1009625e8) at sql_parse.cc:4493
#10 0x00000001001c7fc8 in mysql_execute_command (thd=0x100949a70)
at sql_parse.cc:1838
#11 0x00000001001d2b44 in mysql_parse (thd=0x100949a70,
inBuf=0x100962060 "SELECT a,COUNT(DISTINCT b) AS cnt FROM t1 GROUP BY a HAVING cnt > 50", length=68, found_semicolon=0xffffffff7d33fc58)
at sql_parse.cc:5395
[11 Jul 2007 9:20]
Sergey Petrunya
#0 0x000000010044078c in ptr_compare_1 (compare_length=0xffffffff7d33d494,
a=0x1009c9a80, b=0x1009c9a80) at ptr_cmp.c:92
92 reg3 int length= *compare_length-1;
(gdb) p *compare_length
$2 = 21474836494
(gdb) p/x *compare_length
$3 = 0x50000000e
^^ this seems to be the problem
[11 Jul 2007 11:18]
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/commits/30668 ChangeSet@1.2540, 2007-07-11 15:16:54+04:00, sergefp@mysql.com +1 -0 BUG#29610: crash in func_group on 64bit platform: - make merge_buffers():sort_length have type size_t as this type is expected by, e.g. ptr_compare_1, which will receive pointer to sort_length as comparison parameter.
[20 Jul 2007 23:46]
Bugs System
Pushed into 5.1.21-beta
[24 Jul 2007 17:49]
Sergey Petrunya
Yes: On 64-bit platforms, filesort code (i.e. GROUP BY/ORDER BY queries) could cause crash.
[25 Jul 2007 3:17]
Paul DuBois
Noted in 5.1.21 changelog. On 64-bit platforms, the filesort code (for queries with GROUP BY or ORDER BY) could crash due to an incorrect pointer size.
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.043 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.