ricardoamaro/drupalci_testbot

Drupal 8 doesn't like this flavor of PHP 5.6 (multibyte string output conversion)

Closed this issue · 4 comments

  • With DCI_INSTALLER="none" (the default): all tests fail
  • With `DCI_INSTALLER="drush":
testbot@lubuntu:~/drupalci_testbot$ sudo DCI_DBTYPE='mysql' DCI_DBVER='5.5' DCI_PHPVERSION='5.6' DCI_TESTGROUPS='--all' DCI_DRUPALBRANCH='8.0.x' DCI_CONCURRENCY='16' DCI_INSTALLER="drush" ./containers/web/run.sh
------------------------------------------------------------------------------
Containers: web-5.6 and drupaltestbot-db-mysql-5.5 available
Running PHP5.6/mysql on drupalci/web-5.6 at Fri Sep 19 09:03:36 UTC 2014
------------------------------------------------------------------------------
Local Drupal repo found on /home/testbot/testbotdata/drupal/
Local Drush found on /home/testbot/testbotdata/vendor/drush/drush/drush
Cloning into '/home/testbot/testbotdata/build_2014_09_19_090336'...
done.
Already on '8.0.x'
Your branch is up-to-date with 'origin/8.0.x'.

NOTICE: $DCI_DEPENDENCIES has no modules declared...

NOTICE: $DCI_DEPENDENCIES_GIT has nothing declared...

NOTICE: $DCI_DEPENDENCIES_TGZ has nothing declared...

NOTICE: $DCI_PATCH variable has no patch to apply...

------------------------ ENVIRONMENT VARIABLES IN USE ------------------------
DCI_IDENTIFIER="build_2014_09_19_090336"
DCI_DRUPALBRANCH="8.0.x"
DCI_DRUPALVERSION="8"
DCI_UPDATEREPO="false"
DCI_REPODIR="/home/testbot/testbotdata"
DCI_DRUPALREPO="http://git.drupal.org/project/drupal.git"
DCI_DRUSHREPO="https://github.com/drush-ops/drush.git"
DCI_BUILDSDIR="/home/testbot/testbotdata"
DCI_WORKSPACE="/home/testbot/testbotdata/build_2014_09_19_090336/"
DCI_DEPENDENCIES=""
DCI_DEPENDENCIES_GIT=""
DCI_DEPENDENCIES_TGZ=""
DCI_MODULESPATH="./modules"
DCI_PATCH=""
DCI_DBUSER="drupaltestbot"
DCI_DBPASS="drupaltestbotpw"
DCI_DBTYPE="mysql"
DCI_DBVER="5.5"
DCI_DBCONTAINER="drupaltestbot-db-mysql-5.5"
DCI_DBLINK="--link=drupaltestbot-db-mysql-5.5:db"
DCI_CMD=""
DCI_INTERACTIVE=""
DCI_INSTALLER="drush"
DCI_VERBOSE="false"
DCI_PHPVERSION="5.6"
DCI_CONCURRENCY="16"
DCI_RUNSCRIPT="php ./core/scripts/run-tests.sh --php /usr/bin/php --url 'http://localhost' --color --concurrency 16  --xml '/var/workspace/results'"
DCI_TESTGROUPS="--all"
VERBO=""

------------------------ STARTING DOCKER CONTAINER ---------------------------
Operation [start]...
Starting apache2 service

Operation 8 [install] using drush... 
You are about to create a /var/www/sites/default/settings.php file and CREATE the 'build_2014_09_19_090336' database. Do you want to continue? (y/n): y
Starting Drupal installation. This takes a while. Consider using the --notify global option.                                                                                          [ok]
Unicode library: Error                                                                                                                                                                [error]

Multibyte string output conversion in PHP is active and must be disabled. Check the php.ini <em>mbstring.http_output</em> setting. Please refer to the <a
href="http://www.php.net/mbstring">PHP mbstring documentation</a> for more information.
Command pm-enable needs a higher bootstrap level to run - you will need to invoke drush from a more functional Drupal environment to run this command.                                [error]
The drush command 'en simpletest' could not be executed.                                                                                                                              [error]
Drush was not able to start (bootstrap) the Drupal database.                                                                                                                          [error]
Hint: This may occur when Drush is trying to:
 * bootstrap a site that has not been installed or does not have a configured database. In this case you can select another site with a working database setup by specifying the URI
to use with the --uri parameter on the command line. See `drush topic docs-aliases` for details.
 * connect the database through a socket. The socket file may be wrong or the php-cli may have no access to it in a jailed shell. See http://drupal.org/node/1428638 for details.

Drush was attempting to connect to: 
 Drupal version         :  8.0.0-dev                           
 Site URI               :  http://default                      
 PHP executable         :  /usr/bin/php                        
 PHP configuration      :  /.phpenv/versions/5.6.0/etc/php.ini 
 PHP OS                 :  Linux                               
 Drush version          :  7.0-dev                             
 Drush temp directory   :  /tmp                                
 Drush configuration    :                                      
 Drush alias files      :                                      
 Drupal root            :  /var/www                            
 Site path              :  sites/default                       



Operation [run tests]...
export TERM=linux && cd /var/www && php ./core/scripts/run-tests.sh --php /usr/bin/php --url 'http://localhost' --color --concurrency 16  --xml '/var/workspace/results'  --all | tee /var/www/test.stdout
  ERROR: Missing default database connection for tests. Use --dburl to specify one.
real 2.15
user 0.00
sys 0.00

Saving image build_2014_09_19_090336 at Fri Sep 19 09:03:39 UTC 2014:
7b9963ea1378fc67ace8e1ec1dda9bb605869dc319934727aed21b5b9fc6bfb4
------------------------------------------------------------------------------
Results directory: /home/testbot/testbotdata/build_2014_09_19_090336/results/
Clean up old Builds on /home/testbot/testbotdata to save disk space
------------------------------------------------------------------------------
Docker run command:
/usr/bin/time -p docker run --link=drupaltestbot-db-mysql-5.5:db --name=build_2014_09_19_090336 -v=/home/testbot/testbotdata/build_2014_09_19_090336/:/var/workspace:rw -v=/home/testbot/testbotdata/build_2014_09_19_090336/:/var/www:rw -p 80  -t drupalci/web-5.6 
testbot@lubuntu:~/drupalci_testbot$

Seems like this flavor of PHP 5.6 has multibyte strings enabled and Drupal 8 can't deal with that.

The Drupal issue for this is https://www.drupal.org/node/2332265. Setting apc.cli_enabled=1 will work around the problem.

Fix commited!

a new version of the Bootable testbot will include the fix
I'll upload and update https://www.drupal.org/node/2336389

Tests now run using drush install:
~/drupalci_testbot$ sudo DCI_DBTYPE='mysql' DCI_DBVER='5.5' DCI_PHPVERSION='5.6' DCI_TESTGROUPS='--all' DCI_DRUPALBRANCH='8.0.x' DCI_CONCURRENCY='16' DCI_INSTALLER="drush" ./containers/web/run.sh

------------------------ STARTING DOCKER CONTAINER ---------------------------
Operation [start]...
Starting apache2 service

Operation 8 [install] using drush... 
You are about to create a /var/www/sites/default/settings.php file and CREATE the 'build_2014_09_20_122557' database. Do you want to continue? (y/n): y
Starting Drupal installation. This takes a while. Consider using the --notify global option.                                [ok]
Installation complete.  User name: admin  User password: drupal                                                             [ok]
Congratulations, you installed Drupal!Drupal installation complete                                                          [status]
The following extensions will be enabled: simpletest
Do you really want to continue? (y/n): y
simpletest was enabled successfully.                                                                                        [ok]

Operation [run tests]...
export TERM=linux && cd /var/www && php ./core/scripts/run-tests.sh --php /usr/bin/php --url 'http://localhost' --color --concurrency 16  --xml '/var/workspace/results'  --all | tee /var/www/test.stdout

Drupal test run
---------------

All tests will run.

Test run started:
  Saturday, September 20, 2014 - 12:28

Test summary
------------

Drupal\system\Tests\Action\ActionUnitTest                     15 passes    

Etc...