I spent all day trying to get a 6.x-2 client to work with blade1.drupalfr.org. I used Ubuntu 8.04 Hardy as the OS. I tried at first to get it working with php5-xcache. It did several tests with successful RPC calls where it does both a "Test results successful sent" and "Test request successfull, received", until it tried sending after review.resetStatics(). Then it would decide to report on the client "When requesting next test, server responded: Invalid server". The master side reported "reason: Failed to install Drupal on @environment."
I did apt-get remove php5-xcache and ran it again, but the client had the debug checkbox checked. That resulted in the client and master both resporting success and enabled my client, but it turned out the drupal_checkout database's simpletest table only had 198, which meant it didn't do most of the testing.
After I disabled the debug checkbox on the client and ran without cache, it took about 2 hours to run and reported at the very end for final testing on the master side "reason: Failed on @environment, with: @pass pass, @fail fail, and @exception exception" and on the client I got "When requesting next test, server responded: Invalid server" again. There were about 11500 rows in the simpletest table.
Then I compiled APC, and ran it with apc.shm_size = 48. Really early on in the testing, I got "When requesting next test, server responded: Invalid server" on the client side again. In fact, the invalid key seems to be the only error I get on the client side no matter how I mod the configuration, it just comes up in different places. Perhaps we can improve the error message so it outputs the key that it's sending that apparently doesn't match? I'd sure like to know why exactly it's mis-matching, like maybe if there is accidental padding on the RPC string or something that gets parsed as part of the key incorrectly.
The following was how I configured the server, minus the APC and xcache parts:
This is mostly a cleaned up recounting of my .bash_history files.
As root, execute the following on commandline for a fresh install of Ubuntu 8.04 Hardy:
apt-get update
apt-get upgrade
apt-get install build-essential mysql-server apache2 apache2-threaded-dev php5 php5-cgi php5-cli php5-gd php5-common php-pear php5-curl php5-mysql cvs curl php5-curl php5-suhosin php5-sqlite php5-mcrypt php5-pgsql php5-dev libapache2-mod-php5 gawk patch sqlite
a2enmod rewrite
a2enmod expires
/etc/init.d/apache2 force-reload
cd /var/www
vi phpinfo.php
cd /etc/php5/apache2/
vi php.ini
# change memory_limit = 256 and short_open_tag Off
cd ../cli
vi php.ini
# change memory_limit = 256 and short_open_tag Off
/etc/init.d/apache2 force-reload
adduser drupaltesting
cd /etc/apache2/sites-available/
cp default drupaltesting.deekayen.net
vi drupaltesting.deekayen.net
NameVirtualHost drupaltesting.deekayen.net <VirtualHost *:80> ServerAdmin local@localhost ServerName drupaltesting.deekayen.net DirectoryIndex index.php DocumentRoot /home/drupaltesting/web/public <Directory /> Options FollowSymLinks AllowOverride All </Directory> <Directory /home/drupaltesting/web/public> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> ErrorLog /var/log/apache2/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/access.log combined ServerSignature On Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost>
a2ensite drupaltesting.deekayen.net
/etc/init.d/apache2 force-reload
vi default
NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin webmaster@localhost ServerName slice.deekayen.net DocumentRoot /var/www/ <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/access.log combined ServerSignature On Alias /doc/ "/usr/share/doc/" <Directory "/usr/share/doc/"> Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 </Directory> </VirtualHost>
/etc/init.d/apache2 force-reload
mysqladmin -u root -p create drupal
mysqladmin -u root -p create drupal_checkout
crontab -e
*/10 * * * * /usr/bin/wget -O - -q -t 1 http://drupaltesting.deekayen.net/cron.php
Now as the drupaltesting user, do:
mkdir web
cd web
cvs -d :pserver:anonymous:anonymous@cvs.drupal.org:/cvs/drupal-contrib login
cvs -z6 -d :pserver:anonymous:anonymous@cvs.drupal.org:/cvs/drupal checkout -r DRUPAL-6-12 drupal
mv drupal public
cd public
cd sites/all/modules
cvs -z6 -d:pserver:anonymous:anonymous@cvs.drupal.org:/cvs/drupal-contrib checkout -r DRUPAL-6--1 -d cvs_deploy contributions/modules/cvs_deploy
cd ../..
mkdir drupaltesting.deekayen.net
cp default/default.settings.php drupaltesting.deekayen.net/settings.php
cd drupaltesting.deekayen.net/
vi settings.php
$db_url = array();
$db_url['default'] = 'mysqli://username:password@localhost/drupal';
$db_url['pifr_checkout'] = 'mysqli://username:password@localhost/drupal_checkout';
mkdir files
cd files
mkdir checkout
chmod 777 files
cd files
chmod 777 checkout
cd ../../../
ln -s ./sites/drupaltesting.deekayen.net/files/checkout .
cd sites/drupaltesting.deekayen.net/modules/
cvs -z6 -d:pserver:anonymous:anonymous@cvs.drupal.org:/cvs/drupal-contrib checkout -d project_issue_file_review contributions/modules/project_issue_file_review
exit
On the client, enable CVS Deploy, PIFR, and PIFR Client modules. Then get an account on the master server. Add a client of type Test on the master and copy the key to the client at admin/pifr/configuration. The client defaults are OK. Make sure all the command line tools have output at admin/pifr/client on the client.
| Comment | File | Size | Author |
|---|---|---|---|
| #7 | 502752_add_watchdog_to_server.patch | 1.74 KB | deekayen |
| #5 | 502752_add_watchdog_debug.patch | 1.77 KB | deekayen |
Comments
Comment #1
deekayen commentedI tried with the latest SVN checkout of eaccelerator. It would get through "Detect invalid file URL.", then the client would request the next test and not do anything with it. I decided to downgrade because phpmyadmin would load the login screen without its normal CSS and then the next page would WSOD, which I knew was not right.
When downgrading to 0.9.5.3, I got all the way to "Detect test run failure. [reason: Failed to install Drupal on @environment.]" on the master with the client reporting "When requesting next test, server responded: Invalid server". I'm going to add some debugging locally and see if I can figure out what the invalid key messages are being passed around.
Comment #2
philipnet commentedTo 'automatically' generate the phpinfo.php file:
Also, these lines will automatically amend the php.ini files:
Instead of
cd ../..it should be
cd sitesWhilst
doesn't quite make sense, I think it can be simplified to
You also need a
mkdir moduleswhilst at this point.Cheers.
Phil L.
Comment #3
philipnet commentedAh,
Also the drupaltesting.deekayen.net Apache file should be in sites-enabled and you need to delete/remove the 000-default file from the sites-enabled folder (it can just be moved to the sites-available folder)
Phil L.
Comment #4
deekayen commented@philipnet: there are many other errors in what I pasted in the original issue comment. I've been updating it as I reproduced another client at http://deekayen.net/draft-how-create-pifr-6x2-client
Comment #5
deekayen commentedAs part of debugging "When requesting next test, server responded: Invalid server" when I had a valid key, I added some watchdog calls for debugging. They also seem to have stopped the invalid key errors. I don't know why, but my theory is by calling up the constant through the watchdog call before the xmlrpc call, it somehow refreshes it in memory so the xmlrpc call will be sure to have the right value. It's stupid, I know, but that's the only thing I can guess.
Anyway, I figure this additional message logging might at least be helpful for debugging that error message, whether they key is valid or not.
Comment #6
deekayen commentedI still would like to have the patch's features added, but it didn't resolve the problem of receiving improper invalid key responses from the master. Once again, I just received "When requesting next test, server responded: Invalid server" after finishing the "Detect failing test" stage. The master side reported [reason: Run tests on @environment: @reason.] My patched version of the client xmlrpc file reported the correct client key in the debug message, however the server reports "Failed confirmation tests.". That usually only happened after doing tests, but now all the regular cron jobs to request the next test are reporting invalid server as well. I'll be patching http://drupaltesting.deekayen.net/ to log the xmlrpc incoming calls for keys to see if I can resolve this in a better way.
Comment #7
deekayen commentedI added these additional watchdog calls to http://drupaltesting.deekayen.net/
Comment #8
deekayen commentedNevermind on the previous patches, I prefer #504936: Do not use pifr_debug on client to use the built-in debugging. The problem I was experiencing is that my client was so slow the cron would expire the testing run before it finished. There was no error showing something going wrong with the tests themselves - I just had to actually take note that something earlier in the logs caused the client to report back a failure (because of the timeout), and that was what caused the next request to fail.
Comment #9
deekayen commentedI think I'm done using this as a notepad.