Correction:
(gdb) print thd->wsrep_conflict_state $1 = CERT_FAILURE
is actually
============================================
Breakpoint 1, select_create::send_eof (this=0x7fdaa0042ad8) at /media/Tintin/Work/code/percona-xtradb-cluster/trunk/Percona-Server/sql/sql_insert.cc:4115 4115 { (gdb) list 4110 DBUG_VOID_RETURN; 4111 } 4112 4113 4114 bool select_create::send_eof() 4115 { 4116 bool tmp=select_insert::send_eof(); 4117 if (tmp) 4118 abort_result_set(); 4119 else (gdb) step 4116 bool tmp=select_insert::send_eof(); (gdb) next [New Thread 0x7fdac8349700 (LWP 14010)] 4117 if (tmp) (gdb) 4126 if (!table->s->tmp_table) (gdb) 4128 trans_commit_stmt(thd); (gdb) print thd->wsrep_conflict_state $1 = NO_CONFLICT (
=============================================
which is why it is not getting trapped in earlier send_eof.
I guess NO_CONFLICT should also be added to that conditonal?
Correction:
(gdb) print thd->wsrep_ conflict_ state
$1 = CERT_FAILURE
is actually
======= ======= ======= ======= ======= ======= ==
Breakpoint 1, select_ create: :send_eof (this=0x7fdaa00 42ad8) at /media/ Tintin/ Work/code/ percona- xtradb- cluster/ trunk/Percona- Server/ sql/sql_ insert. cc:4115 create: :send_eof( ) insert: :send_eof( ); insert: :send_eof( ); >s->tmp_ table) stmt(thd) ; conflict_ state
4115 {
(gdb) list
4110 DBUG_VOID_RETURN;
4111 }
4112
4113
4114 bool select_
4115 {
4116 bool tmp=select_
4117 if (tmp)
4118 abort_result_set();
4119 else
(gdb) step
4116 bool tmp=select_
(gdb) next
[New Thread 0x7fdac8349700 (LWP 14010)]
4117 if (tmp)
(gdb)
4126 if (!table-
(gdb)
4128 trans_commit_
(gdb) print thd->wsrep_
$1 = NO_CONFLICT
(
======= ======= ======= ======= ======= ======= ===
which is why it is not getting trapped in earlier send_eof.
I guess NO_CONFLICT should also be added to that conditonal?