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

prod201704 AUTO INCREMENT regressions #792

Closed
george-lorch opened this issue Feb 12, 2018 · 3 comments
Closed

prod201704 AUTO INCREMENT regressions #792

george-lorch opened this issue Feb 12, 2018 · 3 comments

Comments

@george-lorch
Copy link

There are two fairly serious regressions introduced within the prod201704 change set :

CREATE DATABASE test; USE test; CREATE TABLE t1(C1 DOUBLE AUTO_INCREMENT KEY,C2 CHAR)ENGINE=RocksDB; insert into t1 values(2177,0);

#0 0x00007ffff5f53c37 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1 0x00007ffff5f57028 in __GI_abort () at abort.c:89
#2 0x00000000012d98e1 in myrocks::rdb_get_int_col_max_value (field=0x7fffc8880448) at /ssd/percona/myrocks/facebook-mysql-5.6/storage/rocksdb/ha_rocksdb.cc:4702
#3 0x00000000012d9d75 in myrocks::ha_rocksdb::update_auto_incr_val_from_field (this=0x7fffc8820d10) at /ssd/percona/myrocks/facebook-mysql-5.6/storage/rocksdb/ha_rocksdb.cc:4815
#4 0x00000000012e6eae in myrocks::ha_rocksdb::update_pk (this=0x7fffc8820d10, kd=..., row_info=..., pk_changed=@0x7ffff7f7965b: false) at /ssd/percona/myrocks/facebook-mysql-5.6/storage/rocksdb/ha_rocksdb.cc:8946
#5 0x00000000012e76a3 in myrocks::ha_rocksdb::update_indexes (this=0x7fffc8820d10, row_info=..., pk_changed=@0x7ffff7f7965b: false) at /ssd/percona/myrocks/facebook-mysql-5.6/storage/rocksdb/ha_rocksdb.cc:9087
#6 0x00000000012e795d in myrocks::ha_rocksdb::update_write_row (this=0x7fffc8820d10, old_data=0x0, new_data=0x7fffc8880410 <incomplete sequence \375>, skip_unique_check=false)
at /ssd/percona/myrocks/facebook-mysql-5.6/storage/rocksdb/ha_rocksdb.cc:9159
#7 0x00000000012e5c1f in myrocks::ha_rocksdb::write_row (this=0x7fffc8820d10, buf=0x7fffc8880410 <incomplete sequence \375>) at /ssd/percona/myrocks/facebook-mysql-5.6/storage/rocksdb/ha_rocksdb.cc:8555
#8 0x0000000000d82ce3 in handler::ha_write_row (this=0x7fffc8820d10, buf=0x7fffc8880410 <incomplete sequence \375>) at /ssd/percona/myrocks/facebook-mysql-5.6/sql/handler.cc:7784
#9 0x0000000000f33745 in write_record (thd=0x7fffce9d1000, table=0x7fffc8864a00, info=0x7ffff7f79a50, update=0x7ffff7f79ad0) at /ssd/percona/myrocks/facebook-mysql-5.6/sql/sql_insert.cc:1889
#10 0x0000000000f314a9 in mysql_insert (thd=0x7fffce9d1000, table_list=0x7fffc8831100, fields=..., values_list=..., update_fields=..., update_values=..., duplic=DUP_ERROR, ignore=false)
at /ssd/percona/myrocks/facebook-mysql-5.6/sql/sql_insert.cc:1030
#11 0x0000000000f5a787 in mysql_execute_command (thd=0x7fffce9d1000, statement_start_time=0x7ffff7f7b208, post_parse=0x7ffff7f7b430) at /ssd/percona/myrocks/facebook-mysql-5.6/sql/sql_parse.cc:4526
#12 0x0000000000f6350a in mysql_parse (thd=0x7fffce9d1000, rawbuf=0x7fffc8831010 "insert into t1 values(2177,0)", length=29, parser_state=0x7ffff7f7bcd0, last_timer=0x7ffff7f7b430, async_commit=0x7ffff7f7b39b "")
at /ssd/percona/myrocks/facebook-mysql-5.6/sql/sql_parse.cc:7829
#13 0x0000000000f53bcd in dispatch_command (command=COM_QUERY, thd=0x7fffce9d1000, packet=0x7fffceaf0001 "insert into t1 values(2177,0)", packet_length=29, srv_session=0x0)
at /ssd/percona/myrocks/facebook-mysql-5.6/sql/sql_parse.cc:1897
#14 0x0000000000f51d2c in do_command (thd=0x7fffce9d1000) at /ssd/percona/myrocks/facebook-mysql-5.6/sql/sql_parse.cc:1212
#15 0x0000000000f0fb05 in do_handle_one_connection (thd_arg=0x7fffce9d1000) at /ssd/percona/myrocks/facebook-mysql-5.6/sql/sql_connect.cc:1142
#16 0x0000000000f0f51c in handle_one_connection (arg=0x7fffce9d1000) at /ssd/percona/myrocks/facebook-mysql-5.6/sql/sql_connect.cc:963
#17 0x0000000001afb299 in pfs_spawn_thread (arg=0x7ffff54fe100) at /ssd/percona/myrocks/facebook-mysql-5.6/storage/perfschema/pfs.cc:1860
#18 0x00007ffff6b0e184 in start_thread (arg=0x7ffff7f7d700) at pthread_create.c:312
#19 0x00007ffff601affd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

This was introduced at this commit : 4d66a66

Then there is this :
CREATE DATABASE test; USE test; set default_storage_engine=RocksDB; CREATE TABLE t0(c0 BLOB); INSERT INTO t0 VALUES(0); ALTER TABLE t0 AUTO_INCREMENT=0;

#0 0x00000000012d9b31 in myrocks::ha_rocksdb::load_auto_incr_value_from_index (this=0x7fffc9020d10) at /ssd/percona/myrocks/facebook-mysql-5.6/storage/rocksdb/ha_rocksdb.cc:4762
#1 0x00000000012ee46b in myrocks::ha_rocksdb::prepare_inplace_alter_table (this=0x7fffc9020d10, altered_table=0x7fffc90d2e00, ha_alter_info=0x7ffff7f77da0)
at /ssd/percona/myrocks/facebook-mysql-5.6/storage/rocksdb/ha_rocksdb.cc:11169
#2 0x0000000000d7c69b in handler::ha_prepare_inplace_alter_table (this=0x7fffc9020d10, altered_table=0x7fffc90d2e00, ha_alter_info=0x7ffff7f77da0) at /ssd/percona/myrocks/facebook-mysql-5.6/sql/handler.cc:4721
#3 0x0000000000fdca16 in mysql_inplace_alter_table (thd=0x7fffce9d2000, table_list=0x7fffc9035100, table=0x7fffc9092800, altered_table=0x7fffc90d2e00, ha_alter_info=0x7ffff7f77da0,
inplace_supported=HA_ALTER_INPLACE_SHARED_LOCK_AFTER_PREPARE, target_mdl_request=0x7ffff7f77e30, alter_ctx=0x7ffff7f78950) at /ssd/percona/myrocks/facebook-mysql-5.6/sql/sql_table.cc:6779
#4 0x0000000000fe20f3 in mysql_alter_table (thd=0x7fffce9d2000, new_db=0x7fffc9035668 "test", new_name=0x0, create_info=0x7ffff7f795a0, table_list=0x7fffc9035100, alter_info=0x7ffff7f794c0, order_num=0, order=0x0,
ignore=false) at /ssd/percona/myrocks/facebook-mysql-5.6/sql/sql_table.cc:8957
#5 0x0000000001166800 in Sql_cmd_alter_table::execute (this=0x7fffc9035678, thd=0x7fffce9d2000) at /ssd/percona/myrocks/facebook-mysql-5.6/sql/sql_alter.cc:335
#6 0x0000000000f5f507 in mysql_execute_command (thd=0x7fffce9d2000, statement_start_time=0x7ffff7f7b208, post_parse=0x7ffff7f7b430) at /ssd/percona/myrocks/facebook-mysql-5.6/sql/sql_parse.cc:6143
#7 0x0000000000f6350a in mysql_parse (thd=0x7fffce9d2000, rawbuf=0x7fffc9035010 "ALTER TABLE t0 AUTO_INCREMENT=0", length=31, parser_state=0x7ffff7f7bcd0, last_timer=0x7ffff7f7b430, async_commit=0x7ffff7f7b39b "")
at /ssd/percona/myrocks/facebook-mysql-5.6/sql/sql_parse.cc:7829
#8 0x0000000000f53bcd in dispatch_command (command=COM_QUERY, thd=0x7fffce9d2000, packet=0x7fffceaf0001 "ALTER TABLE t0 AUTO_INCREMENT=0", packet_length=31, srv_session=0x0)
at /ssd/percona/myrocks/facebook-mysql-5.6/sql/sql_parse.cc:1897
#9 0x0000000000f51d2c in do_command (thd=0x7fffce9d2000) at /ssd/percona/myrocks/facebook-mysql-5.6/sql/sql_parse.cc:1212
#10 0x0000000000f0fb05 in do_handle_one_connection (thd_arg=0x7fffce9d2000) at /ssd/percona/myrocks/facebook-mysql-5.6/sql/sql_connect.cc:1142
#11 0x0000000000f0f51c in handle_one_connection (arg=0x7fffce9d2000) at /ssd/percona/myrocks/facebook-mysql-5.6/sql/sql_connect.cc:963
#12 0x0000000001afb299 in pfs_spawn_thread (arg=0x7ffff54fdf80) at /ssd/percona/myrocks/facebook-mysql-5.6/storage/perfschema/pfs.cc:1860
#13 0x00007ffff6b0e184 in start_thread (arg=0x7ffff7f7d700) at pthread_create.c:312
#14 0x00007ffff601affd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

