drupal-console
drupal-console copied to clipboard
[ config:import ] Configuration synchronisation that both enables & configures a module fails
Describe the bug I noticed something strange today with configuration synchronisation. When we deploy configuration that contains both the enabling of a (contrib/core) module & the config from it it doesn’t seem to work. The module appears to get enabled, and the configuration gets imported, but in the end the module really isn’t enabled, although the status in the modules overview screen shows it is enabled. Uninstalling & re-enabling the module & re-importing the config fixes this, but it’s strange as it happened to me twice today.
EDIT: This seems to be a multi application issue, there is a bug in Drupal, a bug in Drush and also a bug here in Drupal console.
Drupal: https://www.drupal.org/project/drupal/issues/3119373 Drush (also mentioned the issue in the Drupal issue): https://github.com/drush-ops/drush/issues/4350
So since I also tested the steps to reproduce with Drupal console instead of drush cim
I can only assume that the same kind of issue is happening here in Drupal Console.
To Reproduce I encountered the issue twice today on 2 different sites for 2 different modules (jsonapi_extras / media_library), below are the 2 scenarios written out.
jsonapi_extras
- locally enabled the module (drush en)
- locally configured some overrides
- locally exported the configuration (drush cex -y)
- committed and merged on our test branch that triggers a build & deploy
- on the server the configuration is imported (should enable & configure the module)
- config import done & cache is cleared --> no errors
- checked the json:api confiugration --> FAIL: No json:api extras tab
- checked the module overview --> module is enabled --> not true...
- on the server drush pm:uninstall the module
- on the server drush en the module
- on the server drush cim -y (lists all the changes again for the module)
- now it works fine
media_library
- locally enabled the module (drush en)
- locally configured some fields to use the media widget
- locally exported the configuration (drush cex -y)
- committed and merged on our test branch that triggers a build & deploy
- on the server the configuration is imported (should enable & configure the module)
- config import done & cache is cleared --> no errors
- checked the field configuration --> FAIL: The fields don't have the media library widget selected, nor is it available
- checked the module overview --> module is enabled --> not true...
- on the server drush pm:uninstall the module
- on the server drush en the module
- on the server drush cim -y (lists all the changes again for the module)
- now it works fine
Expected behavior Configuration should enable the module properly and then import the config.
Actual behavior Module is fakely enabled and the config is imported but doesn't take effect.
Workaround No
System Configuration
Q | A |
---|---|
Drush version? | 10.2 |
Drupal console version? | 1.9.4 |
Drupal version? | 8.8.3 |
PHP version | 7.4 & 7.3 |
OS? | Mac (local) & Linux (sever) & Docker (local) |
Full drush status from my local
Drupal version : 8.8.3
Site URI : http://default
DB driver : mysql
DB hostname : database
DB port : 3306
DB username : drupal8
DB name : drupal8
Database : Connected
Drupal bootstrap : Successful
Default theme : total_theme
Admin theme : seven
PHP binary : /usr/local/bin/php
PHP config :
PHP OS : Linux
Drush script : /app/vendor/drush/drush/drush
Drush version : 10.2.0
Drush temp : /tmp
Drush configs : /app/vendor/drush/drush/drush.yml
/app/drush/drush.yml
Install profile : standard
Drupal root : /app/web
Site path : sites/default
Files, Public : sites/default/files
Files, Private : sites/default/files/private
Files, Temp : /tmp
Additional information See the issue as well on DO https://www.drupal.org/project/drupal/issues/3119373
In Drush this is occurring because the command is using the UpdateKernel which is not correct.