You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When saving matrix fieldsets under heavy load, the compiled classes fail to accurately compile the full field set, causing missing property errors.
In Craft\services\Fields#saveField the updateFieldVersion method is called. This method is run for each field in the matrix. The fieldversion is bumped on the first field saved and prevented from being bumped again in the same request:
If a request arrives in craft after the first field is saved but before a brand new field is saved, it caches the compiled ContentBehaviour class with the new fieldversion, but without the new field, preventing the new field from ever appearing in the compiled class.
Removing the line above that prevents multiple fieldversion changes resolves this bug.
Steps to reproduce
Place the site under heavy load
Save a large matrix field with a new field added
Load any front-end Craft page
Additional info
Craft version: 3.0.22
PHP version: 7.1.17
Database driver & version: mysql 5.7.22
The text was updated successfully, but these errors were encountered:
Description
When saving matrix fieldsets under heavy load, the compiled classes fail to accurately compile the full field set, causing missing property errors.
In
Craft\services\Fields#saveField
theupdateFieldVersion
method is called. This method is run for each field in the matrix. The fieldversion is bumped on the first field saved and prevented from being bumped again in the same request:cms/src/services/Fields.php
Line 1361 in d03dc3b
If a request arrives in craft after the first field is saved but before a brand new field is saved, it caches the compiled
ContentBehaviour
class with the new fieldversion, but without the new field, preventing the new field from ever appearing in the compiled class.Removing the line above that prevents multiple fieldversion changes resolves this bug.
Steps to reproduce
Additional info
The text was updated successfully, but these errors were encountered: