Problem/Motivation
There are some cases where an item might fail generate zip information. If this is the case, it should handle it more gracefully and not create a pdo exception when trying to save a file that does not exist.
> [warning] ZipArchive::close(): Failure to create temporary file: No such file or directory ArchiveService.php:634
> [error] Failed to create zip file on aggregated archive for current: dialysis-facilities - dataset-archives/current/theme/theme_dialysis-facilities_current.zip.
> [warning] Undefined array key "drupal_file_uri" ArchiveService.php:278
> [warning] Undefined array key "file_url" ArchiveService.php:279
> [error] Drupal\Core\Database\IntegrityConstraintViolationException: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'uri' cannot be null: INSERT INTO "file_managed" ("uuid", "langcode", "uid", "filename", "uri", "filemime", "filesize", "status", "created", "changed") VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5, :db_insert_placeholder_6, :db_insert_placeholder_7, :db_insert_placeholder_8, :db_insert_placeholder_9); Array
> (
> [:db_insert_placeholder_0] => dd314086-b582-41e7-ad19-06a6c0ea8c63
> [:db_insert_placeholder_1] => en
> [:db_insert_placeholder_2] =>
> [:db_insert_placeholder_3] =>
> [:db_insert_placeholder_4] =>
> [:db_insert_placeholder_5] => application/zip
> [:db_insert_placeholder_6] =>
> [:db_insert_placeholder_7] => 1
> [:db_insert_placeholder_8] => 1763517661
> [:db_insert_placeholder_9] => 1763517661
> )
> in Drupal\mysql\Driver\Database\mysql\ExceptionHandler->handleExecutionException() (line 45 of /var/www/html/docroot/core/modules/mysql/src/Driver/Database/mysql/ExceptionHandler.php).
> [error] Error processing queue item: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'uri' cannot be null: INSERT INTO "file_managed" ("uuid", "langcode", "uid", "filename", "uri", "filemime", "filesize", "status", "created", "changed") VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5, :db_insert_placeholder_6, :db_insert_placeholder_7, :db_insert_placeholder_8, :db_insert_placeholder_9); Array
> (
> [:db_insert_placeholder_0] => dd314086-b582-41e7-ad19-06a6c0ea8c63
> [:db_insert_placeholder_1] => en
> [:db_insert_placeholder_2] =>
> [:db_insert_placeholder_3] =>
> [:db_insert_placeholder_4] =>
> [:db_insert_placeholder_5] => application/zip
> [:db_insert_placeholder_6] =>
> [:db_insert_placeholder_7] => 1
> [:db_insert_placeholder_8] => 1763517661
> [:db_insert_placeholder_9] => 1763517661
> )
>
> [error] Drupal\Core\Entity\EntityStorageException: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'uri' cannot be null: INSERT INTO "file_managed" ("uuid", "langcode", "uid", "filename", "uri", "filemime", "filesize", "status", "created", "changed") VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5, :db_insert_placeholder_6, :db_insert_placeholder_7, :db_insert_placeholder_8, :db_insert_placeholder_9); Array
> (
> [:db_insert_placeholder_0] => dd314086-b582-41e7-ad19-06a6c0ea8c63
> [:db_insert_placeholder_1] => en
> [:db_insert_placeholder_2] =>
> [:db_insert_placeholder_3] =>
> [:db_insert_placeholder_4] =>
> [:db_insert_placeholder_5] => application/zip
> [:db_insert_placeholder_6] =>
> [:db_insert_placeholder_7] => 1
> [:db_insert_placeholder_8] => 1763517661
> [:db_insert_placeholder_9] => 1763517661
> )
> in Drupal\Core\Entity\Sql\SqlContentEntityStorage->save() (line 817 of /var/www/html/docroot/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php).
> [warning] ZipArchive::close(): Failure to create temporary file: No such file or directory ArchiveService.php:634
> [error] Failed to create zip file on aggregated archive for current: home-health-services - dataset-archives/current/theme/theme_home-health-services_current.zip.
> [warning] Undefined array key "drupal_file_uri" ArchiveService.php:278
> [warning] Undefined array key "file_url" ArchiveService.php:279
Acceptance Criteria
Testing steps
Comments
Comment #4
swirtThis has been fixed. If the archiver encounters a dataset that has no file or is orphaned, it will more gracefully log an error but keep moving.
Comment #5
swirtComment #7
swirtReleased in Beta 6