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

Myloader hang fix, mydumper lost row fix, cleanups, tracing #1395

Merged
merged 7 commits into from
Jan 26, 2024

Conversation

midenok
Copy link
Collaborator

@midenok midenok commented Jan 26, 2024

Lost row fix requires hotfix release!

I think v0.15.2-7 was a bit premature. Lost row happens due to unmasked bug by 640ece1, so now v0.15.2-7 is spoiled.

There should be some stabilization period (a month) after so many changes before issuing a release.

Now as CircleCI blocked me it doesn't even run tests for my PRs. Tests passed locally.

It's better to use correct quoting for DROP TABLE (for the case name
contains backticks f.ex.).
MariaDB uses BACKUP STAGE STARTS for all versions >= 10.5. I don't see
a reason why this should be disabled in later versions (f.ex. 11).
Human-readable thread names in trace instead of hex-based handles.

To cut-out timestamp from myloader trace:

cut_ts()
{
  perl -pe 's/\d{4}-\d\d-\d\d \d\d:\d\d:\d\d \[\w+\] - //'
}
We have to send the exact quantity of DATA, we cannot shortcut them to
just one DATA at INTERMEDIATE_ENDED. Now we pause control job thread
by cond variable and resume it when the last S-thread receives
JOB_SHUTDOWN.
Char-based chunking algorithm in mydumper is missing first row because
of "<" in condition when comparing cmin_escaped. This comparison is
wrong for the very first chunk and leads to first row missed.

The fix includes first row in chunk and excludes last row unless last
row is cmax.

The problem was hidden in v0.15.2-6 because any chunking algorithm was
disabled due to the bug fixed in 640ece1 (myloader ignores
--max-threads-per-table). So v0.15.2-7 is affected by this bug since
it enables chunking algorithms.
@davidducos davidducos merged commit db3a65c into mydumper:master Jan 26, 2024
@midenok
Copy link
Collaborator Author

midenok commented Jan 26, 2024

@davidducos There is one more myloader hang known. The fix is undergoing.

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.

None yet

2 participants