drupal-console icon indicating copy to clipboard operation
drupal-console copied to clipboard

[ config:import ] Configuration synchronisation that both enables & configures a module fails

Open BramDriesen opened this issue 4 years ago • 1 comments

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

BramDriesen avatar Mar 17 '20 07:03 BramDriesen

In Drush this is occurring because the command is using the UpdateKernel which is not correct.

alexpott avatar Mar 17 '20 10:03 alexpott