This was introduced at this commit : 9f53fae

@george-lorch
Copy link
Author

@lth
Copy link
Contributor

lth commented Feb 15, 2018

Thanks for letting us know. I'll get a fix out.

george-lorch pushed a commit to george-lorch/percona-server that referenced this issue Feb 15, 2018
Upstream commit ID : fb-mysql-5.6.35/997a979bf5e2f75ab88781d9d3fd22dddc1fc21f
Cherry picked directly.

Summary:
There are two issues related to autoincrement that can lead to crashes:

1. The max value for double/float type for autoincrement was not implemented in MyRocks, and can lead to assertions. The fix is to add them in.
2. If we try to set auto_increment via alter table on a table without an auto_increment column defined, we segfault because there is no index from which to read the last value. The fix is to perform a check to see if autoincrement exists before reading from index (similar to code ha_rocksdb::open).

Fixes facebook/mysql-5.6#792
Closes facebook/mysql-5.6#794

Differential Revision: D6995096

Pulled By: lth

fbshipit-source-id: 1130ce1
@george-lorch
Copy link
Author

This is great! It tests out perfectly. Thanks Manuel!

spetrunia added a commit to MariaDB/server that referenced this issue May 14, 2018
…value_from_index

Backport the fix from the upstream and add our testcase.
Backported cset:
commit 997a979bf5e2f75ab88781d9d3fd22dddc1fc21f
Author: Manuel Ung <mung@fb.com>
Date:   Thu Feb 15 08:38:12 2018 -0800

    Fix crashes in autoincrement code paths

    Summary:
    There are two issues related to autoincrement that can lead to crashes:

    1. The max value for double/float type for autoincrement was not implemented in MyRocks, and can lead to assertions. The fix is to add them in.
    2. If we try to set auto_increment via alter table on a table without an auto_increment column defined, we segfault because there is no index from which to read the last value. The fix is to perform a check to see if autoincrement exists before reading from index (similar to code ha_rocksdb::open).

    Fixes facebook/mysql-5.6#792
    Closes facebook/mysql-5.6#794

    Differential Revision: D6995096

    Pulled By: lth

    fbshipit-source-id: 1130ce1
facebook-github-bot pushed a commit that referenced this issue Dec 23, 2019
Summary:
There are two issues related to autoincrement that can lead to crashes:

1. The max value for double/float type for autoincrement was not implemented in MyRocks, and can lead to assertions. The fix is to add them in.
2. If we try to set auto_increment via alter table on a table without an auto_increment column defined, we segfault because there is no index from which to read the last value. The fix is to perform a check to see if autoincrement exists before reading from index (similar to code ha_rocksdb::open).

Fixes #792
Closes #794

Differential Revision: D6995096

Pulled By: lth

fbshipit-source-id: 9ad4072
inikep pushed a commit to inikep/mysql-5.6 that referenced this issue Aug 12, 2020
Summary:
There are two issues related to autoincrement that can lead to crashes:

1. The max value for double/float type for autoincrement was not implemented in MyRocks, and can lead to assertions. The fix is to add them in.
2. If we try to set auto_increment via alter table on a table without an auto_increment column defined, we segfault because there is no index from which to read the last value. The fix is to perform a check to see if autoincrement exists before reading from index (similar to code ha_rocksdb::open).

Fixes facebook#792
Closes facebook#794

Differential Revision: D6995096

Pulled By: lth

fbshipit-source-id: 9ad4072
inikep pushed a commit to inikep/mysql-5.6 that referenced this issue Sep 9, 2020
Summary:
There are two issues related to autoincrement that can lead to crashes:

1. The max value for double/float type for autoincrement was not implemented in MyRocks, and can lead to assertions. The fix is to add them in.
2. If we try to set auto_increment via alter table on a table without an auto_increment column defined, we segfault because there is no index from which to read the last value. The fix is to perform a check to see if autoincrement exists before reading from index (similar to code ha_rocksdb::open).

Fixes facebook#792
Closes facebook#794

Differential Revision: D6995096

Pulled By: lth

fbshipit-source-id: 9ad4072
inikep pushed a commit to inikep/mysql-5.6 that referenced this issue Sep 16, 2020
Summary:
There are two issues related to autoincrement that can lead to crashes:

1. The max value for double/float type for autoincrement was not implemented in MyRocks, and can lead to assertions. The fix is to add them in.
2. If we try to set auto_increment via alter table on a table without an auto_increment column defined, we segfault because there is no index from which to read the last value. The fix is to perform a check to see if autoincrement exists before reading from index (similar to code ha_rocksdb::open).

Fixes facebook#792
Closes facebook#794

Differential Revision: D6995096

Pulled By: lth

fbshipit-source-id: 9ad4072
inikep pushed a commit to inikep/mysql-5.6 that referenced this issue Oct 5, 2020
Summary:
There are two issues related to autoincrement that can lead to crashes:

1. The max value for double/float type for autoincrement was not implemented in MyRocks, and can lead to assertions. The fix is to add them in.
2. If we try to set auto_increment via alter table on a table without an auto_increment column defined, we segfault because there is no index from which to read the last value. The fix is to perform a check to see if autoincrement exists before reading from index (similar to code ha_rocksdb::open).

Fixes facebook#792
Closes facebook#794

Differential Revision: D6995096

Pulled By: lth

fbshipit-source-id: 9ad4072
inikep pushed a commit to inikep/mysql-5.6 that referenced this issue Nov 11, 2020
Summary:
There are two issues related to autoincrement that can lead to crashes:

1. The max value for double/float type for autoincrement was not implemented in MyRocks, and can lead to assertions. The fix is to add them in.
2. If we try to set auto_increment via alter table on a table without an auto_increment column defined, we segfault because there is no index from which to read the last value. The fix is to perform a check to see if autoincrement exists before reading from index (similar to code ha_rocksdb::open).

Fixes facebook#792
Closes facebook#794

Differential Revision: D6995096

Pulled By: lth

fbshipit-source-id: 9ad4072
facebook-github-bot pushed a commit that referenced this issue Mar 8, 2021
Summary:
There are two issues related to autoincrement that can lead to crashes:

1. The max value for double/float type for autoincrement was not implemented in MyRocks, and can lead to assertions. The fix is to add them in.
2. If we try to set auto_increment via alter table on a table without an auto_increment column defined, we segfault because there is no index from which to read the last value. The fix is to perform a check to see if autoincrement exists before reading from index (similar to code ha_rocksdb::open).

Fixes #792
Closes #794

Differential Revision: D6995096 (997a979)

Pulled By: lth

fbshipit-source-id: b3c281239c8
inikep pushed a commit to inikep/mysql-5.6 that referenced this issue Aug 16, 2021
Summary:
There are two issues related to autoincrement that can lead to crashes:

1. The max value for double/float type for autoincrement was not implemented in MyRocks, and can lead to assertions. The fix is to add them in.
2. If we try to set auto_increment via alter table on a table without an auto_increment column defined, we segfault because there is no index from which to read the last value. The fix is to perform a check to see if autoincrement exists before reading from index (similar to code ha_rocksdb::open).

Fixes facebook#792
Closes facebook#794

Differential Revision: D6995096 (facebook@997a979)

Pulled By: lth

fbshipit-source-id: b3c281239c8
inikep pushed a commit to inikep/mysql-5.6 that referenced this issue Aug 17, 2021
Summary:
There are two issues related to autoincrement that can lead to crashes:

1. The max value for double/float type for autoincrement was not implemented in MyRocks, and can lead to assertions. The fix is to add them in.
2. If we try to set auto_increment via alter table on a table without an auto_increment column defined, we segfault because there is no index from which to read the last value. The fix is to perform a check to see if autoincrement exists before reading from index (similar to code ha_rocksdb::open).

Fixes facebook#792
Closes facebook#794

Differential Revision: D6995096 (facebook@997a979)

Pulled By: lth

fbshipit-source-id: b3c281239c8
inikep pushed a commit to inikep/mysql-5.6 that referenced this issue Aug 30, 2021
Summary:
There are two issues related to autoincrement that can lead to crashes:

1. The max value for double/float type for autoincrement was not implemented in MyRocks, and can lead to assertions. The fix is to add them in.
2. If we try to set auto_increment via alter table on a table without an auto_increment column defined, we segfault because there is no index from which to read the last value. The fix is to perform a check to see if autoincrement exists before reading from index (similar to code ha_rocksdb::open).

Fixes facebook#792
Closes facebook#794

Differential Revision: D6995096 (facebook@997a979)

Pulled By: lth

fbshipit-source-id: b3c281239c8
inikep pushed a commit to inikep/mysql-5.6 that referenced this issue Aug 30, 2021
Summary:
There are two issues related to autoincrement that can lead to crashes:

1. The max value for double/float type for autoincrement was not implemented in MyRocks, and can lead to assertions. The fix is to add them in.
2. If we try to set auto_increment via alter table on a table without an auto_increment column defined, we segfault because there is no index from which to read the last value. The fix is to perform a check to see if autoincrement exists before reading from index (similar to code ha_rocksdb::open).

Fixes facebook#792
Closes facebook#794

Differential Revision: D6995096 (facebook@997a979)

Pulled By: lth

fbshipit-source-id: b3c281239c8
inikep pushed a commit to inikep/mysql-5.6 that referenced this issue Aug 31, 2021
Summary:
There are two issues related to autoincrement that can lead to crashes:

1. The max value for double/float type for autoincrement was not implemented in MyRocks, and can lead to assertions. The fix is to add them in.
2. If we try to set auto_increment via alter table on a table without an auto_increment column defined, we segfault because there is no index from which to read the last value. The fix is to perform a check to see if autoincrement exists before reading from index (similar to code ha_rocksdb::open).

Fixes facebook#792
Closes facebook#794

Differential Revision: D6995096 (facebook@997a979)

Pulled By: lth

fbshipit-source-id: b3c281239c8
inikep pushed a commit to inikep/mysql-5.6 that referenced this issue Sep 1, 2021
Summary:
There are two issues related to autoincrement that can lead to crashes:

1. The max value for double/float type for autoincrement was not implemented in MyRocks, and can lead to assertions. The fix is to add them in.
2. If we try to set auto_increment via alter table on a table without an auto_increment column defined, we segfault because there is no index from which to read the last value. The fix is to perform a check to see if autoincrement exists before reading from index (similar to code ha_rocksdb::open).

Fixes facebook#792
Closes facebook#794

