We are having ongoing hiccups related to the charset on our install being 'less preferred' and more specifically no longer supported for new installs for CiviCRM. For most sites this new-install limit is not an issue as their site is installed & not changing.
However, for us the issue is that we are constantly creating new installs - both in CI and in our dev environments. It seems that our default charset in our docker (and on live) is DEFAULT CHARSET=latin1 - this means that if we don't explictly specify the charset for new tables it uses latin1 - which results in the test fail @Cstone experienced and which I was able to replicate. Since those tests are NOT failing on jenkins I think jenkins must have a default of utf8 since testDiscriticConflicts works on jenkins.
The 'what has changed' in all this is that following new civicrm recommendations we are no longer specifying the charset when we create the civicrm_contact_name_pair table. This is 'correct' as the db charset should be either utf8 or utfmb48 and by not specifying we can pick up the right one.
However, when it is not right it goes to custard....
I think there are a couple of things we can do
- I think we should update live to use utf8 as the default charset - this won't change existing tables, just new ones created with no override which is a likely future gotcha if we don't
- an easy short-term fix might be to let that same upgrade script set the db default for our local dbs. However, it would probably be better to have that as part of the docker settings in the medium term
@AndyRussG @jgleeson pinging you in also because of the note about docker although I think I'll do the quick fix first & potentially create a follow up ticket
@Cstone this is the issue you were hitting & I think it's also the problem I've been seeing on my upgrade prep (the failing test in gerrit)