mariadb/sql
unknown f27bf2b463 Bug#22725 Replication outages from ER_SERVER_SHUTDOWN (1053) set in replication events
The reason for the bug was that replaying of a query on slave could not be possible since its event
was recorded with the killed error. Due to the specific of handling INSERT, which per-row-while-loop is 
unbreakable to killing, the query on transactional table should have not appeared in binlog unless
there was  a call to a stored routine that got interrupted with killing (and then there must be an error
returned out of the loop).
   
The offered solution added the following rule for binlogging of INSERT that accounts the above
specifics:
For INSERT on transactional-table if the error was not set the only raised flag
is harmless and is ignored via masking out on time of creation of binlog event.
   
For both table types the combination of raised error and KILLED flag indicates that there
was potentially partial execution on master and consistency is under the question.
In that case the code continues to binlog an event with an appropriate killed error.
 
The fix relies on the specified behaviour of stored routine that must propagate the error 
to the top level query handling if the thd->killed flag was raised in the routine execution.
   
The patch adds an arg with the default killed-status-unset value to Query_log_event::Query_log_event.


sql/log_event.cc:
  killed_status as the value of thd->killed can be passed as an arg to the constructor.
  if the value is different from the default the arg is set to the current thd->killed value.
  A caller might need to masquerade thd->killed with THD::NOT_KILLED.
  So far only mysql_insert() uses such explicit way to tell the constructor about killing status.
