Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MySQL crashes when HLL_BIT_WIDTH > 13 #7

Open
isartmontane opened this issue Nov 4, 2016 · 2 comments
Open

MySQL crashes when HLL_BIT_WIDTH > 13 #7

isartmontane opened this issue Nov 4, 2016 · 2 comments

Comments

@isartmontane
Copy link

isartmontane commented Nov 4, 2016

Hi,

I'm getting MySQL crashes when trying to run it with HLL_BIT_WIDTH > 13. It works fine with 10-13, but when using it with 14-16 I get the following crash.

17:12:28 UTC - mysqld got signal 11 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.
Attempting to collect some information that could help diagnose the problem.
As this is a crash and something is definitely wrong, the information
collection process might fail.
Please help us make Percona Server better by reporting any
bugs at http://bugs.percona.com/

key_buffer_size=33554432
read_buffer_size=131072
max_used_connections=1
max_threads=100001
thread_count=1
connection_count=1
It is possible that mysqld could use up to 
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 38573172 K  bytes of memory
Hope that's ok; if not, decrease some variables in the equation.

Thread pointer: 0x7f78dd79f000
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
stack_bottom = 7f798381ed08 thread_stack 0x40000
/usr/sbin/mysqld(my_print_stacktrace+0x2c)[0xec804c]
/usr/sbin/mysqld(handle_fatal_signal+0x461)[0x79e2f1]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x10330)[0x7f7981d91330]
/usr/sbin/mysqld(_Z14binlog_log_rowP5TABLEPKhS2_PFbP3THDS0_bS2_S2_E+0x1cd)[0x804e1d]
/usr/sbin/mysqld(_Z12write_recordP3THDP5TABLEP9COPY_INFOS4_+0x19b)[0xe13a4b]
/usr/sbin/mysqld(_ZN19Query_result_insert9send_dataER4ListI4ItemE+0xaf)[0xe155cf]
/usr/sbin/mysqld(_Z14end_send_groupP4JOINP7QEP_TABb+0x45a)[0xc7c56a]
/usr/sbin/mysqld[0xc78235]
/usr/sbin/mysqld(_Z10sub_selectP4JOINP7QEP_TABb+0x18c)[0xc7d72c]
/usr/sbin/mysqld(_ZN4JOIN4execEv+0x237)[0xc764a7]
/usr/sbin/mysqld(_Z12handle_queryP3THDP3LEXP12Query_resultyy+0x17d)[0xce550d]
/usr/sbin/mysqld(_ZN21Sql_cmd_insert_select7executeEP3THD+0x3d7)[0xe12fb7]
/usr/sbin/mysqld(_Z21mysql_execute_commandP3THDb+0x1118)[0xca50e8]
/usr/sbin/mysqld(_Z11mysql_parseP3THDP12Parser_state+0x5c5)[0xcab7c5]
/usr/sbin/mysqld(_Z16dispatch_commandP3THDPK8COM_DATA19enum_server_command+0x92f)[0xcac17f]
/usr/sbin/mysqld(_Z10do_commandP3THD+0x1b7)[0xcadb17]
/usr/sbin/mysqld(_Z26threadpool_process_requestP3THD+0xc7)[0xd51887]
/usr/sbin/mysqld[0xd60b2e]
/usr/sbin/mysqld(pfs_spawn_thread+0x1b4)[0x12464a4]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x8184)[0x7f7981d89184]
/lib/x86_64-linux-gnu/libc.so.6(clone+0x6d)[0x7f798129637d]

Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.

The query that it's making it fail is just a SELECT that works fine with other values of HLL_BIT_WIDTH on a table with 8M rows

select 'string', is_a, is_b, hll_create(user_id)  from table group by is_a, is_b;

The server is running MySQL 5.7 (Percona's fork) under ubuntu 14.04

ii  libperconaserverclient20:amd64        5.7.15-9-1.trusty                amd64        Percona Server database client library
ii  libperconaserverclient20-dev          5.7.15-9-1.trusty                amd64        Percona Server database development files
@amirtuval
Copy link
Owner

Hi, Isart

This is a bug, where I allocate a buffer that's too small.
The workaround is to change the buffer size from 10000 to something bigger, that can accommodate your bit width.
You can find the relevant line in mysqlhll.cxx, line 85.

Thanks for reporting it, hopefully I'll find some time to properly fix it soon.
I'd also appreciate a pull request, if you've got some time to spare and want to fix it yourself.

Thanks
Amir

@isartmontane
Copy link
Author

Hi Amir,

thanks a lot for your quick answer.

I've submitted a fix on a PR that seems to fix the issue I was having. Could you please double check?

Isart

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants