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

Problem: Verify AIP job shows MySQL errors with uncompressed AIPs #1732

Open
5 tasks
replaceafill opened this issue Feb 14, 2025 · 0 comments
Open
5 tasks

Comments

@replaceafill
Copy link
Member

replaceafill commented Feb 14, 2025

Expected behaviour

The Verify AIP job verifies the contents of the AIP bag and does not show failed MySQL queries in the user interface.

Current behaviour

The Verify AIP job is supposed to:

  1. extract (for compressed AIPs) and validate the AIP bag
  2. iterate its contained files and verify their checksums match the checksums recorded at the beginning of the transfer
  3. on success write an AIP-level fixity check PREMIS event to the database that is sent to the Storage Service to be added to the pointer file
  4. on error write an AIP-level fixity check PREMIS event to the database, raise and log an error that stops processing of the transfer

On this last point (4.) you could argue about how useful the PREMIS event might be because the METS file has already been created so the event is not recorded there and the AIP is not going to be sent to the Storage Service.

Furthermore, each PREMIS event needs to be associated with an existing File in the Dashboard database. The Verify AIP job tries to associate its event with a File created for the AIP in the Compress AIP job.

But for uncompressed AIPs the Compress AIP job does not create such corresponding File which prevents the Verify AIP from recording any event. So if all verifications are successful, the job fails to write the Pass event and the error is handled gracefully (the job does not fail) but logged to the user interface with a MySQL error:

Image

If something is wrong with the contents of the bag the user interface also shows a MySQL error and doesn't provide any details of what really went wrong:

Image

Compare that VerifyChecksumsError(None) error with an error produced in a compressed AIP which provides context about the problem:

Image

Steps to reproduce

  1. Set the Select compression algorithm option of your processing configuration to Uncompressed.
  2. Start a Standard transfer using the SampleTransfers/Images/pictures folder
  3. The AIP should be stored in the Storage Service, but check the output of the Verify AIP job and you should see a MySQL error like the first screenshot above

For getting bag content errors (the last two screenshots) I artificially inserted a 2 minutes pause at the beginning of the Verify AIP job and when it hit I modified all the checksum values in the Files table to be 123.

Your environment (version of Archivematica, operating system, other relevant details)

artefactual/archivematica@61e5ca1


For Artefactual use:

Before you close this issue, you must check off the following:

  • All pull requests related to this issue are properly linked
  • All pull requests related to this issue have been merged
  • A testing plan for this issue has been implemented and passed (testing plan information should be included in the issue body or comments)
  • Documentation regarding this issue has been written and merged (if applicable)
  • Details about this issue have been added to the release notes (if applicable)
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

No branches or pull requests

1 participant