Skip to content

Conversation

@alextwoods
Copy link
Contributor

Fix flaky pauseAndResume_ObjectNotChanged_shouldResumeDownload integ test

Motivation and Context

This integ test can fail when trying to verify the number of bytes transferred with assertThat(resumedFileDownload.progress().snapshot().totalBytes()).hasValue(expectedBytesTransferred) after resume is called with errors like:

org.opentest4j.AssertionFailedError: 
Expecting actual:
  OptionalLong[44040192]
to contain:
  44040202L
but did not.
Expected :44040202
Actual   :44040192

In these cases the actual bytes transferred on the resumed file download is less than expected because additional bytes are flushed to the file AFTER pause is called and not counted in the bytesTransferred stat. However, the client handles this correctly and will write the correct data to the file (we verify this with assertThat(path.toFile()).hasSameBinaryContentAs(sourceFile);).

Modifications

  • Adds an extra wait until the file size stabalizes (ie, the file size remains unchanged for 500ms) to ensure all bytes are flushed.
  • Use this actual file size when computing how many bytes we expect to be transferred on resume.

Testing

re-run integ test many times without failure.

Screenshots (if appropriate)

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)

Checklist

  • I have read the CONTRIBUTING document
  • Local run of mvn install succeeds
  • My code follows the code style of this project
  • My change requires a change to the Javadoc documentation
  • I have updated the Javadoc documentation accordingly
  • I have added tests to cover my changes
  • All new and existing tests passed
  • I have added a changelog entry. Adding a new entry must be accomplished by running the scripts/new-change script and following the instructions. Commit the new file created by the script in .changes/next-release with your changes.
  • My change is to implement 1.11 parity feature and I have updated LaunchChangelog

License

  • I confirm that this pull request can be released under the Apache 2 license

@alextwoods alextwoods added the changelog-not-required Indicate changelog entry is not required for a specific PR label Nov 7, 2025
@alextwoods alextwoods requested a review from a team as a code owner November 7, 2025 22:08
@sonarqubecloud
Copy link

sonarqubecloud bot commented Nov 7, 2025

@alextwoods alextwoods enabled auto-merge November 10, 2025 16:13
@alextwoods alextwoods added this pull request to the merge queue Nov 10, 2025
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Nov 10, 2025
@alextwoods alextwoods added this pull request to the merge queue Nov 10, 2025
Merged via the queue into master with commit 1f3f817 Nov 10, 2025
63 of 64 checks passed
@github-actions
Copy link

This pull request has been closed and the conversation has been locked. Comments on closed PRs are hard for our team to see. If you need more assistance, please open a new issue that references this one.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Nov 10, 2025
@alextwoods alextwoods deleted the alexwoo/fix-flaky-integ branch November 10, 2025 19:07
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

changelog-not-required Indicate changelog entry is not required for a specific PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants