Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixed PS-1107 (LP #1703346: Binlog corruption when tmpdir gets full) (5.7) #2570

Merged

Conversation

percona-ysorokin
Copy link
Collaborator

https://jira.percona.com/browse/PS-1107

Cherry-picked from ps-5.6-bugps1107-tmpdir_full branch
(commit c7b6226).

Fixed problem with wrapping 'reinit_io_cache()' inside
'MYSQL_BIN_LOG::do_write_cache()' with 'simulate_file_write_error' DBUG
directive. 'DBUG_SET("-d,simulate_file_write_error")' should be called
not only when 'reinit_io_cache()' fails but when it succeeds as welll.
Whithout this patch, any subsequent call to 'my_write()' ends up with
an infinite loop.

Reorganized 'rpl.rpl_bug72457' MTR test case. Instead, we now have two
'rpl.rpl_bug72457_myisam' and 'rpl.rpl_bug72457_innodb' which test the
same (original) scenario with different values of
'--internal-tmp-disk-storage-engine' and '--default-tmp-storage-engine'
variables set to 'MyISAM' and 'InnoDB' correspondingly.

@percona-ysorokin
Copy link
Collaborator Author

Not following GCA here as proper 'out of disk space' simulation requires 'simulate_disk_full_at_flush_pending' DBUG directive from

Bug #27399620: BINLOG AND ENGINE BECOME INCONSISTENT WHEN BINLOG CACHE FILE GETS OUT OF SPACE
(commit 9395f0a)
which is available in MySQL 5.7.23 only.

Jenkins build link
https://ps.cd.percona.com/job/percona-server-5.7-param/72/

Copy link
Contributor

@laurynas-biveinis laurynas-biveinis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same comments as for the 5.5 and 5.6
Please also prepare an 8.0 version if needed
Please also upstream

…(5.7)

https://jira.percona.com/browse/PS-1107

Cherry-picked from ps-5.6-bugps1107-tmpdir_full branch
(commit 96bbeec).

Fixed problem with wrapping 'reinit_io_cache()' inside
'MYSQL_BIN_LOG::do_write_cache()' with 'simulate_file_write_error' DBUG
directive. 'DBUG_SET("-d,simulate_file_write_error")' should be called
not only when 'reinit_io_cache()' fails but when it succeeds as welll.
Whithout this patch, any subsequent call to 'my_write()' ends up with
an infinite loop.

Reorganized 'rpl.rpl_bug72457' MTR test case. Instead, we now have two
'rpl.rpl_bug72457_myisam' and 'rpl.rpl_bug72457_innodb' which test the
same (original) scenario with different values of
'--internal-tmp-disk-storage-engine' and '--default-tmp-storage-engine'
variables set to 'MyISAM' and 'InnoDB' correspondingly.
@percona-ysorokin percona-ysorokin force-pushed the ps-5.7-bugps1107-tmpdir_full branch from dfc28fe to a840f25 Compare September 26, 2018 13:44
@percona-ysorokin
Copy link
Collaborator Author

Updated Jenkins build link
https://ps.cd.percona.com/job/percona-server-5.7-param/73/

@percona-ysorokin percona-ysorokin merged commit cbc255d into percona:5.7 Sep 27, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants