Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

claw-playbook unmet dependencies #873

Closed
whikloj opened this issue Jul 13, 2018 · 11 comments
Closed

claw-playbook unmet dependencies #873

whikloj opened this issue Jul 13, 2018 · 11 comments

Comments

@whikloj
Copy link
Member

whikloj commented Jul 13, 2018

Something in the last Islandora commit is failing to install cleanly.

Claw-playbook throws the error.

TASK [geerlingguy.drupal : Install configured modules with drush.] *************
Friday 13 July 2018  13:27:18 -0500 (0:00:20.078)       0:12:43.044 *********** 
fatal: [default]: FAILED! => {"changed": true, "cmd": ["/var/www/html/drupal/vendor/drush/drush/drush", "pm-enable", "-y", "rdf", "responsive_image", "syslog", "serialization", "basic_auth", "rest", "simpletest", "restui", "devel", "search_api_solr", "search_api_solr_defaults", "facets", "islandora_core_feature", "islandora_demo_feature", "--root=/var/www/html/drupal/web"], "delta": "0:00:19.941937", "end": "2018-07-13 18:27:36.799215", "failed": true, "msg": "non-zero return code", "rc": 1, "start": "2018-07-13 18:27:16.857278", "stderr": " [error]  Configuration objects provided by <em class=\"placeholder\">islandora_demo_feature</em> have unmet dependencies: <em class=\"placeholder\">core.entity_form_display.taxonomy_term.tags.default (field.field.taxonomy_term.tags.field_external_uri), core.entity_view_display.media.file.open_seadragon (field.field.media.file.field_file_size, field.field.media.file.field_media_of, field.field.media.file.field_mime_type, field.field.media.file.field_tags), core.entity_view_display.media.image.open_seadragon (field.field.media.image.field_file_size, field.field.media.image.field_height, field.field.media.image.field_media_of, field.field.media.image.field_mime_type, field.field.media.image.field_tags, field.field.media.image.field_width), field.field.node.islandora_object.field_member_of (field.storage.node.field_member_of)</em> ", "stderr_lines": [" [error]  Configuration objects provided by <em class=\"placeholder\">islandora_demo_feature</em> have unmet dependencies: <em class=\"placeholder\">core.entity_form_display.taxonomy_term.tags.default (field.field.taxonomy_term.tags.field_external_uri), core.entity_view_display.media.file.open_seadragon (field.field.media.file.field_file_size, field.field.media.file.field_media_of, field.field.media.file.field_mime_type, field.field.media.file.field_tags), core.entity_view_display.media.image.open_seadragon (field.field.media.image.field_file_size, field.field.media.image.field_height, field.field.media.image.field_media_of, field.field.media.image.field_mime_type, field.field.media.image.field_tags, field.field.media.image.field_width), field.field.node.islandora_object.field_member_of (field.storage.node.field_member_of)</em> "], "stdout": "The following module(s) will be enabled: responsive_image, syslog, serialization, basic_auth, rest, simpletest, restui, devel, search_api_solr, search_api_solr_defaults, facets, islandora_core_feature, islandora_demo_feature, language, search_api, content_translation, eva, features, config_update, islandora, jsonld, hal, jwt, key, filehash, context_ui, context, action, media, prepopulate, features_ui, migrate_tools, migrate, migrate_plus, migrate_source_csv, islandora_image, openseadragon, libraries\n\n // Do you want to continue?: yes.                                              ", "stdout_lines": ["The following module(s) will be enabled: responsive_image, syslog, serialization, basic_auth, rest, simpletest, restui, devel, search_api_solr, search_api_solr_defaults, facets, islandora_core_feature, islandora_demo_feature, language, search_api, content_translation, eva, features, config_update, islandora, jsonld, hal, jwt, key, filehash, context_ui, context, action, media, prepopulate, features_ui, migrate_tools, migrate, migrate_plus, migrate_source_csv, islandora_image, openseadragon, libraries", "", " // Do you want to continue?: yes.                                              "]}

Logging into the vagrant and trying to load the islandora_demo_feature module results in.

vagrant@claw:/var/www/html/drupal/web/modules/contrib/islandora/modules/islandora_demo_feature$ drush pm-enable islandora_demo_feature
The following module(s) will be enabled: islandora_demo_feature, islandora_core_feature

 Do you want to continue? (yes/no) [yes]:
 > yes

 [error]  Configuration objects provided by <em class="placeholder">islandora_demo_feature</em> have unmet dependencies: <em class="placeholder">core.entity_form_display.taxonomy_term.tags.default (field.field.taxonomy_term.tags.field_external_uri), core.entity_view_display.media.file.open_seadragon (field.field.media.file.field_file_size, field.field.media.file.field_media_of, field.field.media.file.field_mime_type, field.field.media.file.field_tags), core.entity_view_display.media.image.open_seadragon (field.field.media.image.field_file_size, field.field.media.image.field_height, field.field.media.image.field_media_of, field.field.media.image.field_mime_type, field.field.media.image.field_tags, field.field.media.image.field_width), field.field.node.islandora_object.field_member_of (field.storage.node.field_member_of)</em> 

But what is interesting is...

vagrant@claw:/var/www/html/drupal/web/modules/contrib/islandora/modules/islandora_demo_feature$ drush pm-enable islandora_core_feature
The following module(s) will be enabled: islandora_core_feature, islandora_demo_feature

 Do you want to continue? (yes/no) [yes]:
 > no

 [error]  Cancelled. 

which makes it seem like a circular dependency has been introduced.

@dannylamb

@whikloj
Copy link
Member Author

whikloj commented Jul 13, 2018

@whikloj
Copy link
Member Author

whikloj commented Jul 13, 2018

Commenting out the above line I was able to install islandora_core_feature and then islandora_demo_feature but my vagrant box is still a mess. Trying running ansible-playbook over the top to see if it can be recovered.

@whikloj
Copy link
Member Author

whikloj commented Jul 13, 2018

I have made a branch without the dependency. I need to try pulling up the box using this branch and if it works I'll open a PR.

https://github.com/whikloj/islandora-1/tree/issue-873

@dannylamb
Copy link
Contributor

Yeah... so if it's getting added when exporting the feature, I'm afraid I haven't separated these out as well as I had hoped :( I"ll have to dig to see what's out of place. I know @seth-shaw-unlv has already discovered a few nuggets. There's probably more.

@dannylamb
Copy link
Contributor

Yeah, commenting out that line works just fine. That'll plug the hole for now, but I'll keep on digging. Looks like some stuff for the article content type slipped in, too.

@whikloj
Copy link
Member Author

whikloj commented Jul 16, 2018

One other thing from PR-66, you stopped copying the config during the webserver-app task, but we need that to set the Solr Search Api.

Unless that is not needed, then that should be removed to as my playbook is failing there now.

I was incorrect, this seems to be due to solr_search_api and solr_search_api_defaults not being enabled, even though ansible seems to think they are.

@whikloj
Copy link
Member Author

whikloj commented Jul 18, 2018

So the issue is two fold, one we seem to have some sort of error that (I think looked like a MySQL error) on the first run through. Not sure why that has suddenly appeared.

But then the geerlinguy drupal role has some weak logic and assumes that if Drupal was installed the everything after that worked too.

So we fail here.

We might fail because of our modules, that I am not sure of. But anyways...

Then on a second run that is skipped because Drupal bootstrap IS in the output as defined way up here.

So when we attempt to set the solr_search_api settings later it fails. This requires a manual intervention to enable search_api_solr and search_api_solr_defaults and then continue the playbook.

Here is the full error that is crashing out of enabling the modules.

