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
[FLINK-23914][connector/testing-framework] Improve logging and error message in testing framework #16940
Conversation
Thanks a lot for your contribution to the Apache Flink project. I'm the @flinkbot. I help the community Automated ChecksLast check on commit d2cb0d1 (Mon Aug 23 09:59:14 UTC 2021) Warnings:
Mention the bot in a comment to re-run the automated checks. Review Progress
Please see the Pull Request Review Guide for a full explanation of the review process. The Bot is tracking the review progress through labels. Labels are applied according to the order of the review items. For consensus, approval by a Flink committer of PMC member is required Bot commandsThe @flinkbot bot supports the following commands:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It seems that the Matcher provides insufficient information. I'd improve the mismatchDescription
in any case. I'd probably just show the complete logCurrentProgress
and just don't LOG.
current = originalIterator.next(); | ||
} else { | ||
current = null; | ||
private void logCurrentProgress() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why is this not added to the mismatchDescription
?
@@ -151,11 +156,15 @@ protected boolean matchesSafely(Iterator<T> resultIterator, Description descript | |||
final T record = resultIterator.next(); | |||
if (!matchThenNext(record)) { | |||
mismatchDescription = String.format("Unexpected record '%s'", record); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Apparently this mismatch description is not very helpful. In the very least, I'd add offset and the expected record.
mismatchDescription = | ||
"Number of records consumed from external system is less than " | ||
+ "records written to external system"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This message apparently was also not very helpful. Could we add how many matched and which record is the first that didn't?
0cb0692
to
b1f1098
Compare
Thanks @AHeise for the review! I made some refactor since your last review so you may want to review the PR again. I split changes into 4 commits:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you very much. Looks very good already. I gave one more idea on how to improve the matching description.
String expectedDescription = | ||
"Unexpected record '3' at position 6\n" | ||
+ "Current progress of multiple split test data validation:\n" | ||
+ "Split 0 (3/3): \n" | ||
+ "alpha\n" | ||
+ "beta\n" | ||
+ "gamma\n" | ||
+ "Split 1 (3/3): \n" | ||
+ "one\n" | ||
+ "two\n" | ||
+ "three\n" | ||
+ "Split 2 (0/3): \n" | ||
+ "1\t<----\n" | ||
+ "2\n" | ||
+ "3\n"; | ||
assertMatcherFailedWithDescription(result.iterator(), matcher, expectedDescription); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here it would be nice to also see the actual elements and not just the expected. For example, did we just receive incorrect output or was it swapped?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the review @AHeise ! I appended the remaining received elements to the mismatchDescription in my latest push so that it can provide more info for debugging.
b1f1098
to
32f2f8c
Compare
Looks good already. Can you rebase on master and I'd do a final pass. |
…tData returns List to preserve order
…st data matchers to reveal more info on failure
…ing stage of connector testing framework
32f2f8c
to
b1bf49b
Compare
@flinkbot run azure |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Thanks! Let's wait for a final AZP run.
Thanks @AHeise ! AZP run has passed. Could you help to merge the PR when you are available? |
Thank you. Merged. Can you create a backport PR? |
What is the purpose of the change
This pull request add debug logging for
MultipleSplitDataMatcher
used in testing framework if the case doesn't pass the validation of matcher.Brief change log
MultipleSplitDataMatcher
failsVerifying this change
This change is a trivial rework / code cleanup without any test coverage.
Does this pull request potentially affect one of the following parts:
@Public(Evolving)
: (no)Documentation