Friday, May 16, 2025

Building and testing MySQL 8.0.42 / 8.4.5 / 9.3.0 on macOS

Previously: 8.0.41 / 8.4.4 / 9.2.0

MySQL 8.0.42 / 8.4.5 / 9.3.0 are out, and as usual, I have built and tested the new releases on macOS, due to its popularity as the server OS, of course.

Build

The 8.0 series don't build with the current XCode clang because of bug 118026 (Build failed with apple clang 17). That's inconvenient, but Homebrew-packaged LLVM clang versions 14 to 18 build it fine.

Another pre-existing build bug 117299 (ddl0bulk.h:236:15: error: parameter 'prebuilt' not found in the function declaration [-Werror,-Wdocumentation]) previously only affected 8.0, but now hits 8.4. Of course, the workarounds are simple enough.

I have also reported bug 118161 (Having Homebrew-installed googletest breaks build). I suspect this is not a 8.0.42 regression, thus will not be counting towards the running bug totals.

So, for build, we have one bug with no change, and one slightly worsened. Meh, but not too bad either.

Test

Here the things are not looking as good.

Bad news first. New bugs and existing bugs with substantial regressions. The number is substantial:

Bugs with no news:

Closed bugs or bugs that have improved in some ways:

Did not test:

One-off issues that I wasn't able to repeat properly for bug reporting.

  • rpl_gtid.rpl_gtids_table_disable_binlog_on_slave on 8.0.42
  • rpl_gtid.rpl_gtid_create_select on 8.0.42
  • test_services.test_table_access on 8.0.42
  • main.system_variable_source on 8.0.42
  • innodb.trigger_function_lock_compare on 8.0.42
  • gcs_xcom_control_interface-t on 8.0.42 and 9.3.0
  • router.authentication_mysql_accounts on 9.3.0
  • routertest_integration_routing_sharing on 9.3.0
  • routertest_integration_routing_sharing_constrained_pools on 9.3.0
  • rpl_nogtid.rpl_semi_sync_uninstall_plugin on 9.3.0
  • perfschema.idx_compare_events_waits_history on 9.3.0
  • sys_vars.log_slow_admin_statements_func on 9.3.0
  • main.subquery_mat_all on 9.3.0

Conclusion

Without the one-off issues I have 13 (!) new, 15 unchanged, 2 fixed, and 1 untested bug. The positive trend of the previous set of releases is no more, and the set of open issues almost doubles in size. I hope that the next quarterly release will look better.

Wednesday, January 29, 2025

Building and testing MySQL 8.0.41 / 8.4.4 / 9.2.0 on macOS

Previously: 8.0.40 / 8.4.3 / 9.1.0

Oracle released MySQL 8.0.41 / 8.4.4 / 9.2.0, and it's time for me to build and test it under macOS, of all things!

But first, a detour to the last set of releases Valgrind results, because its run took a few weeks on 9.1.0, and that's without --big-test. A big part of tests timed out, or failed randomly. There appear no errors that are diagnosed during server operation, and the shutdown logs are way too verbose for me to try to find any memory leaks. Perhaps 9.2.0 will fare better, and I will reduce --parallel further. Will it take two months to run? We will see!

Build

Mostly good news here, again. -DWITH_ZLIB=bundled is no longer required, that's probably due to newer XCode toolchain finally updating its zlib.

A new build bug:

A fixed build bug:

MySQL 8.0.41 does not build with LLVM 19. It could probably be fixed by backporting a fix for MySQL 8.4.4 which is documented as "Implemented the standards-compliant my_char_traits<unsigned char> for use as a drop-in replacement for std::char_traits<unsigned char>, which was deprecated in Clang 18 and removed in Clang 19. (Bug #37273525)"

Test

New bugs:

No changes:

Fixed bugs:

Did not test:

One-off issues:

  • main.join_cache_nojb failed once with query execution plan difference on 8.0.41 debug build.
  • rpl_gtid.rpl_gtids_table_disable_binlog_on_slave failed intermittently on 8.0.41 Debug with sanitizers, 8.4.4 Debug, & 8.4.4 Debug with sanitizers builds. The same happened in the previous set of releases too.
  • binlog_gtid.binlog_gtid_bgc_ticket_manager failed once on 8.4.4 Debug build.
  • routertest_integration_routing_sharing_constrained_pools failed once in a way that is not bug #113190 above.
  • rpl_gtid.rpl_heartbeat_log_pos_4gb timed out once on 8.4.4 Debug with sanitizers.
  • binlog_gtid.binlog_check_gtid_persistor_compatibility failed once on 9.2.0 Debug with sanitizers.
  • innodb.trigger_function_lock_compare timed out once on 9.2.0 Debug with sanitizers.

Conclusion

Without the one-off issues I have 2 new, 13 unchanged, 4 fixed, 1 untested bug. Much less churn than the last time, and finally the trend is positive.