Error: Call to a member function getSchema() on null in /var/www/html/drupal/web/core/modules/views/src/EntityViewsData.php on line 383 #0 /var/www/html/drupal/web/core/modules/views/src/EntityViewsData.php(283): Drupal\\views\\EntityViewsData->mapFieldDefinition('node_field_data', 'content_transla...', Object(Drupal\\Core\\Field\\BaseFieldDefinition), Object(Drupal\\Core\\Entity\\Sql\\DefaultTableMapping), Array)\n#1 /var/www/html/drupal/web/core/modules/node/src/NodeViewsData.php(16): Drupal\\views\\EntityViewsData->getViewsData()\n#2 /var/www/html/drupal/web/core/modules/views/views.views.inc(170): Drupal\\node\\NodeViewsData->getViewsData()\n#3 [internal function]: views_views_data()\n#4 /var/www/html/drupal/web/core/lib/Drupal/Core/Extension/ModuleHandler.php(391): call_user_func_array('views_views_dat...', Array)\n#5 /var/www/html/drupal/web/core/modules/views/src/ViewsData.php(245): Drupal\\Core\\Extension\\ModuleHandler->invoke('views', 'views_data')\n#6 /var/www/html/drupal/web/core/modules/views/src/ViewsData.php(162): Drupal\\views\\ViewsData->getData()\n#7 /var/www/html/drupal/web/core/modules/views/src/Plugin/ViewsHandlerManager.php(85): Drupal\\views\\ViewsData->get('media_field_dat...')\n#8 /var/www/html/drupal/web/core/modules/views/src/Plugin/views/display/DisplayPluginBase.php(889): Drupal\\views\\Plugin\\ViewsHandlerManager->getHandler(Array, NULL)\n#9 /var/www/html/drupal/web/core/modules/views/src/ViewExecutable.php(1040): Drupal\\views\\Plugin\\views\\display\\DisplayPluginBase->getHandlers('field')\n#10 /var/www/html/drupal/web/core/modules/views/src/ViewExecutable.php(898): Drupal\\views\\ViewExecutable->_initHandler('field', Array)\n#11 /var/www/html/drupal/web/modules/contrib/eva/eva.module(73): Drupal\\views\\ViewExecutable->initHandlers()\n#12 /var/www/html/drupal/web/modules/contrib/eva/eva.module(19): eva_get_views()\n#13 [internal function]: eva_entity_extra_field_info()\n#14 /var/www/html/drupal/web/core/lib/Drupal/Core/Extension/ModuleHandler.php(402): call_user_func_array('eva_entity_extr...', Array)\n#15 /var/www/html/drupal/web/core/lib/Drupal/Core/Entity/EntityFieldManager.php(610): Drupal\\Core\\Extension\\ModuleHandler->invokeAll('entity_extra_fi...')\n#16 /var/www/html/drupal/web/core/lib/Drupal/Core/Entity/EntityManager.php(345): Drupal\\Core\\Entity\\EntityFieldManager->getExtraFields('media', 'image')\n#17 /var/www/html/drupal/web/core/lib/Drupal/Core/Entity/EntityDisplayBase.php(160): Drupal\\Core\\Entity\\EntityManager->getExtraFields('media', 'image')\n#18 /var/www/html/drupal/web/core/lib/Drupal/Core/Entity/EntityDisplayBase.php(143): Drupal\\Core\\Entity\\EntityDisplayBase->init()\n#19 /var/www/html/drupal/web/core/lib/Drupal/Core/Entity/Entity/EntityViewDisplay.php(175): Drupal\\Core\\Entity\\EntityDisplayBase->__construct(Array, 'entity_view_dis...')\n#20 /var/www/html/drupal/web/core/lib/Drupal/Core/Entity/EntityStorageBase.php(322): Drupal\\Core\\Entity\\Entity\\EntityViewDisplay->__construct(Array, 'entity_view_dis...')\n#21 /var/www/html/drupal/web/core/lib/Drupal/Core/Config/Entity/ConfigEntityStorage.php(459): Drupal\\Core\\Entity\\EntityStorageBase->mapFromStorageRecords(Array)\n#22 /var/www/html/drupal/web/core/lib/Drupal/Core/Config/Entity/ConfigEntityStorage.php(434): Drupal\\Core\\Config\\Entity\\ConfigEntityStorage->_doCreateFromStorageRecord(Array)\n#23 /var/www/html/drupal/web/core/lib/Drupal/Core/Config/ConfigInstaller.php(327): Drupal\\Core\\Config\\Entity\\ConfigEntityStorage->createFromStorageRecord(Array)\n#24 /var/www/html/drupal/web/modules/contrib/features/src/FeaturesConfigInstaller.php(106): Drupal\\Core\\Config\\ConfigInstaller->createConfiguration('', Array)\n#25 /var/www/html/drupal/web/core/lib/Drupal/Core/Config/ConfigInstaller.php(134): Drupal\\features\\FeaturesConfigInstaller->createConfiguration('', Array)\n#26 /var/www/html/drupal/web/core/lib/Drupal/Core/Extension/ModuleInstaller.php(263): Drupal\\Core\\Config\\ConfigInstaller->installDefaultConfig('module', 'islandora_demo_...')\n#27 /var/www/html/drupal/web/core/lib/Drupal/Core/ProxyClass/Extension/ModuleInstaller.php(83): Drupal\\Core\\Extension\\ModuleInstaller->install(Array, true)\n#28 /var/www/html/drupal/vendor/drush/drush/src/Drupal/Commands/pm/PmCommands.php(79): Drupal\\Core\\ProxyClass\\Extension\\ModuleInstaller->install(Array, true)\n#29 [internal function]: Drush\\Drupal\\Commands\\pm\\PmCommands->enable(Array, Array)\n#30 /var/www/html/drupal/vendor/consolidation/annotated-command/src/CommandProcessor.php(235): call_user_func_array(Array, Array)\n#31 /var/www/html/drupal/vendor/consolidation/annotated-command/src/CommandProcessor.php(181): Consolidation\\AnnotatedCommand\\CommandProcessor->runCommandCallback(Array, Object(Consolidation\\AnnotatedCommand\\CommandData))\n#32 /var/www/html/drupal/vendor/consolidation/annotated-command/src/CommandProcessor.php(150): Consolidation\\AnnotatedCommand\\CommandProcessor->validateRunAndAlter(Array, Array, Object(Consolidation\\AnnotatedCommand\\CommandData))\n#33 /var/www/html/drupal/vendor/consolidation/annotated-command/src/AnnotatedCommand.php(404): Consolidation\\AnnotatedCommand\\CommandProcessor->process(Object(Symfony\\Component\\Console\\Output\\ConsoleOutput), Array, Array, Object(Consolidation\\AnnotatedCommand\\CommandData))\n#34 /var/www/html/drupal/vendor/symfony/console/Command/Command.php(251): Consolidation\\AnnotatedCommand\\AnnotatedCommand->execute(Object(Drush\\Symfony\\DrushArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))\n#35 /var/www/html/drupal/vendor/symfony/console/Application.php(964): Symfony\\Component\\Console\\Command\\Command->run(Object(Drush\\Symfony\\DrushArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))\n#36 /var/www/html/drupal/vendor/symfony/console/Application.php(248): Symfony\\Component\\Console\\Application->doRunCommand(Object(Consolidation\\AnnotatedCommand\\AnnotatedCommand), Object(Drush\\Symfony\\DrushArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))\n#37 /var/www/html/drupal/vendor/symfony/console/Application.php(148): Symfony\\Component\\Console\\Application->doRun(Object(Drush\\Symfony\\DrushArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))\n#38 /var/www/html/drupal/vendor/drush/drush/src/Runtime/Runtime.php(112): Symfony\\Component\\Console\\Application->run(Object(Drush\\Symfony\\DrushArgvInput), Object(Symfony\\Component\\Console\\Output\\ConsoleOutput))\n#39 /var/www/html/drupal/vendor/drush/drush/src/Runtime/Runtime.php(41): Drush\\Runtime\\Runtime->doRun(Array)\n#40 /var/www/html/drupal/vendor/drush/drush/drush.php(66): Drush\\Runtime\\Runtime->run(Array)\n#41 /var/www/html/drupal/vendor/drush/drush/drush(4): require('/var/www/html/d...')\n#42 {main}\n [error]  Drush command terminated abnormally due to an unrecoverable error. 

@dannylamb
Copy link
Contributor

When testing originally, I used drupal-project on its own since claw-playbook wasn't working. When doing so, I only composer required what was needed for the core islandora module. Now that it's failing like this, I've managed to replicate it using just drupal-project by requiring everything we do in the playbook.

It definitely has something to do with the content translation fix I did so we can get at our datastreams in Fedora. I'm thinking I didn't fully export everything we needed for content translation in the feature.

@dannylamb
Copy link
Contributor

We're running smack dab into this: https://www.drupal.org/node/2599228. There's a bug when importing config with translations enabled and node_field_data doesn't get the translation columns added to it.

Looks like we can solve this by running drupal update:entity from the command line. It apparently can also be solved by just hitting the save button on the translation config page, which will trigger adding the columns as well.

We may have to shuffle some code to the post-install section and do it after running update:entity until this gets sorted out in core.

@dannylamb
Copy link
Contributor

Having exhausted all possible options (hook install code, programatically submitting a form, drupal update:entities) it looks like there's no way to do this without having drush en islandora_demo_feature command run first and fail. It's half baked config must be in and then you run drupal update:entities, and then you uninstall/re-install it. That's the only way I can get it to take hold. So I'm gonna have to resort to ignore_errors: yes to get this going.

This is gonna be gross, but temporary. 🙏

@dannylamb
Copy link
Contributor

Got it. @Islandora-CLAW/committers ^^

This should fix the installer.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants