Updating to 7.50 breaks the tests:

The following module is missing from the file system: panopoly_demo. [error]
In order to fix this, put the module back in its original location.
For more information, see the documentation page. in
_drupal_trigger_error_with_delayed_logging() (line 1128 of
/home/travis/build/panopoly/drupal-7/drupal/includes/bootstrap.inc).
The following module is missing from the file system: panopoly_news. [error]
In order to fix this, put the module back in its original location.
For more information, see the documentation page. in
_drupal_trigger_error_with_delayed_logging() (line 1128 of
/home/travis/build/panopoly/drupal-7/drupal/includes/bootstrap.inc).
The following module is missing from the file system: panopoly_faq.  [error]
In order to fix this, put the module back in its original location.
For more information, see the documentation page. in
_drupal_trigger_error_with_delayed_logging() (line 1128 of
/home/travis/build/panopoly/drupal-7/drupal/includes/bootstrap.inc).

Installation exits with a non-zero error code so it errors out, although, it does seem as though it actually succeeded in installing!

See https://travis-ci.org/panopoly/panopoly/jobs/144435388

Original issue summary

Last week, Drupal 7.50 was released:

https://www.drupal.org/project/drupal/releases/7.50

It's a non-security release, so we usually wait for a bit to avoid problems (which saved us in the past ;-)). The fallout appears to be minimal - the only thing I can find is:

#2762705: Slick view and Drupal 7.50 new issue

It's potentially annoying, but actually a good thing to know about so, I'm not worried. :-)

Support from Acquia helps fund testing for Drupal Acquia logo

Comments

dsnopek created an issue. See original summary.

  • dsnopek committed 6091cf1 on 7.x-1.x
    Issue #2765427: Update to Drupal 7.50
    
dsnopek’s picture

Status: Active » Fixed

Committed!

  • dsnopek committed f4bcf39 on 7.x-1.x
    Revert "Issue #2765427: Update to Drupal 7.50"
    
    This reverts commit...
dsnopek’s picture

Status: Fixed » Needs work

Updating to 7.50 breaks the tests:

The following module is missing from the file system: panopoly_demo. [error]
In order to fix this, put the module back in its original location.
For more information, see the documentation page. in
_drupal_trigger_error_with_delayed_logging() (line 1128 of
/home/travis/build/panopoly/drupal-7/drupal/includes/bootstrap.inc).
The following module is missing from the file system: panopoly_news. [error]
In order to fix this, put the module back in its original location.
For more information, see the documentation page. in
_drupal_trigger_error_with_delayed_logging() (line 1128 of
/home/travis/build/panopoly/drupal-7/drupal/includes/bootstrap.inc).
The following module is missing from the file system: panopoly_faq.  [error]
In order to fix this, put the module back in its original location.
For more information, see the documentation page. in
_drupal_trigger_error_with_delayed_logging() (line 1128 of
/home/travis/build/panopoly/drupal-7/drupal/includes/bootstrap.inc).

Installation exits with a non-zero error code so it errors out, although, it does seem as though it actually succeeded in installing!

See https://travis-ci.org/panopoly/panopoly/jobs/144435388

dsnopek’s picture

Here's the patch.

humansky’s picture

@dsnopek, how soon can we expect a fix for this? The reason I ask, we released an update to our distro (including 7.50) on our stage environment today and I experienced this issue when running `drush updb`. Do you think I need to rollback before our changes goes to production next week? How critical are these warnings? Also, let me know if you need any help.

praveen_91’s picture

you can use this module https://www.drupal.org/project/missing_module for remove or disable your missing module
after install module check your drupal report goto admin/reports/status , and find out "Check for missing modules in filesystem" then you can remove or disable your missing module using clicks
thanks.

dsnopek’s picture

@humansky: Since this isn't a security update (just bug fixes and features) and I don't have a client who needs 7.50, this is really a low priority for me. As far as I know, the warnings don't actually hurt anything in a running site, but they do break our tests and we can't have broken tests because it could hide other problems. As far as whether you need to rollback, that really depends on testing of your application - if you don't see any issues, it could be fine? That said, we still haven't been able to run the Panopoly test suite because of these problems.

humansky’s picture

@dsnopek, @prabin91's recommendation for using "missing_module" worked like a charm. So I don't think I need to roll back to 7.44. We should be good for now. If anything, perhaps "missing_module" should be part of Panopoly Core and part of the upgrade process. But that might be overkill, since you've always been really good at cleaning up unused modules with hook_update_N.

praveen_91’s picture

yes i agree with @humansky

dscoop’s picture

Does anyone know if these issues gets fixed in 7.51? After update to 7.50 I also get the same error. I also experience that some of my old custom themes doesnt work now.

Jon Nunan’s picture

I don't think adding missing_module is the answer here.

I did some poking around and it seems to be a problem with how the 'apps' module generates its apps manifest.
In particular this line (apps.manifest.inc:527):

    if (!isset($info[$app['machine_name']])) {
       $info[$app['machine_name']] = ($i = module_invoke($app['machine_name'], 'apps_app_info')) ? $i : array();
       $set_cache = TRUE;
    }

The module_invoke is looking for the modules from the app server that aren't present. In pre 7.50 world the $info would just be set to an empty array, but now using module_invoke like that throws an error as Drupal attempts to load a file that isn't there. I'll keep looking but I think the fix will be for the app module.

Edit: added a patch here: https://www.drupal.org/node/2753413#comment-11655937

dsnopek’s picture

Thanks, your apps patch looks good! If you can make a patch to panopoly_core.make that adds that patch to panopoly I'll kick off a test build. :-) Otherwise, I'll get around to setting that up myself when I have time.

Jon Nunan’s picture

I forked and tried it myself, unfortunately it fails. I think there is more to do in the apps patch but haven't had a chance to debug yet.

dsnopek’s picture

delacosta456’s picture

hi
i dowloaded the dev version of Panopoly and have seen that the latest version of Drupal in , is 7.44 .
Now the module interface is keeping notifying me about security release and that i shoukd manually update to 7.52.

I would like to know if i should wait or update

thansks

dsnopek’s picture

Title: Update to Drupal 7.50 » Fix tests and 'drush' installation with Drupal 7.50 and greater

Since Drupal 7.52 is a security update, I'm going to push this forward (in #2828241: Upgrade to Drupal 7.52) even though it breaks the tests and installation via Drush. Re-working this issue to be about fixing those issues, since the upgrade is going forward anyway.

dsnopek’s picture

Issue summary: View changes

Replaced issue summary with info from comment #5

dsnopek’s picture

Status: Needs work » Needs review
FileSize
429 bytes

Here's a new patch to test the apps patch

dsnopek’s picture

FileSize
427 bytes

Gah, stupid type-o

dsnopek’s picture

Status: Needs review » Needs work

Hrm. The patch reduces the number of errors down to just 1:

The following module is missing from the file system: panopoly_demo. [error]
For information about how to fix this, see the documentation page. in
_drupal_trigger_error_with_delayed_logging() (line 1128 of
/home/travis/build/panopoly/drupal-7/drupal/includes/bootstrap.inc).
Updates downloaded successfully.                                     [status]
WD php: User warning: The following module is missing from the file  [warning]
system: panopoly_demo. For information about how to fix this, see the
documentation page. in _drupal_trigger_error_with_delayed_logging()
(line 1128 of
/home/travis/build/panopoly/drupal-7/drupal/includes/bootstrap.inc).

But we're still getting the error for panopoly_demo. Maybe the difference is that we actually attempt to enable it during installation?

delacosta456’s picture

hi dsnopek and all guys
thanks for your hard work and keeping us update.

Still on Panopolly with D7 7.44.(offline in dev off course) .. we will be expecting the stable upgrade .

thanks

dsnopek’s picture

dsnopek’s picture

Here's the most important part of a stack trace of this issue:

