-
Notifications
You must be signed in to change notification settings - Fork 593
HDDS-6130. [Ozone-Streaming] When releaseBuffers will get “Couldn 't find the required future” #2939
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
Conversation
sadanand48
left a comment
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 @captainzmc for the PR. I just realised that this problem is due to the wrongly computed totalAckDataLength. Since we are not doing watchForCommit() after periodic putBlock() i.e in doFlushIfNeeded() , it might happen that the same set of buffers are inserted into the commitInfoMap more than once because of which totalAckData is wrongly computed and we get this error. I think for now we can just add watchForCommit() after doing putBlock in here which should solve the issue right away,
hadoop-hdds/client/src/main/java/org/apache/hadoop/hdds/scm/storage/StreamCommitWatcher.java
Outdated
Show resolved
Hide resolved
Thanks @sadanand48 for your advice, I have updated the PR and the testPutBlockAtBoundary can be used to verify this fix. Through testing, I found that only add watchForCommit() is not enough. ExecutePutBlock() is only an asynchronous to execute updateCommitInfoMap. we should add waitOnFlushFutures() for ensure that updateCommitInfoMap is executed. Without waitOnFlushFutures() we'll have the same problem. |
|
@sadanand48 |
hadoop-hdds/client/src/main/java/org/apache/hadoop/hdds/scm/storage/StreamCommitWatcher.java
Outdated
Show resolved
Hide resolved
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.
@captainzmc , you are right that the error messages are inaccurate.
After the change, the futureMap is no longer useful. Let's remove it; see https://issues.apache.org/jira/secure/attachment/13037847/2939_review.patch
2e0db27 to
06a2e58
Compare
06a2e58 to
a24c620
Compare
szetszwo
left a comment
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.
+1 the change looks good.
…find the required future” (#2939)
…find the required future” (#2939)
…find the required future” (#2939)
…find the required future” (#2939)
…find the required future” (#2939)
…find the required future” (#2939)
…find the required future” (apache#2939)
…find the required future” (#2939)
…find the required future” (#2939)
…find the required future” (#2939)
…find the required future” (apache#2939)
…find the required future” (apache#2939) (cherry picked from commit 58da69f)
What changes were proposed in this pull request?
See: https://issues.apache.org/jira/browse/HDDS-6130
How was this patch tested?
Existing tests: testPutBlockAtBoundary