sql/log_event.h:
  default arg to the constructor with meaning of killed status of the query. 
  if the arg is not explicitly provided the status of thd->killed will be snapshot 
  inside of the constuctor, which is potentially incorrect (see bug#27571)
sql/sql_class.h:
  extending killed_state with no-state member.
sql/sql_insert.cc:
  ignore the KILLED flag incl KILL_BAD_DATA when the INSERT query event 
  is created without an `error';
sql/sql_update.cc:
  Suggestion how to fix bug#27571 as comments.
mysql-test/r/binlog_killed.result:
  new result file
mysql-test/t/binlog_killed.test:
  regression tests also apply for bug27563, BUG#27565
2007-05-28 22:20:22 +03:00
..
examples BUG#26138 - REPAIR TABLE with option USE_FRM erases all records in 2007-03-30 13:00:21 +05:00
share Bug#24617 Typo in Czech translation 2007-02-22 17:53:41 +01:00
.cvsignore
add_errmsg
client_settings.h my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
CMakeLists.txt Bug#24732 Executables do not include Vista manifests 2007-05-15 10:30:11 -04:00
custom_conf.h my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
derror.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
des_key_file.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
discover.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
field.cc Merge siva.hindu.god:/home/tsmith/m/bk/50 2007-05-17 14:17:50 -06:00
field.h Backport of TIME->MYSQL_TIME / Y2K fixset 2007-05-16 10:44:59 +02:00
field_conv.cc Bug#20095 Changing length of VARCHAR field with UTF8 collation does not truncate values 2007-04-13 10:05:55 +05:00
filesort.cc Bug #27119 server crash with integer division by zero during filesort on huge result 2007-05-17 20:45:33 -04:00
frm_crypt.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
gen_lex_hash.cc gen_lex_hash.cc: 2007-01-31 00:06:42 +01:00
gstream.cc Many files: 2006-12-23 20:17:15 +01:00
gstream.h my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
ha_archive.cc BUG#26138 - REPAIR TABLE with option USE_FRM erases all records in 2007-03-30 13:00:21 +05:00
ha_archive.h Merge bk-internal.mysql.com:/home/bk/mysql-5.0 2007-01-22 14:04:40 +02:00
ha_berkeley.cc Fixed compiler warnings. 2007-02-28 22:23:35 +02:00
ha_berkeley.h Fixed compiler warnings (for linux and win32 and win64) 2007-02-22 16:59:57 +02:00
ha_blackhole.cc Bug#19717: The blackhole engine is returning an OK flag in 2007-02-14 18:35:59 +02:00
ha_blackhole.h Merge mysql.com:/home/svoj/devel/mysql/BUG27998/mysql-4.1-engines 2007-05-10 18:14:04 +05:00
ha_federated.cc Merge bk-internal.mysql.com:/home/bk/mysql-5.0 2007-01-22 14:04:40 +02:00
ha_federated.h Many files: 2006-12-23 20:17:15 +01:00
ha_heap.cc Merge chilla.local:/home/mydev/mysql-4.1-bug24985 2007-03-27 10:54:37 +02:00
ha_heap.h my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
ha_innodb.cc Merge bk@192.168.21.1:mysql-5.0 2007-04-29 18:42:50 +05:00
ha_innodb.h Apply innodb-5.0-ss1405 snapshot 2007-04-18 19:36:22 -06:00
ha_myisam.cc Merge zippy.cornsilk.net:/home/cmiller/work/mysql/bug27173/my41-bug27173 2007-05-04 13:27:33 -04:00
ha_myisam.h my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
ha_myisammrg.cc Merge bk-internal.mysql.com:/home/bk/mysql-5.0 2007-02-21 14:07:08 +02:00
ha_myisammrg.h Merge chilla.local:/home/mydev/mysql-4.1-bug26464 2007-03-06 10:34:14 +01:00
ha_ndbcluster.cc Bug #28410 ndb: no retry sleep when getting autoincrement 2007-05-14 12:15:27 +02:00
ha_ndbcluster.h Merge dev3-221.dev.cn.tlan:/home/ngb/mysql/mysql-5.0/mysql-5.0-ndb-bj 2007-05-08 10:00:12 +08:00
ha_ndbcluster_cond.cc Back-ported compiler warning fixes from 5.1 to ease merging 2007-04-24 10:25:15 +02:00
ha_ndbcluster_cond.h Changed void* to const NdbDictionary::Table* 2007-04-23 12:12:44 +02:00
handler.cc Fixed bug #27954. 2007-05-08 00:24:25 +05:00
handler.h BUG#26138 - REPAIR TABLE with option USE_FRM erases all records in 2007-03-30 13:00:21 +05:00
hash_filo.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
hash_filo.h my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
hostname.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
init.cc Merge mysql.com:/home/ram/work/b19690/b19690.4.1 2007-01-31 10:07:56 +04:00
item.cc Merge quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/50 2007-05-21 20:50:08 +02:00
item.h Merge siva.hindu.god:/home/tsmith/m/bk/50 2007-05-17 14:17:50 -06:00
item_buff.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
item_cmpfunc.cc Merge quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/50 2007-05-21 20:50:08 +02:00
item_cmpfunc.h Bug#28133: Wrong DATE/DATETIME comparison in IN() function. 2007-05-07 22:20:43 +04:00
item_create.cc Bug #27921 View ignores precision for CAST() 2007-05-10 00:17:21 +05:00
item_create.h Bug #27921 View ignores precision for CAST() 2007-05-10 00:17:21 +05:00
item_func.cc Merge siva.hindu.god:/home/tsmith/m/bk/50 2007-05-17 14:17:50 -06:00
item_func.h Merge siva.hindu.god:/home/tsmith/m/bk/50 2007-05-17 14:17:50 -06:00
item_geofunc.cc Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0-maint 2007-03-05 18:22:35 +04:00
item_geofunc.h Merge mysql.com:/home/ram/work/b26038/b26038.4.1 2007-02-28 12:13:46 +04:00
item_row.cc Many files: 2006-12-23 20:17:15 +01:00
item_row.h Merge bk-internal.mysql.com:/home/bk/mysql-5.0 2007-01-22 14:04:40 +02:00
item_strfunc.cc Merge polly.local:/home/kaa/src/maint/bug24912/my50-bug24912 2007-04-28 20:26:14 +04:00
item_strfunc.h Bug #27530: 2007-04-11 13:58:16 +03:00
item_subselect.cc Fixed bug #28375: a query with an NOT IN subquery predicate may cause 2007-05-11 19:37:32 -07:00
item_subselect.h Fixed bug #27870. The bug that causes crashes manifests itself at some 2007-04-17 17:35:29 -07:00
item_sum.cc bug#28273: GROUP_CONCAT and ORDER BY: No warning when result gets truncated. 2007-05-11 16:05:20 +03:00
item_sum.h Fixed bug #27229: crash when a set function aggregated in outer 2007-03-22 14:48:03 -07:00
item_timefunc.cc Backport of TIME->MYSQL_TIME / Y2K fixset 2007-05-16 10:44:59 +02:00
item_timefunc.h Backport of TIME->MYSQL_TIME / Y2K fixset 2007-05-16 10:44:59 +02:00
item_uniq.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
item_uniq.h my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
key.cc Patch to eliminate compilation errors under VC after bug #13191 fix. 2007-04-29 12:56:46 +05:00
lex.h Fix -ansi -pedantic warning (can't cast a pointer to function 2007-03-08 12:04:45 +03:00
lex_symbol.h Fix -ansi -pedantic warning (can't cast a pointer to function 2007-03-08 12:04:45 +03:00
lock.cc Fix for: 2007-05-11 20:33:13 +04:00
log.cc Remove dangerous "remove warning" hack, cast to long 2007-04-27 15:33:48 +02:00
log_event.cc Bug#22725 Replication outages from ER_SERVER_SHUTDOWN (1053) set in replication events 2007-05-28 22:20:22 +03:00
log_event.h Bug#22725 Replication outages from ER_SERVER_SHUTDOWN (1053) set in replication events 2007-05-28 22:20:22 +03:00
Makefile.am Moved all code related to engine_condition_pushdown to a new class, 2007-04-23 11:25:33 +02:00
matherr.c my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
message.mc make dist changes for Cmake build 2006-09-01 10:32:12 +02:00
mf_iocache.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
my_decimal.cc Backport of TIME->MYSQL_TIME / Y2K fixset 2007-05-16 10:44:59 +02:00
my_decimal.h Merge siva.hindu.god:/home/tsmith/m/bk/50 2007-05-17 14:17:50 -06:00
my_lock.c my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
mysql_priv.h Merge siva.hindu.god:/home/tsmith/m/bk/50 2007-05-17 14:17:50 -06:00
mysqld.cc Bug#27994 Expose counter for stored procedure calls in Com_% status 2007-05-02 14:25:11 +02:00
mysqld_suffix.h Many files: 2006-12-23 20:17:15 +01:00
net_serv.cc Merge ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-4.1-main 2007-03-28 20:46:42 +03:00
nt_servc.cc
nt_servc.h
opt_range.cc BUG#26624, pushbuild fixes: Merge to 5.0 2007-03-31 00:48:31 +04:00
opt_range.h Merge bk-internal.mysql.com:/home/bk/mysql-5.0 2007-01-22 14:04:40 +02:00
opt_sum.cc Bug#27573: MIN() on an indexed column which is always NULL sets _other_ results 2007-05-15 15:29:12 +03:00
parse_file.cc Polishing: add comments. 2007-04-06 18:56:39 +04:00
parse_file.h Many files: 2006-12-23 20:17:15 +01:00
password.c Merge bk-internal.mysql.com:/home/bk/mysql-5.0 2007-01-22 14:04:40 +02:00
procedure.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
procedure.h my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
protocol.cc Backport of TIME->MYSQL_TIME / Y2K fixset 2007-05-16 10:44:59 +02:00
protocol.h Backport of TIME->MYSQL_TIME / Y2K fixset 2007-05-16 10:44:59 +02:00
records.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
repl_failsafe.cc Merge bk-internal.mysql.com:/home/bk/mysql-5.0 2007-02-21 14:07:08 +02:00
repl_failsafe.h my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
set_var.cc Merge bk-internal.mysql.com:/home/bk/mysql-5.0 2007-05-15 13:56:09 +04:00
set_var.h Merge bk-internal.mysql.com:/home/bk/mysql-5.0 2007-02-21 14:07:08 +02:00
slave.cc Merge malff@bk-internal.mysql.com:/home/bk/mysql-5.0-runtime 2007-04-24 09:25:54 -06:00
slave.h Fix for BUG#24432 2007-02-08 15:53:14 +01:00
sp.cc Merge siva.hindu.god:/home/tsmith/m/bk/50 2007-05-17 14:17:50 -06:00
sp.h Many files: 2006-12-23 20:17:15 +01:00
sp_cache.cc Many files: 2006-12-23 20:17:15 +01:00
sp_cache.h Many files: 2006-12-23 20:17:15 +01:00
sp_head.cc Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime 2007-05-16 09:52:01 +04:00
sp_head.h Bug#26977 exception handlers never hreturn 2007-05-07 10:23:10 +02:00
sp_pcontext.cc Bug#26503 (Illegal SQL exception handler code causes the server to crash) 2007-03-14 12:02:32 -06:00
sp_pcontext.h Bug#26503 (Illegal SQL exception handler code causes the server to crash) 2007-03-14 12:02:32 -06:00
sp_rcontext.cc Many files: 2006-12-23 20:17:15 +01:00
sp_rcontext.h Many files: 2006-12-23 20:17:15 +01:00
spatial.cc Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0-maint 2007-03-05 18:22:35 +04:00
spatial.h Bug #24563: MBROverlaps does not seem to function propertly. 2007-03-23 16:28:07 -06:00
sql_acl.cc Fix for BUG#9504: Stored procedures: execute privilege doesn't 2007-03-23 14:12:11 +03:00
sql_acl.h Bug#20166 mysql-test-run.pl does not test system privilege tables creation 2007-03-16 20:56:16 +01:00
sql_analyse.cc Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0-maint 2007-02-06 17:18:43 +04:00
sql_analyse.h my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
sql_array.h Many files: 2006-12-23 20:17:15 +01:00
sql_base.cc Merge siva.hindu.god:/home/tsmith/m/bk/50 2007-05-17 14:17:50 -06:00
sql_bitmap.h Many files: 2006-12-23 20:17:15 +01:00
sql_cache.cc Corrected merge error; missing line in debug statement. 2007-05-10 14:54:55 +02:00
sql_cache.h Merge bk-internal.mysql.com:/home/bk/mysql-5.0 2007-01-22 14:04:40 +02:00
sql_class.cc Merge malff@bk-internal.mysql.com:/home/bk/mysql-5.0-runtime 2007-04-24 09:25:54 -06:00
sql_class.h Bug#22725 Replication outages from ER_SERVER_SHUTDOWN (1053) set in replication events 2007-05-28 22:20:22 +03:00
sql_client.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
sql_crypt.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
sql_crypt.h my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
sql_cursor.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
sql_cursor.h my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
sql_db.cc Fix for BUG#27337: Privileges are not properly restored. 2007-04-03 15:11:34 +04:00
sql_delete.cc Merge debian.(none):/M50/mysql-5.0 2007-04-20 12:31:03 +02:00
sql_derived.cc - renaming TMP_TABLE to NON_TRANSACTIONAL_TMP_TABLE because this is 2007-03-22 15:07:32 +01:00
sql_do.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
sql_error.cc Many files: 2006-12-23 20:17:15 +01:00
sql_error.h Many files: 2006-12-23 20:17:15 +01:00
sql_handler.cc Fix for: 2007-05-11 20:33:13 +04:00
sql_help.cc Bug #25831: Deficiencies in INSERT ... SELECT ... field name resolving. 2007-02-19 14:39:37 +02:00
sql_insert.cc Bug#22725 Replication outages from ER_SERVER_SHUTDOWN (1053) set in replication events 2007-05-28 22:20:22 +03:00
sql_lex.cc Cleanup: now that we have Lex_input_stream, finish the transition 2007-05-11 17:26:12 +04:00
sql_lex.h Merge bk-internal.mysql.com:/home/bk/mysql-5.0-runtime 2007-05-16 09:52:01 +04:00
sql_list.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
sql_list.h Merge of BUG#26624 and BUG#26625 2007-03-29 10:35:28 +04:00
sql_load.cc Merge mysql.com:/nfsdisk1/lars/bkroot/mysql-5.0-rpl 2007-05-28 09:21:42 +02:00
sql_locale.cc Merge mysql.com:/nfsdisk1/lars/bkroot/mysql-5.0-rpl 2007-01-12 12:22:54 +01:00
sql_manager.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
sql_manager.h my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
sql_map.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
sql_map.h my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
sql_olap.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
sql_parse.cc Merge bk-internal.mysql.com:/home/bk/mysql-5.0 2007-05-15 13:56:09 +04:00
sql_prepare.cc Merge bk-internal.mysql.com:/home/bk/mysql-5.0 2007-05-15 13:56:09 +04:00
sql_rename.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
sql_repl.cc Fixed compiler warnings. 2007-03-22 20:32:07 +02:00
sql_repl.h my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
sql_select.cc Merge olga.mysql.com:/home/igor/dev-opt/mysql-4.1-opt-bug28272 2007-05-15 13:16:10 -07:00
sql_select.h Fixed bug #28375: a query with an NOT IN subquery predicate may cause 2007-05-11 19:37:32 -07:00
sql_show.cc Backport of TIME->MYSQL_TIME / Y2K fixset 2007-05-16 10:44:59 +02:00
sql_sort.h Many files: 2006-12-23 20:17:15 +01:00
sql_state.c Many files: 2006-12-23 20:17:15 +01:00
sql_string.cc Merge bk-internal.mysql.com:/home/bk/mysql-5.0 2007-01-22 14:04:40 +02:00
sql_string.h Merge bk-internal.mysql.com:/home/bk/mysql-5.0 2007-01-22 14:04:40 +02:00
sql_table.cc Fix for: 2007-05-11 20:33:13 +04:00
sql_test.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
sql_trigger.cc Fix for: 2007-05-11 20:33:13 +04:00
sql_trigger.h Merge mysql.com:/windows/Linux_space/MySQL/mysql-5.0 2007-04-05 08:39:12 +02:00
sql_udf.cc Merge bk-internal:/home/bk/mysql-5.0-opt 2007-01-03 18:29:39 +02:00
sql_udf.h my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
sql_union.cc Merge olga.mysql.com:/home/igor/dev-opt/mysql-4.1-opt-bug27937 2007-05-14 17:06:05 -07:00
sql_update.cc Bug#22725 Replication outages from ER_SERVER_SHUTDOWN (1053) set in replication events 2007-05-28 22:20:22 +03:00
sql_view.cc Merge malff@bk-internal.mysql.com:/home/bk/mysql-5.0-runtime 2007-04-24 09:25:54 -06:00
sql_view.h Many files: 2006-12-23 20:17:15 +01:00
sql_yacc.yy Merge bk-internal.mysql.com:/home/bk/mysql-5.0 2007-05-15 13:56:09 +04:00
stacktrace.c Many files: 2006-12-23 20:17:15 +01:00
stacktrace.h Many files: 2006-12-23 20:17:15 +01:00
strfunc.cc Fixed compiler warnings. 2007-03-22 20:32:07 +02:00
structs.h Backport of TIME->MYSQL_TIME / Y2K fixset 2007-05-16 10:44:59 +02:00
table.cc Bug#27874: Non-grouped columns are allowed by * in ONLY_FULL_GROUP_BY mode. 2007-04-24 22:35:57 +04:00
table.h Fix for: 2007-05-11 20:33:13 +04:00
thr_malloc.cc my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
time.cc Backport of TIME->MYSQL_TIME / Y2K fixset 2007-05-16 10:44:59 +02:00
tzfile.h Many files: 2006-12-23 20:17:15 +01:00
tztime.cc Backport of TIME->MYSQL_TIME / Y2K fixset 2007-05-16 10:44:59 +02:00
tztime.h Backport of TIME->MYSQL_TIME / Y2K fixset 2007-05-16 10:44:59 +02:00
udf_example.c Many files: 2006-12-23 20:17:15 +01:00
udf_example.def Fixed compiler warnings (for linux and win32 and win64) 2007-02-22 16:59:57 +02:00
uniques.cc Many files: 2006-12-23 20:17:15 +01:00
unireg.cc Backport of TIME->MYSQL_TIME / Y2K fixset 2007-05-16 10:44:59 +02:00
unireg.h my_strtoll10-x86.s: 2006-12-31 01:02:27 +01:00
watchdog_mysqld