- Issue created by @esod
- πΊπΈUnited States esod
A core bug is preventing the update from completing. The bug is an Annotation bug in Editor.php. Here is the bug.
Doctrine\Common\Annotations\AnnotationException [Semantical Error] The class "Editor" is not annotated with @Annotation. Are you sure this class can be used as annotation? If so, then you need to add @Annotation to the _class_ doc comment of "Editor". If it is indeed no annotation, then you need to add @IgnoreAnnotation("Editor") to the _class_ doc comment of class @Drupal\editor\Annotation\Editor.
core/modules/editor/src/Annotation/Editor.php includes @Annotation. But since the editor entity_id is for only 2 records in the acquia_contenthub_publisher_export_tracking table, my patch manually updates them so as to avoid the annotation issue with the Editor service class.
However, even with the patch successfully applied to our DEV environment, MySQL still goes away after ~20k record updates, ~15 - 20 minutes.
My patch is tending a bit towards a custom patch, but I'm going to add it here because I also don't think the issue I'm experiencing with the
acquia_contenthub_publisher_update_91002()
is unique. I think any large system is going to eventually have tens of thousands of records in its publisher export tracking table. The attached patch may encourage others to chime in. Otherwise, the continuing discussion on this issue will be with Acquia support. - πΊπΈUnited States esod
Here's a better version of the patch. The server still times out after ~21k record updates.
- πΊπΈUnited States esod
We have >90,000 rows in the acquia_contenthub_publisher_export_tracking table at this point. I appreciate that an effort was made to address this issue with release v.3.5.2. Unfortunately, it's still failing:
Fatal error: Allowed memory size of 1073741824 bytes exhausted (tried to allocate 163840 bytes) in /mnt/www/html/ojp01test/docroot/core/lib/Drupal/Core/Database/StatementWrapperIterator.php on line 113
After running the hook updates 3 times on our test environment.
mysql> SELECT COUNT(*) FROM acquia_contenthub_publisher_export_tracking WHERE label IS NULL;
+----------+
| COUNT(*) |
+----------+
| 71680 |
+----------+Same count after running the hook updates a 4th time.