-
Notifications
You must be signed in to change notification settings - Fork 7.9k
Fixed tests failing on MariaDB #13500
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: PHP-8.2
Are you sure you want to change the base?
Fixed tests failing on MariaDB #13500
Conversation
80bed89
to
709c512
Compare
@@ -5,6 +5,7 @@ mysqli | |||
--SKIPIF-- | |||
<?php | |||
require_once 'skipifconnectfailure.inc'; | |||
if (getenv('IS_MARIADB_TEST')) die('skip have not yet configured MariaDB to use SSL'); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll skip it for now since it seems like it will take more time.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is skipping a good idea? Maybe expect failure instead? What exactly is the issue with this test?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Whether SSL is enabled is indicated by the bits in capability_flags
.
php-src/ext/mysqlnd/mysqlnd_wireprotocol.c
Line 390 in 0039446
packet->server_capabilities = uint2korr(p); |
For MySQL, it is turned on without any special settings, but for MariaDB, it is turned off by default.
That is, the if block that should be checked in this test is not reached.
php-src/ext/mysqlnd/mysqlnd_commands.c
Line 529 in 0039446
if (server_has_ssl == FALSE) { |
It seemed like it would take a while to figure out how to turn this on, so I thought I'd just skip it first and follow up later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You can just follow the steps from MariaDB https://mariadb.com/kb/en/securing-connections-for-client-and-server/
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you! I will try this method locally.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
MariaDB11.4 seems to enable SSL by default, which means it behaves the same as MySQL.
https://mariadb.com/kb/en/changes-improvements-in-mariadb-11-4/#ssltls
Therefore, by fixing the MariaDB used for CI to 11.4 or later, there is no need to configure SSL.
However, there is a new issue #13628, so I will wait until it is resolved before proceeding with this PR.
After fixing the tests, add MariaDB to Nightly.
before (I forgot to turn off the option and CI is passing, but the test is failing):
https://github.com/SakiTakamachi/php-src/actions/runs/8030741446/job/21938385260
after:
https://github.com/SakiTakamachi/php-src/actions/runs/8036372372/job/21950000397