#0  _drupal_get_filename_fallback(module, panopoly_demo, 1, ) called at [/var/www/panopoly-7.x/includes/bootstrap.inc:891]
#1  drupal_get_filename(module, panopoly_demo) called at [/var/www/panopoly-7.x/includes/common.inc:2882]
#2  drupal_get_path(module, panopoly_demo) called at [/var/www/panopoly-7.x/includes/module.inc:339]
#3  module_load_include(inc, panopoly_demo, panopoly_demo.search_api) called at [/var/www/panopoly-7.x/includes/module.inc:688]
#4  module_hook(panopoly_demo, search_api_item_type_info) called at [/var/www/panopoly-7.x/profiles/panopoly/modules/contrib/search_api/search_api.module:791]
#5  search_api_system_info_alter(Array ([name] => Panopoly Demo,[description] => Demo functionality and content to help show the power of Panopoly,[core] => 7.x,[package] => Panopoly Demos,[project] => panopoly_demo,[dependencies] => Array ([0] => features,[1] => migrate,[2] => page_manager,[3] => panopoly_pages,[4] => views,[5] => views_content),[stylesheets] => Array ([all] => Array ([panopoly_demo.css] => sites/all/modules/panopoly_demo/panopoly_demo.css)),[features] => Array ([ctools] => Array ([0] => page_manager:pages_default:1,[1] => views:views_default:3.0),[features_api] => Array ([0] => api:2),[page_manager_pages] => Array ([0] => panopoly_demo_panel),[views_view] => Array ([0] => panopoly_demo)),[files] => Array ([0] => import/panopoly_demo.node.inc,[1] => import/panopoly_demo.menu.inc),[version] => 7.x-1.41+0-dev,[datestamp] => 1479408721,[mtime] => 1482250581,[php] => 5.2.4,[bootstrap] => 0), stdClass Object ([uri] => sites/all/modules/panopoly_demo/panopoly_demo.module,[filename] => sites/all/modules/panopoly_demo/panopoly_demo.module,[name] => panopoly_demo,[info] => Array ([name] => Panopoly Demo,[description] => Demo functionality and content to help show the power of Panopoly,[core] => 7.x,[package] => Panopoly Demos,[project] => panopoly_demo,[dependencies] => Array ([0] => features,[1] => migrate,[2] => page_manager,[3] => panopoly_pages,[4] => views,[5] => views_content),[stylesheets] => Array ([all] => Array ([panopoly_demo.css] => sites/all/modules/panopoly_demo/panopoly_demo.css)),[features] => Array ([ctools] => Array ([0] => page_manager:pages_default:1,[1] => views:views_default:3.0),[features_api] => Array ([0] => api:2),[page_manager_pages] => Array ([0] => panopoly_demo_panel),[views_view] => Array ([0] => panopoly_demo)),[files] => Array ([0] => import/panopoly_demo.node.inc,[1] => import/panopoly_demo.menu.inc),[version] => 7.x-1.41+0-dev,[datestamp] => 1479408721,[mtime] => 1482250581,[php] => 5.2.4,[bootstrap] => 0)), module, ) called at [/var/www/panopoly-7.x/includes/module.inc:1163]
#6  drupal_alter(system_info, Array ([name] => Panopoly Demo,[description] => Demo functionality and content to help show the power of Panopoly,[core] => 7.x,[package] => Panopoly Demos,[project] => panopoly_demo,[dependencies] => Array ([0] => features,[1] => migrate,[2] => page_manager,[3] => panopoly_pages,[4] => views,[5] => views_content),[stylesheets] => Array ([all] => Array ([panopoly_demo.css] => sites/all/modules/panopoly_demo/panopoly_demo.css)),[features] => Array ([ctools] => Array ([0] => page_manager:pages_default:1,[1] => views:views_default:3.0),[features_api] => Array ([0] => api:2),[page_manager_pages] => Array ([0] => panopoly_demo_panel),[views_view] => Array ([0] => panopoly_demo)),[files] => Array ([0] => import/panopoly_demo.node.inc,[1] => import/panopoly_demo.menu.inc),[version] => 7.x-1.41+0-dev,[datestamp] => 1479408721,[mtime] => 1482250581,[php] => 5.2.4,[bootstrap] => 0), stdClass Object ([uri] => sites/all/modules/panopoly_demo/panopoly_demo.module,[filename] => sites/all/modules/panopoly_demo/panopoly_demo.module,[name] => panopoly_demo,[info] => Array ([name] => Panopoly Demo,[description] => Demo functionality and content to help show the power of Panopoly,[core] => 7.x,[package] => Panopoly Demos,[project] => panopoly_demo,[dependencies] => Array ([0] => features,[1] => migrate,[2] => page_manager,[3] => panopoly_pages,[4] => views,[5] => views_content),[stylesheets] => Array ([all] => Array ([panopoly_demo.css] => sites/all/modules/panopoly_demo/panopoly_demo.css)),[features] => Array ([ctools] => Array ([0] => page_manager:pages_default:1,[1] => views:views_default:3.0),[features_api] => Array ([0] => api:2),[page_manager_pages] => Array ([0] => panopoly_demo_panel),[views_view] => Array ([0] => panopoly_demo)),[files] => Array ([0] => import/panopoly_demo.node.inc,[1] => import/panopoly_demo.menu.inc),[version] => 7.x-1.41+0-dev,[datestamp] => 1479408721,[mtime] => 1482250581,[php] => 5.2.4,[bootstrap] => 0)), module) called at [/var/www/panopoly-7.x/modules/system/system.module:2436]
#7  _system_rebuild_module_data() called at [/var/www/panopoly-7.x/modules/system/system.module:2464]
#8  system_rebuild_module_data() called at [/var/www/panopoly-7.x/sites/all/modules/contrib/apps/apps.manifest.inc:19]
#9  apps_server_local(Array ([title] => Panopoly,[description] => Apps for Panopoly,[manifest] => http://apps.getpantheon.com/panopoly-dev,[name] => panopoly)) called at [/var/www/panopoly-7.x/sites/all/modules/contrib/apps/apps.manifest.inc:216]
#10 apps_request_manifest(Array ([title] => Panopoly,[description] => Apps for Panopoly,[manifest] => http://apps.getpantheon.com/panopoly-dev,[name] => panopoly)) called at [/var/www/panopoly-7.x/sites/all/modules/contrib/apps/apps.manifest.inc:420]
#11 apps_manifest(Array ([title] => Panopoly,[description] => Apps for Panopoly,[manifest] => http://apps.getpantheon.com/panopoly-dev,[name] => panopoly)) called at [/var/www/panopoly-7.x/sites/all/modules/contrib/apps/apps.manifest.inc:124]
#12 apps_apps(panopoly, Array ([installed] => 1), 1) called at [/var/www/panopoly-7.x/sites/all/modules/contrib/apps/apps.profile.inc:399]
#13 apps_profile_enable_app_modules(Array ([parameters] => Array ([profile] => panopoly,[locale] => en,[q] => ),[forms] => Array ([install_settings_form] => Array ([driver] => mysql,[mysql] => Array ([database] => panopoly-7.x,[username] => panopoly-7.x,[password] => 9RiDj13CSDqNxA,[host] => mysql,[port] => ,[driver] => mysql,[prefix] => ),[op] => Save and continue),[install_configure_form] => Array ([site_name] => Panopoly,[site_mail] => admin@example.com,[account] => Array ([name] => admin,[mail] => admin@example.com,[pass] => Array ([pass1] => admin,[pass2] => admin)),[update_status_module] => Array ([1] => 1,[2] => 1),[clean_url] => 1,[op] => Save and continue)),[interactive] => ,[active_task] => apps_profile_enable_app_modules_panopoly,[completed_task] => ,[database_tables_exist] => 1,[installation_finished] => ,[locales] => Array (),[parameters_changed] => ,[profile_info] => Array ([name] => Panopoly,[distribution_name] => Panopoly,[description] => A magical framework for building Drupal products based on the Panels module,[core] => 7.x,[exclusive] => 1,[dependencies] => Array ([0] => filter,[1] => system,[2] => node,[3] => user,[4] => field_sql_storage,[5] => text,[6] => field,[7] => block,[8] => menu,[9] => image,[10] => list,[11] => number,[12] => options,[13] => path,[14] => taxonomy,[15] => search,[16] => shortcut,[17] => field_ui,[18] => file,[19] => dblog,[20] => update,[21] => panopoly_core,[22] => panopoly_images,[23] => panopoly_theme,[24] => panopoly_magic,[25] => panopoly_widgets,[26] => panopoly_admin,[27] => panopoly_users,[28] => panopoly_pages,[29] => panopoly_search,[30] => panopoly_wysiwyg,[31] => navbar,[32] => breakpoints,[33] => backports,[34] => simplified_menu_admin,[35] => save_draft,[36] => module_filter,[37] => date_popup_authored,[38] => views_ui,[39] => devel,[40] => distro_update,[41] => uuid,[42] => apps,[55] => ctools,[56] => date,[57] => date_api,[58] => date_popup,[59] => date_views,[60] => defaultconfig,[61] => entity,[62] => entityreference,[63] => features,[64] => field_group,[66] => fieldable_panels_panes,[68] => jquery_update,[69] => libraries,[72] => page_manager,[73] => panelizer,[74] => panels,[75] => panels_breadcrumbs,[76] => panels_ipe,[77] => pathauto,[78] => pm_existing_pages,[79] => strongarm,[80] => token,[81] => transliteration,[82] => views,[83] => views_autocomplete_filters,[84] => views_content,[88] => file_entity,[90] => manualcrop,[91] => media,[94] => radix_layouts,[96] => fape,[108] => link,[111] => media_vimeo,[112] => media_youtube,[113] => menu_block,[117] => simple_gmap,[118] => tablefield,[123] => admin_views,[131] => views_bulk_operations,[141] => user_picture_field,[155] => facetapi,[158] => search_api,[159] => search_api_db,[160] => search_api_facetapi,[161] => search_api_solr,[162] => search_api_views,[166] => caption_filter,[171] => image_resize_filter,[172] => linkit,[174] => media_internet,[176] => media_wysiwyg,[179] => wysiwyg,[180] => wysiwyg_filter),[version] => ,[hidden] => ,[php] => 5.2.4),[profiles] => Array ([testing] => stdClass Object ([uri] => ./profiles/testing/testing.profile,[filename] => testing.profile,[name] => testing),[minimal] => stdClass Object ([uri] => ./profiles/minimal/minimal.profile,[filename] => minimal.profile,[name] => minimal),[panopoly] => stdClass Object ([uri] => ./profiles/panopoly/panopoly.profile,[filename] => panopoly.profile,[name] => panopoly),[standard] => stdClass Object ([uri] => ./profiles/standard/standard.profile,[filename] => standard.profile,[name] => standard)),[server] => Array (),[settings_verified] => 1,[stop_page_request] => ,[task_not_complete] => ,[tasks_performed] => Array ([0] => install_select_profile,[1] => install_select_locale,[2] => install_load_profile,[3] => install_verify_requirements,[4] => install_system_module,[5] => install_bootstrap_full,[6] => install_profile_modules,[7] => install_configure_form,[8] => apps_install_verify,[9] => apps_profile_apps_select_form_panopoly,[10] => apps_profile_download_app_modules_panopoly,[11] => apps_profile_install_app_modules_panopoly))) called at [/var/www/panopoly-7.x/includes/install.core.inc:425]

