Probably due to #325169: Move error/exception handler higher up in the bootstrap process.

webchicks-macbook-pro:core webchick$ drush site-install -y -d
Drush bootstrap phase : _drush_bootstrap_drupal_root() [0.13 sec, 3.37 MB]                                            [bootstrap]
Initialized Drupal 7.0-dev root directory at /Users/webchick/Sites/core [0.14 sec, 4.37 MB]                              [notice]
Found command: site-install (commandfile=core) [0.17 sec, 4.36 MB]                                                    [bootstrap]
Initializing drush commandfile: drush_make [0.17 sec, 4.37 MB]                                                        [bootstrap]
Initializing drush commandfile: drush_make_d_o [0.17 sec, 4.37 MB]                                                    [bootstrap]
Initializing drush commandfile: provision_apache [0.17 sec, 4.37 MB]                                                  [bootstrap]
Initializing drush commandfile: provision_drupal [0.17 sec, 4.37 MB]                                                  [bootstrap]
Initializing drush commandfile: provision_mysql [0.17 sec, 4.37 MB]                                                   [bootstrap]
Drush bootstrap phase : _drush_bootstrap_drupal_site() [0.18 sec, 4.39 MB]                                            [bootstrap]
Initialized Drupal site default at sites/default [0.2 sec, 4.49 MB]                                                      [notice]
Drush bootstrap phase : _drush_bootstrap_drupal_configuration() [0.2 sec, 4.49 MB]                                    [bootstrap]
You are about to DROP your 'core' database and then CREATE a new one. Do you want to continue? (y/n): y
Sites directory sites/default already exists - proceeding. [0.21 sec, 4.5 MB]                                            [notice]
Calling system(mysql  -hlocalhost -uroot -proot information_schema -e  "DROP DATABASE IF EXISTS core")
Calling system(mysql  -hlocalhost -uroot -proot information_schema -e "CREATE DATABASE core")

Fatal error: Call to undefined function module_implements() in /Users/webchick/Sites/core/includes/bootstrap.inc on line 1331

Call Stack:
    0.0010     102320   1. {main}() /Users/webchick/drush/drush.php:0
    0.0303    1171416   2. drush_main() /Users/webchick/drush/drush.php:41
    0.1735    4576132   3. drush_dispatch() /Users/webchick/drush/drush.php:91
    0.1739    4578456   4. call_user_func_array() /Users/webchick/drush/includes/drush.inc:51
    0.1739    4578680   5. drush_command() /Users/webchick/drush/includes/drush.inc:0
    0.1755    4584792   6. call_user_func_array() /Users/webchick/drush/includes/command.inc:378
    0.1755    4584920   7. drush_invoke() /Users/webchick/drush/includes/command.inc:0
    0.2391    4710324   8. call_user_func_array() /Users/webchick/drush/includes/command.inc:327
    0.2391    4710556   9. drush_core_site_install() /Users/webchick/drush/includes/command.inc:0
    0.2450    5092152  10. require_once('/Users/webchick/Sites/core/install.php') /Users/webchick/drush/commands/core/site_install.drush.inc:78
    0.2451    5092604  11. define() /Users/webchick/Sites/core/install.php:7
    0.2451    5093160  12. _drupal_error_handler() /Users/webchick/Sites/core/includes/bootstrap.inc:0
    0.2459    5147204  13. _drupal_error_handler_real() /Users/webchick/Sites/core/includes/bootstrap.inc:1583
    0.2462    5155700  14. _drupal_log_error() /Users/webchick/Sites/core/includes/errors.inc:81
    0.2462    5157492  15. watchdog() /Users/webchick/Sites/core/includes/errors.inc:167

Drush command could not be completed. [0.26 sec, 4.92 MB]                                                             [error]

Comments

webchick’s picture

Priority: Normal » Critical
moshe weitzman’s picture

Title: drush site-install doesn't work anymore » watchdog - Fatal error: Call to undefined function module_implements()

drush is just exposing a core bug. look where the error occurs: bootstrap.inc on line 1331. you can't call module_implements() before module.inc is loaded. not sure what the fix is. closing this in favor of #325169: Move error/exception handler higher up in the bootstrap process

moshe weitzman’s picture

Actually, I'll leave it open since there is a notice to be fixed in drush, at that define() statement.

moshe weitzman’s picture

Priority: Critical » Normal

the problem is that sometimes we bypass install.php and index.php and sometime we don't (e.g. site-install). when we do, it is mandatory that we define DRUPAL_ROOT constant. When we don't, is it mandatory that we don't define it.

webchick’s picture

Hm. That's strange. My understanding was that DRUPAL_ROOT was always defined at the top of any 'standalone' file for this very reason.

I guess you could do a:

if (!defined(DRUPAL_ROOT)) {
  define('DRUPAL_ROOT' ...);
}

But... ick. :\

moshe weitzman’s picture

Yes, that is true. I have to set DRUPAL_ROOT before core sets hers so I can't use that is_defined trick.

I think that site-install and site-upgrade might be the only problems. Both would be fixed we can finally push #524728: Refactor install.php to allow Drupal to be installed from the command line across. I just nudged the bot to confirm its RTBC status.

moshe weitzman’s picture

Status: Active » Fixed

Status: Fixed » Closed (fixed)

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

robin van emden’s picture

Status: Closed (fixed) » Active

Still seems to be a problem here.

DRUPAL_ROOT and MAINTENANCE_MODE are indeed defined install.php, as can be followed from http://drupal.org/node/524728

/**
 * Root directory of Drupal installation.
 */
define('DRUPAL_ROOT', getcwd());

/**
 * Global flag to indicate that site is in installation mode.
 */
define('MAINTENANCE_MODE', 'install');

But later drush defines at drush/includes/environment.inc:523:

define('DRUPAL_ROOT', $drupal_root);

and drush/commands/core/site_install.drush.inc:78:

define('MAINTENANCE_MODE', 'install');

And in provision .drush/provision/platform/drupal/install_7.inc:12:

define('MAINTENANCE_MODE', 'install');

These defines clash, which makes a Drupal 7 Aegir install impossible at the moment (all head, drush, provision, d7, etc)

See also: http://drupal.org/node/447972#comment-2686924

moshe weitzman’s picture

Status: Active » Fixed

no command that ships with drush touches install.php. This an Aegir problem. Tell them to use the new install.inc directly.

robin van emden’s picture

ok, thanks for the info!

Status: Fixed » Closed (fixed)

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