On 12/16/10 7:19 AM, Libing Song wrote:
> On Thu, 2010-12-16 at 07:02 -0200, Davi Arnaut wrote:
>> On 12/16/10 6:59 AM, Libing Song wrote:
>>> Hi Luis and Davi,
>>> I am afraid that we cannot do what you said.
>>> As the error should be sent to slave by protocol->end_statement(), which
>>> is out of mysql_binlog_send. The faked error has to be kept until has
>>> been sent to slave.
>> Which error? I can't understand how its any different given what
>> reset_diagnostics_area does is going to get us a clean DA.
> The bug is about error EE_FILENOTFOUND.
> EE_FILENOTFOUND will be set into stmt_da if master cannot find the file
> which slave wants to dump.
> But dump_thread doesn't intent to send this error to slave. It defines
> error ER_MASTER_FATAL_ERROR_READING_BINLOG which instead of all low
> level errors is sent to slave.
This does not explain what we are discussing. EE_FILENOTFOUND should be
pushed to the "fake da" that stmt_da points to. After "execution", the
stmt_da pointer is restored and ER_MASTER_FATAL_ERROR_READING_BINLOG is
pushed to it. How can not protocol->end_statement() not see it?