Drupal Release: 9.1.1
Tag Name: 9.1.1
Release Date: 1/6/2021
DrupalHighly flexible, open-source content management system known for complex, scalable web applications. Preferred by government, educational, and large enterprise websites requiring advanced customization and security features. Robust module ecosystem.
TL;DR
Drupal 9.1.1 is a maintenance release that addresses numerous bug fixes, performance improvements, and documentation enhancements. This update focuses on resolving issues with password reset processes, fixing critical bugs in various modules, improving migration tools, and enhancing theme functionality. It's a recommended update for all Drupal 9.1.x sites to ensure stability, security, and proper functionality.
Highlight of the Release
- Fixed password reset process to respect user language preferences
- Resolved multiple image upload functionality that was breaking image dimensions
- Fixed PostgreSQL compatibility issue with EntityStorageBase::loadByProperties()
- Improved Views UI with better error handling and sorted options
- Enhanced Olivero theme with various fixes and improvements
- Fixed race condition in ImageStyle::createDerivative()
- Updated CKEditor to version 4.15.1
- Added compatibility with PHPUnit 9.5
Migration Guide
This is a maintenance release with bug fixes and minor improvements, so no specific migration steps are required when updating from Drupal 9.1.0 to 9.1.1.
To update to Drupal 9.1.1:
- Back up your database and site files
- Put your site into maintenance mode
- Update Drupal core using Composer:
Or if you're not using Composer, download the new version and replace your existing core filescomposer update drupal/core 'drupal/core-*' --with-all-dependencies - Run the database updates:
Or visitdrush updatedb/update.phpin your browser - Clear caches:
Or visitdrush cache:rebuild/admin/config/development/performanceand click "Clear all caches" - Take your site out of maintenance mode
If you're using any of the specific features that were fixed in this release (such as PostgreSQL with case-insensitive queries, multiple image uploads, or migrations from Drupal 7), you should test those features after updating to ensure they work as expected.
Upgrade Recommendations
It is highly recommended to upgrade to Drupal 9.1.1 if you are currently using Drupal 9.1.0. This release contains numerous bug fixes and improvements that enhance stability, performance, and security.
Priority: Medium
Timing: Update at your earliest convenience during a regular maintenance window.
Who should update immediately:
- Sites experiencing any of the specific issues fixed in this release
- Sites using PostgreSQL with EntityStorageBase::loadByProperties() with case insensitive properties
- Sites with multiple image uploads that are experiencing dimension issues
- Sites using the password reset functionality where language preferences are important
- Sites actively performing migrations from Drupal 7
Testing recommendation: As with any update, test the update on a staging environment before applying to production, particularly if you rely heavily on any of the fixed functionality.
Bug Fixes
-
Password Reset Process:
- Fixed issue where password reset process ignored the user's language preference
- Improved login screen after requesting a new password to be more relevant
-
Database and Storage Issues:
- Fixed EntityStorageBase::loadByProperties() on PostgreSQL when using two or more case insensitive properties
- Fixed SQL error on revision export from view
- Fixed entity query failures for multi-property base fields when no property is specified
- Fixed menu tree storage not populating route names for definitions
-
Migration Issues:
- Fixed "d7_field_option_translation" process plugin
- Fixed system_maintenance migrations using incorrect maintenance mode variable in Drupal 7 migrations
- Fixed system site translation migrating non-translatable properties
- Added custom error message for PluginNotFoundException in the migratelookup service
- Fixed migration issues with mail_system variable availability
- Fixed search_default_module variable handling in migrations
-
Views Issues:
- Fixed 500 error on passing invalid month to MonthDate view argument handler
- Fixed operator labels not being redrawn on filter removal
- Fixed issue where displays are attached even when user does not have access
- Fixed issue with target_bundles causing PHP notice and unexpected errors
-
Layout and Theme Issues:
- Fixed hover link background height issue
- Fixed text field with multiple values overflowing on narrow screens
- Fixed Layout Builder's ConfigureSectionForm not displaying validation errors on submit
-
Image Handling:
- Fixed multiple image upload breaking image dimensions
- Fixed race condition in ImageStyle::createDerivative()
-
Queue Processing:
- Fixed releaseItem() and delayItem() of DatabaseQueue violating interfaces return type specifications
- Improved DelayedRequeueException to call parent and optionally allow providing default args
-
Other Fixes:
- Fixed PHPUnit 9.5 compatibility issue with undefined method ::getAnnotations()
- Fixed Session manager destroy missing isCli check
- Fixed wrong language in token_options in user_mail function
- Fixed install_check_translations() sometimes incorrectly returning NULL instead of array
- Fixed PCRE library version 10.35 with pcre.jit=1 making regex misbehave in FileTranslation
New Features
-
Help Topics Improvements: Added more developer documentation for Help Topics and converted several module hook_help() implementations to the new Help Topics system, including config, file, image, media, media_library, responsive_image, migrate, migrate_drupal, migrate_drupal_multilingual, and migrate_drupal_ui modules.
-
Mentoring Coordinators: Added Chris Darke (ChrisDarke) and AmyJune Hineline (volkswagenchick) as provisional mentoring coordinators.
-
PostCSS Plugin Support: Added support for the PostCSS Plugin "Px to Rem" in core for the Olivero theme, allowing for more flexible responsive design.
-
PHPUnit Initiative Completion: The PHPUnit Initiative has been completed, marking a significant milestone in Drupal's testing infrastructure.
Security Updates
While this release doesn't contain major security fixes (those are typically released in dedicated security updates), it does include some improvements related to security:
-
Fixed Session manager destroy missing isCli check, which could potentially lead to session handling issues in certain contexts.
-
Improved password reset process security by ensuring it respects user language preferences and providing a more relevant login screen after requesting a new password.
-
Fixed race condition in ImageStyle::createDerivative() which could potentially lead to unexpected behavior under certain conditions.
-
Updated CKEditor to version 4.15.1, which may include security improvements from the CKEditor project.
Performance Improvements
-
TaggedHandlerPass Optimization: Improved the performance of TaggedHandlerPass, which affects service container compilation time.
-
Image Processing: Fixed race condition in ImageStyle::createDerivative(), which not only resolves a bug but also improves performance when generating image derivatives under high load.
-
Database Queries: Enhanced EntityStorageBase::loadByProperties() for PostgreSQL, improving query performance when using case insensitive properties.
-
Menu Handling: Improved menu tree storage by properly populating route names for definitions, which enhances menu rendering performance.
-
Service Container: Various optimizations in the service container compilation process, resulting in faster bootstrap times.
Impact Summary
Drupal 9.1.1 is a maintenance release that addresses over 60 issues from the previous version. The impact is primarily positive, fixing bugs and improving functionality across multiple areas of the system.
Key impacts include:
-
Improved user experience: The password reset process now respects user language preferences, and the login screen after requesting a new password is more relevant. Multi-value text fields display properly on narrow screens.
-
Better developer experience: Fixed PHPUnit 9.5 compatibility, improved documentation, and resolved several API inconsistencies. The completion of the PHPUnit Initiative marks a significant milestone for Drupal's testing infrastructure.
-
Enhanced stability: Fixed critical bugs in image handling, database queries, entity storage, and views functionality. The race condition fix in ImageStyle::createDerivative() prevents potential issues under high load.
-
Migration improvements: Several fixes to migration plugins and processes make migrating from Drupal 7 more reliable, especially for system mail settings, search settings, and user settings.
-
Theme enhancements: The Olivero theme received multiple improvements, including z-index refactoring, hover link fixes, and support for the PostCSS Plugin "Px to Rem".
-
PostgreSQL compatibility: Fixed a significant issue with EntityStorageBase::loadByProperties() on PostgreSQL when using case insensitive properties, improving database compatibility.
Overall, this release significantly improves the stability and functionality of Drupal 9.1.x without introducing breaking changes, making it a recommended update for all sites.
Statistics:
User Affected:
- Improved password reset process now respects user language preferences
- Fixed maintenance mode settings migration from Drupal 7
- Better error messages for configuration entity types
- More reliable image style derivative creation
