PerconaFT
PerconaFT copied to clipboard
TDB-184 : Broken fsync error handling
- Factored out i/o error reporting to be common and try to obtain actual filename from descriptor.
- Fixed ENOSPC reporting to use common i/o reporting.
- Fixed fsync retry logic to retry EINTR, EIO, and ENOLCK based on InnoDB code and upstream mysql issues 34823 and 90296. Retry will print message every 100 attempts in a loop.
- Touched up 'slow fsync' tracking and reporting to use new i/o error reporting.
- Fixed close retry logic to be same as fsync.
https://jenkins.percona.com/view/TokuDB/job/PerconaFT-param/122/ https://jenkins.percona.com/view/PS%205.6/job/percona-server-5.6-param/2147/ https://jenkins.percona.com/view/5.7/job/mysql-5.7-param/1766/ https://jenkins.percona.com/view/5.7/job/mysql-5.7-param/1771/
The second 5.7 jenkins is a matrix reload on 4 failures due to some odd git state weirdness, they failed to clone/checkout my branch.
OK, I reworked it a bit more and factored out the write error handing as well as it wasn't really doing what the function names might indicate. Here is a new set of jenkins runs. Please take another look and approach it as if it were a new review and not just the items commented.
https://jenkins.percona.com/view/TokuDB/job/PerconaFT-param/123/ https://jenkins.percona.com/view/PS%205.6/job/percona-server-5.6-param/2151/ https://jenkins.percona.com/view/5.7/job/mysql-5.7-param/1772/