| Summary: | php and zend cartridges are missing mysql default socket | ||
|---|---|---|---|
| Product: | OpenShift Online | Reporter: | Vojtech Vitek <vvitek> |
| Component: | Image | Assignee: | Vojtech Vitek <vvitek> |
| Status: | CLOSED CURRENTRELEASE | QA Contact: | libra bugs <libra-bugs> |
| Severity: | low | Docs Contact: | |
| Priority: | low | ||
| Version: | 2.x | CC: | bmeng, dmcphers, hripps, vvitek |
| Target Milestone: | --- | Keywords: | UpcomingRelease |
| Target Release: | --- | ||
| Hardware: | All | ||
| OS: | All | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Bug Fix | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2014-04-24 21:34:44 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
|
Description
Vojtech Vitek
2013-12-10 07:40:56 UTC
Workaround:
rhc ssh <app>
cat - >> .htaccess <<EOF
php_value mysql.default_socket "${OPENSHIFT_MYSQL_DB_SOCKET}"
php_value mysqli.default_socket "${OPENSHIFT_MYSQL_DB_SOCKET}"
EOF
Commit pushed to master at https://github.com/openshift/li https://github.com/openshift/li/commit/bb7c5a7b39d62bd02acd9dafa89284c49b51fef0 Fix Zend Server MySQL default socket Bug 1039849 - https://bugzilla.redhat.com/show_bug.cgi?id=1039849 Commit pushed to master at https://github.com/openshift/origin-server https://github.com/openshift/origin-server/commit/c5a136bdff8f467be5574c03bb5323680ada87a4 Fix PHP MySQL default socket Bug 1039849 - https://bugzilla.redhat.com/show_bug.cgi?id=1039849 Commit pushed to master at https://github.com/openshift/li https://github.com/openshift/li/commit/3d27c9fddd047e7a9176ab8dc73c4252d1dc348b Update Cartridge Versions for Stage Cut Mark the following cartridges for incompatible upgrade: - metrics and rockmongo because of the logshifter code - zend because of the Bug 1039849 Checked on devenv_4608, issue still can be reproduced. For the new created apps, after add mysql to php/zend, and restart the app, the mysql.default_socket is still using the system default value. [php54-bmengdev.dev.rhcloud.com 533a2e8a06a098edde000001]\> php -i |grep socket mysql.default_socket => /var/lib/mysql/mysql.sock => /var/lib/mysql/mysql.sock mysqli.default_socket => /var/lib/mysql/mysql.sock => /var/lib/mysql/mysql.sock pdo_mysql.default_socket => /var/lib/mysql/mysql.sock => /var/lib/mysql/mysql.sock [php54-bmengdev.dev.rhcloud.com 533a2e8a06a098edde000001]\> grep "mysql" php/configuration/etc/php.ini |grep socket mysql.default_socket = mysqli.default_socket = For migration parts, apps which does not have a mysql db added will use the system mysql sock path in php.ini file. [zend61-bmeng1stg.stg.rhcloud.com 52e4eaa42587c8d766000043]\> grep "mysql" zend/php-5.4/etc/php.ini |grep socket pdo_mysql.default_socket=/var/lib/mysql/mysql.sock mysql.default_socket=/var/lib/mysql/mysql.sock mysqli.default_socket=/var/lib/mysql/mysql.sock Assign this back. (In reply to Meng Bo from comment #8) > For migration parts, apps which does not have a mysql db added will use the > system mysql sock path in php.ini file. There's no MySQL socket available in apps that doesn't have MySQL cartridge attached. When the default_socket directive is empty => PHP defaults it to /var/lib/mysql/mysql.sock. That's expected behavior. Commit pushed to master at https://github.com/openshift/li https://github.com/openshift/li/commit/2ba97bc6193c42737be50011a31129ec26822762 Fix Zend migration Bug 1081879 - https://bugzilla.redhat.com/show_bug.cgi?id=1081879 Bug 1039849 - https://bugzilla.redhat.com/show_bug.cgi?id=1039849 But for the new created app with mysql added, it will still using the system default path as the gear mysql.default_socket? [phpnew-bmeng1stg.stg.rhcloud.com 533bd9ad2587c8a75d0001d3]\> php -i |grep default_socket mysql.default_socket => /var/lib/mysql/mysql.sock => /var/lib/mysql/mysql.sock mysqli.default_socket => /var/lib/mysql/mysql.sock => /var/lib/mysql/mysql.sock pdo_mysql.default_socket => /var/lib/mysql/mysql.sock => /var/lib/mysql/mysql.sock [phpnew-bmeng1stg.stg.rhcloud.com 533bd9ad2587c8a75d0001d3]\> env|grep MYSQL OPENSHIFT_MYSQL_DIR=/var/lib/openshift/533bd9ad2587c8a75d0001d3/mysql/ OPENSHIFT_MYSQL_DB_PORT=3306 OPENSHIFT_MYSQL_DB_HOST=127.10.165.2 OPENSHIFT_MYSQL_DB_PASSWORD=c2YVnWaQR8QX OPENSHIFT_MYSQL_IDENT=redhat:mysql:5.5:0.2.10 OPENSHIFT_MYSQL_DB_USERNAME=adminTxMEL5e OPENSHIFT_MYSQL_DB_SOCKET=/var/lib/openshift/533bd9ad2587c8a75d0001d3/mysql//socket/mysql.sock OPENSHIFT_MYSQL_DB_URL=mysql://adminTxMEL5e:c2YVnWaQR8QX.165.2:3306/ OPENSHIFT_MYSQL_LD_LIBRARY_PATH_ELEMENT=/opt/rh/mysql55/root/usr/lib64 @Meng Bo, yeah, you're right. The logic doesn't count with MySQL cartridge being added/removed to the application during it's existence. It only works for the existing applications that already have MySQL cartridge added, or for new applications that have mysql added from the very beginning (one-liner rhc command). Marking UpcomingRelease, because of low priority. This is not a TO_STAGE issue. ZEND - I'm going to fix this during Sprint 43. PHP - Sprint 43 functionality already fixes this issue naturally (PHP.INI gets processed on every cartridge start/restart) How to test: $ rhc app create z61 zend-6.1 --no-git $ rhc ssh z61 "cat zend/php-5.4/etc/php.ini | grep default_socket" > default_socket_timeout=60 > pdo_mysql.default_socket= > mysql.default_socket= > mysqli.default_socket= $ rhc cartridge-add mysql-5.1 --app z61 $ rhc app-restart z61 $ rhc ssh z61 "cat zend/php-5.4/etc/php.ini | grep default_socket" > default_socket_timeout=60 > pdo_mysql.default_socket=/var/lib/openshift/***/mysql//socket/mysql.sock > mysql.default_socket=/var/lib/openshift/***9/mysql//socket/mysql.sock > mysqli.default_socket=/var/lib/openshift/***/mysql//socket/mysql.sock Commit pushed to master at https://github.com/openshift/li https://github.com/openshift/li/commit/6459988cd141360f159e731b4f983e6be58118e3 Fix Zend MySQL default socket Bug 1039849 - https://bugzilla.redhat.com/show_bug.cgi?id=1039849 User must restart the php gear to pick up new MYSQL_SOCKET value. Checked on devenv_4638, issue has been fixed. For both zend and php cartridge, the mysql.default_sock can be updated to correct value. # rhc ssh zend61 "cat zend/php-5.4/etc/php.ini | grep default_socket" default_socket_timeout=60 pdo_mysql.default_socket=/var/lib/openshift/5343c657cfca16b1820001fe/mysql//socket/mysql.sock mysql.default_socket=/var/lib/openshift/5343c657cfca16b1820001fe/mysql//socket/mysql.sock mysqli.default_socket=/var/lib/openshift/5343c657cfca16b1820001fe/mysql//socket/mysql.sock # rhc ssh php54 "cat php/configuration/etc/php.ini | grep default_socket" default_socket_timeout = 60 mysql.default_socket =/var/lib/openshift/5343c670cfca16e53100021b/mysql//socket/mysql.sock mysqli.default_socket =/var/lib/openshift/5343c670cfca16e53100021b/mysql//socket/mysql.sock Move bug to verified. |