Hi Libing,
He Zhenxing wrote:
> Hi Li-bing,
>
> Patch looks good, please look for some comments.
>
> STATUS
> ------
> Not approved!
>
> REQUIRED CHANGES
> ----------------
> n/a
>
> REQUESTS
> --------
>
> R1. I think the logic for the following block:
>
> if (!(flags & BINLOG_DUMP_NON_BLOCK) &&
> mysql_bin_log.is_active(log_file_name))
> {
> ....
> }
> else
> {
> switch (mysql_bin_log.find_next_log(&linfo, 1)) {
> case LOG_INFO_EOF:
> loop_breaker = (flags & BINLOG_DUMP_NON_BLOCK);
> }
>
> if (loop_breaker)
> break;
> }
>
> would be more clear and correct like this:
>
> if (mysql_bin_log.is_active(log_file_name))
> {
> if (flags & BINLOG_DUMP_NON_BLOCK)
> /* we are here if log_file_name is active and we request non-block dumping,
> break the loop*/
> break;
>
> /* wait for update of current active binlog */
> ....
> }
> else
> {
> if (mysql_bin_log.find_next_log(&linfo, 1)) {
> errmsg = "could not find next log";
> my_errno= ER_MASTER_FATAL_ERROR_READING_BINLOG;
> goto err;
> }
>
> /* Close current binlog, and open the next binlog for reading */
> end_io_cache(&log);
> (void) my_close(file, MYF(MY_WME));
> ....
> }
>
> R2. Please also test adding more lines to the end, and start slave to
> request from one of the newly added binlog. For example, if current
> binlog is 000002, add 000003 to master-bin.index manually,
> and then start slave to replicate from 000003. Check if it can report an
> error correctly. Probably we also need to test removing/adding more
> lines.
>
I think you're right that R2 will not be a problem, so please ignore R2.
> Li-Bing.Song@stripped wrote:
> > #At file:///home/anders/work/bzrwork/worktree2/mysql-5.1-bugteam/ based on
> revid:li-bing.song@stripped
> >
> > 3215 Li-Bing.Song@stripped 2009-12-10
> > BUG #28421 Infinite loop on slave relay logs
> >
> > That, manually deleteing one or more entries from 'master-bin.index',
> will
>
> [snip]
>
>