Skip to content

Comments

Call Archiving commands asynchronously from UI to avoid timeouts#12101

Open
qqmyers wants to merge 5 commits intoIQSS:developfrom
QualitativeDataRepository:Arch2-asyncArchiveCommands
Open

Call Archiving commands asynchronously from UI to avoid timeouts#12101
qqmyers wants to merge 5 commits intoIQSS:developfrom
QualitativeDataRepository:Arch2-asyncArchiveCommands

Conversation

@qqmyers
Copy link
Member

@qqmyers qqmyers commented Jan 21, 2026

What this PR does / why we need it: When archiving takes too long (e.g. a 10K file dataset), launching it from the UI can cause a timeout/rollback. This PR updates the code to archive a version from the versions table to run asynchronously and to handle any OptimisticLockException if the dataset changes before the archiving in the background completes.

Which issue(s) this PR closes:

  • Closes #

Special notes for your reviewer:
FWIW: This is one of several PRs related to updates being done to improve archiving scalability at QDR and DANS. Some are relatively minor cleanup while others are more significant. I'm submitting them all to avoid drift in QDR's fork and to leverage QDR testing (where all of these are being tested together).

Note: - another PR is coming that will use the asyncCommand call when doing an 'Update-Current-Version' publish action.

Suggestions on how to test this: Regression - confirm that calling an archiving workflow from the versions table still works. Not sure it's practical to try archiving something big enough to see the timeout issue with the current code.

Does this PR introduce a user interface change? If mockups are available, please link/include them here:

Is there a release notes update needed for this change?: Will create an aggregate one.

Additional documentation:

@coveralls
Copy link

coveralls commented Jan 21, 2026

Coverage Status

coverage: 24.33% (-0.004%) from 24.334%
when pulling cc0d6e4 on QualitativeDataRepository:Arch2-asyncArchiveCommands
into cc37d4d on IQSS:develop.

@qqmyers qqmyers changed the title Arch2 async archive commands Call Archiving commands asynchronously from UI to avoid timeouts Jan 21, 2026
@qqmyers qqmyers added Size: 3 A percentage of a sprint. 2.1 hours. GDCC: QDR of interest to QDR labels Jan 28, 2026
@qqmyers qqmyers added this to the 6.10 milestone Jan 28, 2026
@cmbz cmbz moved this to Ready for Review ⏩ in IQSS Dataverse Project Feb 11, 2026
@cmbz cmbz added the FY26 Sprint 17 FY26 Sprint 17 (2026-02-11 - 2026-02-25) label Feb 11, 2026
@stevenwinship stevenwinship moved this from Ready for Review ⏩ to In Review 🔎 in IQSS Dataverse Project Feb 20, 2026
@stevenwinship stevenwinship self-assigned this Feb 20, 2026
*
* @param <R> The return type of the command
* @param aCommand The command to execute
* @param user The user executing the command
Copy link
Contributor

@stevenwinship stevenwinship Feb 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can be removed - no user in signature

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed in #12167

@github-project-automation github-project-automation bot moved this from In Review 🔎 to Ready for QA ⏩ in IQSS Dataverse Project Feb 20, 2026
@stevenwinship stevenwinship removed their assignment Feb 20, 2026
@qqmyers qqmyers added the Status: Waiting for Related Issues/PRs This issue depends upon the completion of one or more issues/PRs label Feb 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

FY26 Sprint 17 FY26 Sprint 17 (2026-02-11 - 2026-02-25) GDCC: QDR of interest to QDR Size: 3 A percentage of a sprint. 2.1 hours. Status: Waiting for Related Issues/PRs This issue depends upon the completion of one or more issues/PRs

Projects

Status: Ready for QA ⏩

Development

Successfully merging this pull request may close these issues.

4 participants