How to repeat
------------------
generic readonly test on multiple connections with virtual column tables.
I will provide a sample of some tables I used, one have to run:
SELECT * FROM <table>;
in multiple connections and pick any table randomly.
Try flushing tables or optimizing them (or recreating) during a run if it is not repeatable.
In the above valgrind output, "Address 0x2f207463656c6763" is an ascii string fragment.
I don't have time to build from source and check in debugger what happens further.
sbester1
added a comment - In the above valgrind output, "Address 0x2f207463656c6763" is an ascii string fragment.
I don't have time to build from source and check in debugger what happens further.
Stack trace from 5.5 commit ceba41c0951d1d8c9b4961772b4a088769814a66
#3 <signal handler called>
#4 0x00000000008050a5 in get_datetime_value (thd=0x7fb7a44dc160, item_arg=0x7fb7a1d312c0, cache_arg=0x7fb7a1d31308, warn_item=0x7fb7a1ea3f98, is_null=0x7fb7bc9fc0ee) at /src/5.5/sql/item_cmpfunc.cc:888
#5 0x0000000000805401 in Arg_comparator::compare_datetime (this=0x7fb7a1d312b8) at /src/5.5/sql/item_cmpfunc.cc:960
#6 0x000000000081621a in Arg_comparator::compare (this=0x7fb7a1d312b8) at /src/5.5/sql/item_cmpfunc.h:78
#7 0x00000000008083d0 in Item_func_le::val_int (this=0x7fb7a1d311f0) at /src/5.5/sql/item_cmpfunc.cc:1951
#8 0x00000000007f11ab in Item::save_in_field (this=0x7fb7a1d311f0, field=0x7fb7a1ea2a60, no_conversions=false) at /src/5.5/sql/item.cc:6119
#9 0x00000000006f287e in update_virtual_fields (thd=0x7fb7a4fd1820, table=0x7fb79506a060, vcol_update_mode=VCOL_UPDATE_FOR_READ) at /src/5.5/sql/table.cc:6591
#10 0x00000000008f6a44 in rr_sequential (info=0x7fb7a1e3e328) at /src/5.5/sql/records.cc:480
#11 0x000000000067ac9e in sub_select (join=0x7fb7a1e39910, join_tab=0x7fb7a1e3e278, end_of_records=false) at /src/5.5/sql/sql_select.cc:16966
#12 0x000000000067a459 in do_select (join=0x7fb7a1e39910, fields=0x7fb7a4fd5348, table=0x0, procedure=0x0) at /src/5.5/sql/sql_select.cc:16609
#13 0x0000000000658e2a in JOIN::exec (this=0x7fb7a1e39910) at /src/5.5/sql/sql_select.cc:2873
#15 0x000000000064fed1 in handle_select (thd=0x7fb7a4fd1820, lex=0x7fb7a4fd4aa0, result=0x7fb7a1e398f0, setup_tables_done_option=0) at /src/5.5/sql/sql_select.cc:319
#16 0x0000000000629364 in execute_sqlcom_select (thd=0x7fb7a4fd1820, all_tables=0x7fb7a1e39268) at /src/5.5/sql/sql_parse.cc:4689
#17 0x0000000000622697 in mysql_execute_command (thd=0x7fb7a4fd1820) at /src/5.5/sql/sql_parse.cc:2234
#18 0x000000000062be44 in mysql_parse (thd=0x7fb7a4fd1820, rawbuf=0x7fb7a1e39078 "SELECT * FROM t0007", length=19, parser_state=0x7fb7bc9fd6a0) at /src/5.5/sql/sql_parse.cc:5914
#19 0x000000000061fc36 in dispatch_command (command=COM_QUERY, thd=0x7fb7a4fd1820, packet=0x7fb7a4fdca21 "", packet_length=19) at /src/5.5/sql/sql_parse.cc:1079
#20 0x000000000061edc9 in do_command (thd=0x7fb7a4fd1820) at /src/5.5/sql/sql_parse.cc:793
#21 0x000000000072185f in do_handle_one_connection (thd_arg=0x7fb7a4fd1820) at /src/5.5/sql/sql_connect.cc:1269
#22 0x00000000007215ec in handle_one_connection (arg=0x7fb7a4fd1820) at /src/5.5/sql/sql_connect.cc:1185
#23 0x00007fb7bed7a0a4 in start_thread () from /lib64/libpthread.so.0
#24 0x00007fb7bd76904d in clone () from /lib64/libc.so.6
All threads' stack trace is attached.
To reproduce, do as described in the report.
For example,
start the server (all defaults will do);
feed the attached schema.sql to the test database;
The crash does not happen always, you might need to try several times, or maybe try to increase the duration of the test.
If you want to try to catch valgrind warnings, run the server under valgrind, the rest is the same.
I didn't get valgrind errors on some reason, neither on valgrind build, nor on debug non-valgrind build, nor on release build. Maybe it's the matter of luck too.
Elena Stepanova
added a comment - - edited Thanks for the report.
Stack trace from 5.5 commit ceba41c0951d1d8c9b4961772b4a088769814a66
#3 <signal handler called>
#4 0x00000000008050a5 in get_datetime_value (thd=0x7fb7a44dc160, item_arg=0x7fb7a1d312c0, cache_arg=0x7fb7a1d31308, warn_item=0x7fb7a1ea3f98, is_null=0x7fb7bc9fc0ee) at /src/5.5/sql/item_cmpfunc.cc:888
#5 0x0000000000805401 in Arg_comparator::compare_datetime (this=0x7fb7a1d312b8) at /src/5.5/sql/item_cmpfunc.cc:960
#6 0x000000000081621a in Arg_comparator::compare (this=0x7fb7a1d312b8) at /src/5.5/sql/item_cmpfunc.h:78
#7 0x00000000008083d0 in Item_func_le::val_int (this=0x7fb7a1d311f0) at /src/5.5/sql/item_cmpfunc.cc:1951
#8 0x00000000007f11ab in Item::save_in_field (this=0x7fb7a1d311f0, field=0x7fb7a1ea2a60, no_conversions=false) at /src/5.5/sql/item.cc:6119
#9 0x00000000006f287e in update_virtual_fields (thd=0x7fb7a4fd1820, table=0x7fb79506a060, vcol_update_mode=VCOL_UPDATE_FOR_READ) at /src/5.5/sql/table.cc:6591
#10 0x00000000008f6a44 in rr_sequential (info=0x7fb7a1e3e328) at /src/5.5/sql/records.cc:480
#11 0x000000000067ac9e in sub_select (join=0x7fb7a1e39910, join_tab=0x7fb7a1e3e278, end_of_records=false) at /src/5.5/sql/sql_select.cc:16966
#12 0x000000000067a459 in do_select (join=0x7fb7a1e39910, fields=0x7fb7a4fd5348, table=0x0, procedure=0x0) at /src/5.5/sql/sql_select.cc:16609
#13 0x0000000000658e2a in JOIN::exec (this=0x7fb7a1e39910) at /src/5.5/sql/sql_select.cc:2873
#14 0x0000000000659635 in mysql_select (thd=0x7fb7a4fd1820, rref_pointer_array=0x7fb7a4fd54a0, tables=0x7fb7a1e39268, wild_num=1, fields=..., conds=0x0, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=2147748608, result=0x7fb7a1e398f0, unit=0x7fb7a4fd4b50, select_lex=0x7fb7a4fd5230) at /src/5.5/sql/sql_select.cc:3094
#15 0x000000000064fed1 in handle_select (thd=0x7fb7a4fd1820, lex=0x7fb7a4fd4aa0, result=0x7fb7a1e398f0, setup_tables_done_option=0) at /src/5.5/sql/sql_select.cc:319
#16 0x0000000000629364 in execute_sqlcom_select (thd=0x7fb7a4fd1820, all_tables=0x7fb7a1e39268) at /src/5.5/sql/sql_parse.cc:4689
#17 0x0000000000622697 in mysql_execute_command (thd=0x7fb7a4fd1820) at /src/5.5/sql/sql_parse.cc:2234
#18 0x000000000062be44 in mysql_parse (thd=0x7fb7a4fd1820, rawbuf=0x7fb7a1e39078 "SELECT * FROM t0007", length=19, parser_state=0x7fb7bc9fd6a0) at /src/5.5/sql/sql_parse.cc:5914
#19 0x000000000061fc36 in dispatch_command (command=COM_QUERY, thd=0x7fb7a4fd1820, packet=0x7fb7a4fdca21 "", packet_length=19) at /src/5.5/sql/sql_parse.cc:1079
#20 0x000000000061edc9 in do_command (thd=0x7fb7a4fd1820) at /src/5.5/sql/sql_parse.cc:793
#21 0x000000000072185f in do_handle_one_connection (thd_arg=0x7fb7a4fd1820) at /src/5.5/sql/sql_connect.cc:1269
#22 0x00000000007215ec in handle_one_connection (arg=0x7fb7a4fd1820) at /src/5.5/sql/sql_connect.cc:1185
#23 0x00007fb7bed7a0a4 in start_thread () from /lib64/libpthread.so.0
#24 0x00007fb7bd76904d in clone () from /lib64/libc.so.6
All threads' stack trace is attached.
To reproduce, do as described in the report.
For example,
start the server (all defaults will do);
feed the attached schema.sql to the test database;
run RQG test with this grammar and command line:
perl ./gentest.pl --dsn="dbi:mysql:user=root:host=127.0.0.1:port=3306:database=test" --grammar=mdev9690.yy --threads=8 --duration=100 --queries=100M
mdev9690.yy
thread1:
select | select | select | select | select | select | select | select | select |
flush | optimize ;
query:
select ;
flush:
FLUSH TABLES;
optimize:
OPTIMIZE TABLE my_table ;
select:
SELECT * FROM my_table ;
my_table:
t0000 | t0001 | t0002 | t0003 | t0004 | t0005 | t0006 | t0007 | t0008 | t0009 |
t0010 | t0011 | t0012 | t0013 | t0014 | t0015 | t0016 | t0018 | t0019 |
t0020 | t0021 | t0022 | t0023 | t0025 | t0026 | t0027 | t0028 | t0029
;
The crash does not happen always, you might need to try several times, or maybe try to increase the duration of the test.
If you want to try to catch valgrind warnings, run the server under valgrind, the rest is the same.
I didn't get valgrind errors on some reason, neither on valgrind build, nor on debug non-valgrind build, nor on release build. Maybe it's the matter of luck too.
In the above valgrind output, "Address 0x2f207463656c6763" is an ascii string fragment.
I don't have time to build from source and check in debugger what happens further.