Conversation
|
Download the artifacts for this pull request:
See Testing a PR. |
rfay
left a comment
There was a problem hiding this comment.
Wow!
Should we also be considering using SSL optionally for communication between web and db?
It's already done automatically in MariaDB 11.4+ We don't actually need I guess it's too much work to add SSL for every possible MariaDB version below 11.4. And people may still need to connect to some external databases without SSL from the |
Didn't know that! But I was actually talking about configuring our server to do TLS. |
|
Lima timing out after 4 hours, perhaps something wrong with runner, https://buildkite.com/ddev/macos-lima/builds/5712#019c5905-5b6e-4500-b779-32989145e0af (tb-macos-arm64-6 lima) |
4a45799 to
fd6eff5
Compare
|
We should see if we can test this on Craft's db dump utility, which should have the same problem. |
|
Bizarre: ddev drush si success after failure |
|
This works great of course, but I have questions and haven't fully grokked all the intent. Could you flesh out body just a bit more?
This absolutely solves a very real problem, and waiting for the tools that encounter it doesn't seem like a very successful approach. But it has quite a lot of complexity risk. We're taking basic behavior and trying to roll it back, which usually has unintended consequences. |
We install MariaDB 11.8 client inside the
I create wrappers in
I decided to preinstall them, so they already come bundled with
Yes.
No,
I don't think we need to add anything. |
fd6eff5 to
8cb0da2
Compare
|
After internal discussion we decided it's better to keep MariaDB 10.11 client for all old MariaDB servers:
Run this to download the updated ddev utility download-imagesThe MariaDB 10.11 client doesn't use any wrappers, so even if there is an issue with the wrappers, it would only affect MariaDB 11.x. |
rfay
left a comment
There was a problem hiding this comment.
I ran out of gas partway through this, but manual testing was working great. Exactly what I hoped for.
|
A note: Since this was done against fork, some of the more extensive tests like TestDdevAllDatabases may not be run against everything until it gets pulled. |
The Issue
MariaDB 11.4+ has self-signed certificates https://www.youtube.com/watch?v=JymQOSYTI-Y&t=73s
https://mariadb.org/mission-impossible-zero-configuration-ssl/
But when
mariadb-client11.4+ tries to connect to an older server, it fails, because self-signed certificates are not supported there.Previously,
ddev-webserverusedmariadb-client11.8 for all MariaDB versions below 10.11. This means even a MariaDB 10.6 server got the 11.8 client, which enforces SSL verification and fails to connect.We already have a config for this:
ddev/containers/ddev-webserver/ddev-webserver-etc-skel/etc/skel/.my.cnf
Lines 11 to 12 in 500fc99
But it doesn't work when using framework apps such as Drush or TYPO3 Console, because they use their own config
mariadb --defaults-file=/tmp/...during the connection.How This PR Solves The Issue
Two-pronged approach based on server version:
MariaDB below 11.x: Install
mariadb-client10.11 instead of 11.8. The 10.11 client does not enforce SSL verification, so it connects to older servers without issues.MariaDB 11.x: Install
mariadb-clientmatching the server version and create wrappers with--skip-ssl-verify-server-certfor:--skip-ssl-verify-server-certis added as a last parameter, because--defaults-fileis picky about argument order.Manual Testing Instructions
Follow Drupal quickstart https://docs.ddev.com/en/stable/users/quickstart/#drupal with an older MariaDB database:
And run:
Before:
After:
Check that the 10.11 client is installed for MariaDB 10.6:
$ ddev exec mariadb --version mariadb Ver 15.1 Distrib 10.11.16-MariaDBCheck that for MariaDB 11.x, wrappers are created instead:
Automated Testing Overview
Release/Deployment Notes