Hi, I'm trying to run an upgrade from a8 to a11 .. I'm following through the instructions in upgrade.txt.

The backend upgrade completed successfully. When I try to run the hostmaster-migrate command, I'm presented with the following error:

aegir@***:/var/aegir/hostmaster-0.4-alpha8#/var/aegir/drush/drush hostmaster-migrate aegir.***.com /var/aegir/hostmaster-0.4-alpha11
The external command could not be executed due to an application error.                                                                                                                                                                          [error]
could not find driver                                                                                                                                                                                                                            [error]
Drush command could not be completed.                                                                                                                                                                                                            [error]
Output from failed command :                                                                                                                                                                                                                     [error]

Fatal error: Call to a member function quote() on a non-object in /var/aegir/.drush/provision/db/db.drush.inc on line 311

Could not find a Drupal settings.php file at ./sites/default/settings.php.                                                                                                                                                                       [error]
The drush command '@hostmaster provision-verify' could not be found.                                                                                                                                                                             [error]
Output from failed command :                                                                                                                                                                                                                     [error]

Output from failed command :                                                                                                                                                                                                                     [error]
Any advice, much appreciated.

Thx, Luke

CommentFileSizeAuthor
#1 hostmaster-migrate_output.txt26.56 KBlukus

Comments

lukus’s picture

StatusFileSize
new26.56 KB

Here's output with debug enabled:

(attached as a file, as it's quite long)

BTW - I'm currently running alpha8 with Omega8cc's provision script to allow me to make use of nginx. As provision has now been updated, I'm assuming this shouldn't be a problem

lukus’s picture

I've also tried to install from scratch and I received the same error:

Fatal error: Call to a member function quote() on a non-object in /var/aegir/.drush/provision/db/db.drush.inc on line 311
lukus’s picture

Category: support » bug

I think this might actually be a bug report. If I'm wrong - please update accordingly.

paoloteo’s picture

I'm having he same issue.
I posted here: http://drupal.org/node/885334 the details. I opened another thread because I thought it was due to a new install but now looks like it's the same issue we have on upgrade.

lukus’s picture

Priority: Normal » Critical
<lukus> I'm trying to resolve this issue: http://drupal.org/node/883688
<Vertice> lukus: the quote error is related to db stuff
<lukus> Vertice, I'm confused though, because I've been running aegir successfully up to this point - and I've followed all the instructions in the update.txt
<Vertice> lukus: the db requirements for alpha 9 + are higher
<Vertice> you need to have it running and listening on public ip's
<Vertice> and your hostname needs to be set up to connect to that public ip
<Vertice> and you need to re-do all the aegir_root grants using that ip and hostname
<Vertice> BEFORE you even do the upgrade
<lukus> Vertice, okay - thanks - is there anywhere I can link to re. the requirements for version 9+, to close the issue?
<Vertice> it's in upgrade.txt
<Vertice> at the end
<lukus> hmm. okay, I'll re-read it .. thanks
<Vertice> do you have a line that says 'mysql failed to fail' smewherre?
<lukus> not that I've noticed
<lukus> no I don't
<lukus> http://drupal.org/files/issues/hostmaster-migrate_output.txt is my output
<Vertice> try doing :
<Vertice> 'mysql -uaegir_root -p -h`uname -n`'

I've just tried to upgrade again. I can connect to the database in the way you've suggested, but I'm still receiving exactly the same error.

I've made sure I'm using the publicly accessible IP, the local IP has been commented out in my.cnf and I've updated my grants as described in the update.txt.

I'm receiving the same error - any advice appreciated.

adrian’s picture

Category: bug » support
Priority: Critical » Normal

this is a support request.

there is no such thing as a critical support request.

lukus’s picture

Sorry, I wasn't sure how to mark this issue.

I've followed the instructions in update.txt carefully - so I wasn't sure whether this would be classified as a bug or support request. I marked the issue as critical, because it's stopping me from making use of any Aegir functionality.

lukus’s picture

Okay. I've found the source of my error.

Later versions of Aegir make use of PHP for database access. If you are compiling PHP from source, you need to make sure that PDO support (and a mysql PDO driver are installed).

After ensuring that this was the case, the error disappeared.

whatdoesitwant’s picture

I know that pdo support has been shifted into the core apt packages with PHP5.3, as used by Ubuntu Lucid 10.04. Pdo is no longer provided through pecl. The necessary packages are supposedly installed by tasksel lamp. Nonetheless i get the error message. Anyone know the specific necessary packages for pdo-support? php5-mysql and ...?

socialnicheguru’s picture

just found how to install pdo here:

http://www.theatons.com/ubuntu-install-php5-mysql-apache2-ssl-pdo-pdo_my...

hope it helps

socialnicheguru’s picture

Help this is killing me.

I run as aegir:
$ $DRUSH hostmaster-migrate $AEGIR_DOMAIN $DRUPAL_DIR

I get these errors:
Unable to create new databases. [error]
An error occurred at function : [error]
drush_provision_verify
Drush command could not be completed.[error]
An error occurred at function : [error]
drush_provision_hostmaster_migrate_validate

I did the following as the update doc said

Mysql grants :
GRANT ALL ON *.* to 'aegir_root'@$AEGIR_HOST IDENTIFIED BY 'xxxx' WITH GRANT OPTION;
GRANT ALL ON *.* to 'aegir_root'@$AEGIR_IP IDENTIFIED BY 'xxxx' WITH GRANT OPTION;

I disabled bind in database my.cnf file

I can login using this command:
mysql -uaegir_root -p -h`uname -n`

These commands return what they should have without error: AEGIR_HOST=`uname -n` which is ubuntu
resolveip $AEGIR_HOST is 127.0.0.1

Is this right?

EDIT:
I received this error for aegir beta 11 and aegir beta 12

EDIT 2: I did more testing to see what was up. The hostmaster install script was returning "site_test" instead of the aegir_host. I am hoping this will help others find the cause
http://drupal.org/node/895806#comment-3381952

whatdoesitwant’s picture

Same here. If you run into trouble, the most important things to check during the upgrade are the values of aegir_root, AEGIR_HOST and AEGIR_IP. AEGIR_HOST should be your servername, AEGIR_IP should be your server's public ip.
Checking and setting these values is decribed in install.txt under DNS Configuration and Database configuration.

EDIT: (I assume that you are running on Ubuntu 9.10 or 10.04)

You've checked that you are running php 5.2:
php -v
5.3 is not supported by aegir and if you run 5.3 you need to at least run 5.3.3, which isn't part of 10.04's default installation.

You've gone through upgrade.txt, reset the mysql grants, troubleshooted all you can think of. Now you find yourself in doubt about your aegir_root pasword.
Check if your aegir_root password is what you expect.
Elevate yourself to root.
sudo -s
Try to log into mysql with your password for aegir_root. It may either be a generated string that aegir provided you with during installation, your aegir installation's user1 password or something else that you set yourself for security.
mysql -uaegir_root -p -h`uname -n`
This should result in:
Welcome to the MySQL monitor.
Leave mysql.
exit

Also check the following as the mysql root user:
Elevate yourself to root.
sudo -s
Log into mysql as the mysql root user.
mysql -uroot -p mysql
Run:
SELECT * FROM user;
The list that is returned should contain values for:

  1. AEGIR_IP - root
  2. AEGIR_HOST - root
  3. localhost - root
  4. localhost - a system user, ie debian-sys-maint
  5. AEGIR_IP - aegir_root
  6. AEGIR_HOST - aegir_root
  7. localhost - aegir_root
  8. AEGIR_HOST - dbusername for each domain, standard derived from the domain name

(Here i found that in my case I had set the AEGIR_IP and AEGIR_HOST from a completely different virtual machine (wtf?!) I maintain a couple of these, should one crash. I had created specified upgrade files for the machines. And I probably copied and pasted from the wrong source file during the upgrade. That was just clumsy. Never trust yourself. It is very unlikely that this will happen to you but i thought to mention it anyway.)

PS
Here's a link for resetting the mysql password for aegir_root on AEGIR_HOST. You need to do this with sudo rights or as root and as the root user for mysql.

Don't forget to flush the privileges and redo the grants from upgrade.txt.

Anonymous’s picture

Status: Active » Closed (works as designed)

All this uname -n, FQDN stuff is Linux knowledge, which power users (Aegir users) should have, and even then, we document the hell out of this stuff.

Closing old support requests too.