[MDEV-4127] MariaDB MySQLi PHP Failure? Created: 2013-02-03 Updated: 2013-09-21 Resolved: 2013-02-04 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | None |
| Affects Version/s: | 5.5.29 |
| Fix Version/s: | 5.5.30 |
| Type: | Bug | Priority: | Critical |
| Reporter: | cmanns (Inactive) | Assignee: | Vladislav Vaintroub |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Environment: |
CentOS 6.3 64bit |
||
| Issue Links: |
|
||||||||
| Description |
|
After automatic update with yum we noticed php reporting the below. "undefined reference to `client_errors'" with a white screen for all websites. cPanel EasyApache also reports the fallowing. http://pastebin.com/XZegidFy and new output I would doubt this is a cPanel specific issue, this is worrying. Prior I have had mysql shared libs cause php needing rebuild, but now it wont rebuild. Not sure if I can update this again but I'm trying to find older rpm's to ensure it's due to this update, sort of weird. Not sure if cPanel will look at it. Regardless please add downgrade feature to your yum REPO |
| Comments |
| Comment by cmanns (Inactive) [ 2013-02-03 ] |
|
I guess I can comment more! MariaDB fails to downgrade (I had OMD installed, and requires it, otherwise cPanel dont use yum for php obviously and nothing else seems to depend on) so to revert I had to remove it. root@laxcp [/usr/local/src/mariadb5528a]# rpm -Uvh --oldpackage MariaDB-5.5.28a-centos6-x86_64-server.rpm I'll report back if 5.5.28a revert fixed the issue. We may switch back to LiteSpeed, in which I suppose before I reinstall OMD I can go back to 5.5.29 and see if it's PHP also buildfails, which would direct this as a MariaDB issue I suppose. |
| Comment by cmanns (Inactive) [ 2013-02-03 ] |
|
5.5.28a all is well cPanel EasyApache compiled fine PHP 5.4 (Both 5.3 and 5.4 have issues not related) There is no reason why cPanel EasyApache would fail with MariaDB 5.5.29 and not 5.5.28a due to cPanel. It just compiles PHP, removing MySQLi, it works. I may do a CentOS machine, yum install MariaDB, and recompile PHP. Not sure why nobody else has had issues. |
| Comment by Sergei Golubchik [ 2013-02-03 ] |
|
Okay. In 5.5.29 we've changed the list of exported symbols in libmysqlclient and added symbol versioning to match exactly what distribution packages do. On CentOS6 we should look exactly like RedHat provided libmysqlclient.so.18. And in that library there's no symbol client_errors, it's renamed to mysql_client_error for the sake of "namespace sanity" (quoting the distribution patch Now, let's figure out why it didn't work for you. Where did you take your mysqli from? Was it built from the source? It came with cPanel from somewhere? From distribution repository? Some other repository? It is supposed to work with MySQL's libmysqlclient, right? Where should that libmysqlclient come from? In the remi repo client_errors is also renamed to have mysql_ prefix. |
| Comment by cmanns (Inactive) [ 2013-02-03 ] |
|
Odd, yes source. I prefer source, I had a muck getting it to downgrade even D: I'm not 100% sure but believe cPanel pulls from PHP mirrors. It also builds normal MySQL from source. I never have had PHP 5.4 installed, tried it for the sake of the new version to no avail. I know cPanel downloads PHP...so should be normal. cPanel has a apache/php building thing, we normally use LiteSpeed. I may be switching back, if I do too - suppose I can test it's building but this is a production machine ~~ What can I do to test. Strange indeed, I'd imagine others would be utilizing EL 6 OS / Maria / cPanel |
| Comment by Vladislav Vaintroub [ 2013-02-03 ] |
|
The culprit are likely our headers. While we do export mysql_client_errors (to be compatible to fedora-style libmysqlclient.so.18), we do not rename those symbols with #define in header files, like Fedora does. We just need to additionally export client_errors, to fix it. |
| Comment by cmanns (Inactive) [ 2013-02-10 ] |
|
Thank you! We will be testing shortly. |
| Comment by fayad [ 2013-09-21 ] |
|
"We just need to additionally export client_errors, to fix it." How do you do this? |
| Comment by Vladislav Vaintroub [ 2013-09-21 ] |
|
By adding entry for "client_errors" to libmysql/libmysql_rpm_version.in file |