Bug #68429 Slave SQL: Could not execute Query event. Detailed error: ;, Error_code: 0
Submitted: 19 Feb 2013 12:58 Modified: 19 Feb 2014 11:16
Reporter: Erik Hoekstra Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Replication Severity:S2 (Serious)
Version:5.6.10, 5.6.14 OS:Linux (RHEL 6)
Assigned to: CPU Architecture:Any
Tags: log_warnings, replication, slave, slave-skip-errors, warning

[19 Feb 2013 12:58] Erik Hoekstra
Description:
On a multi master setup with 5.6.10 (rhel6) the logs fillup with the message:

[Warning] Slave SQL: Could not execute Query event. Detailed error: ;, Error_code: 0

(when using log_warnings 2 and slave-skip-errors = all)

If i start the server WITH slave-skip-errors = all these messages will appear even though no errors in the replica consist. 

If i leave it out of my config the replication won't skip any errors, but there aren't any so it seems MySQL throw's a warning an a non-error/warning event if the server is started with slave-skip-errors = all?

My thought are this could be a message/notice about a query/row not to replica on a slave due to replication rules? But then the message should be a notice or not even a message at all right?

(also see: http://forums.mysql.com/read.php?26,579441,579441#msg-579441)

How to repeat:
MYSQL] 
skip-auto-rehash 
default-character-set = utf8 
reconnect 

[MYSQLD] 
server-id=11 
secure-auth = true 

skip-name-resolve 
skip-external-locking 
ignore-builtin-innodb 
default-storage-engine = myisam 
event_scheduler = disabled 
explicit_defaults_for_timestamp = true 
performance_schema = off 

general-log = 0 
log-output = file 
log-error = /var/lib/mysql/X.err 
log-bin = /var/lib/mysql/X-bin 
relay-log = /var/lib/mysql/X-relay-bin 
log-warnings = 2 

auto_increment_increment = 2 
auto_increment_offset = 1 

slave-skip-errors = all 
slave_exec_mode = idempotent 
slave_parallel_workers = 3 
gtid_mode = off 

character-set-server = utf8 
collation-server = utf8_unicode_ci 

expire_logs_days = 4 
log-slave-updates 

binlog-format = row 
binlog_row_image = minimal 

binlog-ignore-db = mysql 
replicate-ignore-db = mysql 
replicate-wild-ignore-table = mysql.% 

binlog-ignore-db = information_schema 
replicate-ignore-db = information_schema 
replicate-wild-ignore-table = information_schema.% 

binlog-ignore-db = performance_schema 
replicate-ignore-db = preformance_schema 
replicate-wild-ignore-table = performance_schema.% 

binlog-ignore-db = X_raw 
replicate-ignore-db = X_raw 
replicate-wild-ignore-table = X_raw.% 

replicate-wild-ignore-table = %_raw.% 

query_prealloc_size = 16M 
max_prepared_stmt_count = 32000 

query_cache_type = 1 
query_cache_size = 512M 
query_cache_limit = 4M 

key_buffer_size = 1536 

delayed_insert_limit = 1500 
delayed_queue_size = 3000 

table_open_cache = 800 
table_definition_cache = 600 

group_concat_max_len = 2048 

bulk_insert_buffer_size = 12M 
read_buffer_size = 256k 
read_rnd_buffer_size = 384k 

thread_cache_size = 254 

max_connections = 1024 
max_user_connections = 1024 
max_connect_errors = 1000000 
max_allowed_packet = 32M 

connect_timeout = 25 
wait_timeout = 180 
interactive_timeout = 180 
net_read_timeout = 60 
net_write_timeout = 80
[19 Feb 2013 17:04] Sveta Smirnova
Thank you for the report.

Please provide binary log file from master which causes this errors.
[20 Mar 2013 1:00] Bugs System
No feedback was provided for this bug for over a month, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
[11 Oct 2013 15:31] Umesh Shastry
Hello Erik,

Thank you for the report.
Verified as described.

Thanks,
Umesh
[3 Jan 2014 14:32] Carlos Vazquez
This is happening to me in version 5.6.15 too.
[19 Feb 2014 11:16] Jon Stephens
Thank you for your bug report. This issue has been committed to our source repository of that product and will be incorporated into the next release.

Fixed in MySQL 5.6+. Documented in the 5.6.17 and 5.7.4 changelogs as follows:

        When running the slave with --slave-parallel-workers at 1 or
        greater, setting --slave-skip-errors=all caused the error log to
        be filled with with instances of the warning -Slave SQL: Could
        not execute Query event. Detailed error: ;, Error_code: 0-.

If necessary, you can access the source repository and build the latest available version, including the bug fix. More information about accessing the source trees is available at

    http://dev.mysql.com/doc/en/installing-source.html

Closed.
[29 Mar 2014 8:16] Laurynas Biveinis
5.6$ bzr log -r 5825 -n0
------------------------------------------------------------
revno: 5825
committer: Sujatha Sivakumar <sujatha.sivakumar@oracle.com>
branch nick: Bug17581990_mysql-5.6
timestamp: Wed 2014-02-19 10:15:51 +0530
message:
  Bug#17581990:SLAVE SQL: COULD NOT EXECUTE QUERY EVENT.
  DETAILED ERROR: ;, ERROR_CODE: 0
  
  Problem:
  ========
  Setting slave-skip-errors=all on the slave will make mysql
  slave error log to grow continuously with the following
  warnings.
  
  [Warning] Slave SQL: Could not execute Query event.
  Detailed error: ;, Error_code: 0
  
  Analysis:
  ========
  This warning is generated during execution of Query event
  from the following peace of code.
  
  else if ((expected_error == actual_error &&
            !concurrency_error_code(expected_error)) ||
           ignored_error_code(actual_error))
  {
    DBUG_PRINT("info",("error ignored"));
    if (log_warnings > 1 && ignored_error_code(actual_error))
      rli->report(WARNING_LEVEL, actual_error,...
  
  The warning mainly depends on two parameters named
  "expected_error" and "actual_error". These two variables
  are initialised to zero by default. During the execution
  when there is no change in their values their values will
  remain as zeroes.
  
  Condition1: becomes true
  Condition2: It considers 0 as non concurrency related error
  code causing condition 2 to become true.
  condition3: 0 is considered as ignored error code.
  Hence the whole condition becomes true and warning gets
  generated.
  
  Fix:
  ===
  Having "actual == expected == 0" must not be considered as a
  valid error condition. Hence if non zero value exists for
  this variable only then it should be checked for ignored
  error.