[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:
Relates
relates to MDEV-4134 Upgrade to 5.5.29-1 killed PHP Closed

 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

http://pastebin.com/eUJzmmVL

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
Preparing... ########################################### [100%]
1:MariaDB-server ########################################### [100%]
warning: %postun(MariaDB-server-5.5.29-1.x86_64) scriptlet failed, exit status 3

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.
Therefore, mysqli that is recompiled with MariaDB headers, would need client_errors , not mysql_client_errors.

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

Generated at Thu Feb 08 06:53:57 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.