What's going on is a circular dependency that involves search_api.

'apps' is calling system_rebuild_module_data() which will eventually write the new information about 'panopoly_demo' to the 'system' table. However, before it gets to that point, hook_system_info_alter() is called, and search_api_system_info_alter() tries to discover if the module implements hook_search_api_item_type_info() which leads to drupal_get_filename('module', 'panopoly_demo') -- and that's what's triggering the error, because there is no information about 'panopoly_demo' on the 'system' table. After system_rebuild_module_data() completes, the 'system' table will be updated, so subsequent calls will work, but the error is registered anyway, breaking drush.

I'm trying to determine if what 'search_api' is doing is actually valid, and it's something 'apps' needs to account for, or if we need to update 'search_api' to only check for the hook if the module is enabled or something like that.

dsnopek’s picture

Here's a patch that modifies search_api - gonna try it on Travis

EDIT: Here's the Travis build: https://travis-ci.org/panopoly/panopoly/jobs/185555341

dsnopek’s picture

Status: Needs review » Reviewed & tested by the community

Woohoo! Travis is passing :-) Committed! Thanks, Everyone!

dsnopek’s picture

Status: Reviewed & tested by the community » Fixed
delacosta456’s picture

hi dsnopek

Thanks for the hard work

I just successfully upgrade from Panopoly dev (with Drupal 7.44) to Panopoly 1.41 (Drupal 7.52).

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.