Differential Revision: D6995096 (facebook@997a979)

Pulled By: lth

fbshipit-source-id: b3c281239c8
inikep pushed a commit to inikep/mysql-5.6 that referenced this issue Sep 2, 2021
Summary:
There are two issues related to autoincrement that can lead to crashes:

1. The max value for double/float type for autoincrement was not implemented in MyRocks, and can lead to assertions. The fix is to add them in.
2. If we try to set auto_increment via alter table on a table without an auto_increment column defined, we segfault because there is no index from which to read the last value. The fix is to perform a check to see if autoincrement exists before reading from index (similar to code ha_rocksdb::open).

Fixes facebook#792
Closes facebook#794

Differential Revision: D6995096 (facebook@997a979)

Pulled By: lth

fbshipit-source-id: b3c281239c8
hermanlee pushed a commit that referenced this issue Jan 10, 2022
Summary:
There are two issues related to autoincrement that can lead to crashes:

1. The max value for double/float type for autoincrement was not implemented in MyRocks, and can lead to assertions. The fix is to add them in.
2. If we try to set auto_increment via alter table on a table without an auto_increment column defined, we segfault because there is no index from which to read the last value. The fix is to perform a check to see if autoincrement exists before reading from index (similar to code ha_rocksdb::open).

Fixes #792
Closes #794

Differential Revision: D6995096

Pulled By: lth
inikep pushed a commit to inikep/mysql-5.6 that referenced this issue Jan 17, 2022
Summary:
There are two issues related to autoincrement that can lead to crashes:

1. The max value for double/float type for autoincrement was not implemented in MyRocks, and can lead to assertions. The fix is to add them in.
2. If we try to set auto_increment via alter table on a table without an auto_increment column defined, we segfault because there is no index from which to read the last value. The fix is to perform a check to see if autoincrement exists before reading from index (similar to code ha_rocksdb::open).

Fixes facebook#792
Closes facebook#794

Differential Revision: D6995096

Pulled By: lth
inikep pushed a commit to inikep/mysql-5.6 that referenced this issue Jan 17, 2022
Summary:
There are two issues related to autoincrement that can lead to crashes:

1. The max value for double/float type for autoincrement was not implemented in MyRocks, and can lead to assertions. The fix is to add them in.
2. If we try to set auto_increment via alter table on a table without an auto_increment column defined, we segfault because there is no index from which to read the last value. The fix is to perform a check to see if autoincrement exists before reading from index (similar to code ha_rocksdb::open).

Fixes facebook#792
Closes facebook#794

Differential Revision: D6995096

Pulled By: lth
ldonoso pushed a commit to ldonoso/percona-server that referenced this issue Mar 15, 2022
Summary:
There are two issues related to autoincrement that can lead to crashes:

1. The max value for double/float type for autoincrement was not implemented in MyRocks, and can lead to assertions. The fix is to add them in.
2. If we try to set auto_increment via alter table on a table without an auto_increment column defined, we segfault because there is no index from which to read the last value. The fix is to perform a check to see if autoincrement exists before reading from index (similar to code ha_rocksdb::open).

Fixes facebook/mysql-5.6#792
Closes facebook/mysql-5.6#794

Differential Revision: D6995096

Pulled By: lth
inikep pushed a commit to inikep/mysql-5.6 that referenced this issue May 20, 2022
Summary:
There are two issues related to autoincrement that can lead to crashes:

1. The max value for double/float type for autoincrement was not implemented in MyRocks, and can lead to assertions. The fix is to add them in.
2. If we try to set auto_increment via alter table on a table without an auto_increment column defined, we segfault because there is no index from which to read the last value. The fix is to perform a check to see if autoincrement exists before reading from index (similar to code ha_rocksdb::open).

Fixes facebook#792
Closes facebook#794

Differential Revision: D6995096

Pulled By: lth
inikep pushed a commit to inikep/mysql-5.6 that referenced this issue May 23, 2022
Summary:
There are two issues related to autoincrement that can lead to crashes:

