Bug #90547 | [MySQL 8.0 GA Debug Build] Assertion `gtid_next_type == ANONYMOUS_GTID' failed. | ||
---|---|---|---|
Submitted: | 21 Apr 2018 3:07 | Modified: | 12 Nov 2018 15:00 |
Reporter: | Roel Van de Paar | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Replication | Severity: | S1 (Critical) |
Version: | 8.0.11 GA | OS: | Any |
Assigned to: | CPU Architecture: | Any | |
Tags: | debug build |
[21 Apr 2018 3:07]
Roel Van de Paar
[21 Apr 2018 4:38]
MySQL Verification Team
Thank you for the bug report. 2018-04-21T04:35:11.100454Z 0 [System] [MY-010931] [Server] /home/miguel/dbsd/8.0/bin/mysqld: ready for connections. Version: '8.0.12-debug' socket: '/tmp/mysql80.sock' port: 3380 Source distribution 2018-APR-18. 2018-04-21T04:35:24.420884Z 8 [System] [MY-010035] [Server] Changed GTID_MODE from OFF to OFF_PERMISSIVE. mysqld: /home/miguel/buildd/2018APR18/mysql-8.0/sql/binlog.cc:10296: bool handle_gtid_consistency_violation(THD*, int, int): Assertion `gtid_next_type == ANONYMOUS_GTID' failed. 04:35:25 UTC - mysqld got signal 6 ; 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. key_buffer_size=8388608 read_buffer_size=131072 max_used_connections=1 max_threads=151 thread_count=2 connection_count=1 It is possible that mysqld could use up to key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 67877 K bytes of memory Hope that's ok; if not, decrease some variables in the equation. Thread pointer: 0x7f609c000be0 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 = 7f6145901d38 thread_stack 0x46000 /home/miguel/dbsd/8.0/bin/mysqld(my_print_stacktrace(unsigned char*, unsigned long)+0x55) [0x411be4d] /home/miguel/dbsd/8.0/bin/mysqld(handle_fatal_signal+0x424) [0x2e53f77] /lib/x86_64-linux-gnu/libpthread.so.0(+0x11390) [0x7f6159bbf390] /lib/x86_64-linux-gnu/libc.so.6(gsignal+0x38) [0x7f61582bd428] /lib/x86_64-linux-gnu/libc.so.6(abort+0x16a) [0x7f61582bf02a] /lib/x86_64-linux-gnu/libc.so.6(+0x2dbd7) [0x7f61582b5bd7] /lib/x86_64-linux-gnu/libc.so.6(+0x2dc82) [0x7f61582b5c82] /home/miguel/dbsd/8.0/bin/mysqld() [0x3d32d17] /home/miguel/dbsd/8.0/bin/mysqld(THD::is_dml_gtid_compatible(bool, bool, bool)+0x189) [0x3d33341] /home/miguel/dbsd/8.0/bin/mysqld(THD::decide_logging_format(TABLE_LIST*)+0x153a) [0x3d32576] /home/miguel/dbsd/8.0/bin/mysqld(lock_tables(THD*, TABLE_LIST*, unsigned int, unsigned int)+0x6b1) [0x2c19f65] /home/miguel/dbsd/8.0/bin/mysqld(Sql_cmd_dml::execute(THD*)+0x401) [0x2d0bdf5] /home/miguel/dbsd/8.0/bin/mysqld(mysql_execute_command(THD*, bool)+0x5797) [0x2cad639] /home/miguel/dbsd/8.0/bin/mysqld(mysql_parse(THD*, Parser_state*)+0x65e) [0x2cafbd0] /home/miguel/dbsd/8.0/bin/mysqld(dispatch_command(THD*, COM_DATA const*, enum_server_command)+0x13a7) [0x2ca570c] /home/miguel/dbsd/8.0/bin/mysqld(do_command(THD*)+0x484) [0x2ca3fc5] /home/miguel/dbsd/8.0/bin/mysqld() [0x2e4174b] /home/miguel/dbsd/8.0/bin/mysqld() [0x47eef1a] /lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba) [0x7f6159bb56ba] /lib/x86_64-linux-gnu/libc.so.6(clone+0x6d) [0x7f615838f41d] Trying to get some variables.
[12 Nov 2018 15:00]
Margaret Fisher
Posted by developer: An assertion was raised in debug builds if a SELECT... FOR UPDATE statement was issued immediately after a transaction was committed or rolled back, and the transaction had been assigned a GTID manually using the gtid_next session system variable. After gtid_next has been used to set a GTID for a transaction, and the transaction has been committed or rolled back, another explicit SET GTID_NEXT statement must be issued before any other statement, otherwise the gtid_next value is left undefined. The SELECT... FOR UPDATE statement caused a GTID consistency violation in this situation because it acquired write locks, although it did not make any changes. SELECT... FOR UPDATE statements that acquire write locks now return an error in this situation.