1. The max value for double/float type for autoincrement was not implemented in MyRocks, and can lead to assertions. The fix is to add them in.
2. If we try to set auto_increment via alter table on a table without an auto_increment column defined, we segfault because there is no index from which to read the last value. The fix is to perform a check to see if autoincrement exists before reading from index (similar to code ha_rocksdb::open).

Fixes facebook#792
Closes facebook#794

Differential Revision: D6995096

Pulled By: lth
laurynas-biveinis pushed a commit to laurynas-biveinis/mysql-5.6 that referenced this issue Aug 11, 2022
Summary:
There are two issues related to autoincrement that can lead to crashes:

1. The max value for double/float type for autoincrement was not implemented in MyRocks, and can lead to assertions. The fix is to add them in.
2. If we try to set auto_increment via alter table on a table without an auto_increment column defined, we segfault because there is no index from which to read the last value. The fix is to perform a check to see if autoincrement exists before reading from index (similar to code ha_rocksdb::open).

Fixes facebook#792
Closes facebook#794

Differential Revision: D6995096

Pulled By: lth
inikep pushed a commit to inikep/mysql-5.6 that referenced this issue Mar 25, 2023
Summary:
There are two issues related to autoincrement that can lead to crashes:

1. The max value for double/float type for autoincrement was not implemented in MyRocks, and can lead to assertions. The fix is to add them in.
2. If we try to set auto_increment via alter table on a table without an auto_increment column defined, we segfault because there is no index from which to read the last value. The fix is to perform a check to see if autoincrement exists before reading from index (similar to code ha_rocksdb::open).

Fixes facebook#792
Closes facebook#794

Differential Revision: D6995096

Pulled By: lth
inikep pushed a commit to inikep/mysql-5.6 that referenced this issue Mar 28, 2023
Summary:
There are two issues related to autoincrement that can lead to crashes:

1. The max value for double/float type for autoincrement was not implemented in MyRocks, and can lead to assertions. The fix is to add them in.
2. If we try to set auto_increment via alter table on a table without an auto_increment column defined, we segfault because there is no index from which to read the last value. The fix is to perform a check to see if autoincrement exists before reading from index (similar to code ha_rocksdb::open).

Fixes facebook#792
Closes facebook#794

Differential Revision: D6995096

Pulled By: lth
inikep pushed a commit to inikep/mysql-5.6 that referenced this issue Jun 1, 2023
Summary:
There are two issues related to autoincrement that can lead to crashes:

1. The max value for double/float type for autoincrement was not implemented in MyRocks, and can lead to assertions. The fix is to add them in.
2. If we try to set auto_increment via alter table on a table without an auto_increment column defined, we segfault because there is no index from which to read the last value. The fix is to perform a check to see if autoincrement exists before reading from index (similar to code ha_rocksdb::open).

Fixes facebook#792
Closes facebook#794

Differential Revision: D6995096

Pulled By: lth
inikep pushed a commit to inikep/mysql-5.6 that referenced this issue Jun 14, 2023
Summary:
There are two issues related to autoincrement that can lead to crashes:

1. The max value for double/float type for autoincrement was not implemented in MyRocks, and can lead to assertions. The fix is to add them in.
2. If we try to set auto_increment via alter table on a table without an auto_increment column defined, we segfault because there is no index from which to read the last value. The fix is to perform a check to see if autoincrement exists before reading from index (similar to code ha_rocksdb::open).

Fixes facebook#792
Closes facebook#794

Differential Revision: D6995096

Pulled By: lth
inikep pushed a commit to inikep/percona-server that referenced this issue Apr 9, 2024
Summary:
There are two issues related to autoincrement that can lead to crashes:

1. The max value for double/float type for autoincrement was not implemented in MyRocks, and can lead to assertions. The fix is to add them in.
2. If we try to set auto_increment via alter table on a table without an auto_increment column defined, we segfault because there is no index from which to read the last value. The fix is to perform a check to see if autoincrement exists before reading from index (similar to code ha_rocksdb::open).

Fixes facebook/mysql-5.6#792
Closes facebook/mysql-5.6#794

Differential Revision: D6995096

Pulled By: lth
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

Successfully merging a pull request may close this issue.

2 participants