Congrats to Oracle friends with MySQL 8.0.40 / 8.4.3 / 9.1.0 releases! Let's continue my blog post series on builds and tests on macOS (the previous post for MySQL 8.0.38 / 8.4.1 / 9.0.0 is here. I skipped the emergency hotfixes 8.0.39 / 8.4.2 / 9.0.1).
Build
Mostly good news here. XCode 16 works (8.4.3 & 9.10 need
-Wno-unused-const-variable
), and so does LLVM 18. The very recent LLVM 19 release
will need fixes for the new errors (and not only warnings which could be disabled),
but that's expected. Homebrew LLVM still needs the workaround to avoid mixing system
and Homebrew LLVM static linker utilities (Bug #113113 Build failure with Homebrew
LLVM 14-19 on macOS). All releases build with maximum system libraries, good.
Test
Many changes here. Several existing bugs have been fixed, but there are also new regressions. As usual, I tested Release, Debug, and Debug+ASan+UBSan configurations.
New bugs
- Bug #116369 rpl.rpl_semi_sync_alias crashes under AddressSanitizer
- Bug #116371 global-buffer-overflow AddressSanitizer error on clone.remote_basic_replace
- Bug #116373 auth_sec.acl_tables_row_locking failing with result diff
- Bug #116375 UBSan error on Rpl_commit_order_queue_test.Simulate_mts
- Bug #116378 routertest_integration_routing_splitting crashing under AddressSanitizer
- Bug #116385 Test main.mysql_upgrade_grant timing out on debug build
- Bug #116389 innodb.sdi failing with a result diff
- Bug #116390 Test main.opt_hint_resource_group_hypergraph failing testcase check
- Bug #116391 Test main.opt_hints_join_order_hypergraph failing with a result diff
- Bug #116394 Test binlog_gtid.binlog_gtid_binlog_recovery_errors crashes with an assert
Little or no changes
- Bug #113260 Client error in error log: MY-004031 - The client was disconnected …
- Bug #113665 perfschema.relaylog fails with a result difference
- Bug #115480 Test innodb.log_first_rec_group failing
- Bug #113709 StrXfrmTest.ChineseUTF8MB4 failing with an AddressSanitizer error still present in 8.0.40.
- Bug #113190 Several tests in routertest_integration_routing_sharing_constrained_pools fail
- Bug #103338 Starting mysqld on same data files sometimes errors out due to
doublewrite buf, presenting as flaky
main.log_buffered-big
test. - Bug #113189 ColumnStatisticsTest.StoreAndRestoreAttributesEquiHeight unit test fails
- Bug #115495 "Unable to read page" crash on innodb.dblwr_encrypt_recover
- Bug #113722 Test main.index_merge_innodb failing with a result difference
- Bug #115497 Test main.alter_table-big_myisam failure
Fixed and no longer reproducing bugs:
- Bug #113703 Test innodb.ddl_kill fails under Sanitizer build
- Bug #115482: Test main.window_jsonaggs failing
- Bug #113023 mysql-test/include/wait_for_pattern_in_file.inc incompatible with Homebrew Perl
- Bug #115479 main.partition_innodb_tablespace not masking temp directory
- Bug #115481 Test main.window_functions failing
- Bug #114888 Test innodb.parallel_read_kill always fails
- Bug #114892 Test XComControlTest.SuspectMemberFailedRemovalDueToMajorityLoss fails
- Bug #113710 Spec/HttpClientSecureTest.ensure/default_client_cipher_succeeds ASan error
Totals
To sum up the existing build & test bugs, we have 10 new, 11 unchanged, and 8 fixed bugs. A lot of churn, and still plus two regressions total.
Newer tooling
I have also logged two bugs which seem to be new classes of errors from newer tooling instead of being MySQL regressions, i.e. they are very likely present in older versions too. These I don't count in the above, but will start doing so from the next releases:
- XCode 16 AddressSanitizer started catching ODR violations, resulting in Bug #116372 ODR violation reported by AddressSanitizer for plugin variables
- LLVM 18 UndefinedBehaviorSanitizer also started diagnosing something that was not caught by earlier versions: Bug #116396 LLVM 18 UBSan errors on server bootstrap
Valgrind
I have been complaining that running Valgrind is excessively slow, and that there was an error present on every test (Bug #115229 pwrite(buf) points to uninitialised byte(s) in os_fusionio_get_sector_size()). The good news is that this bug has been fixed, making the Valgrind runs actually usable now. I have started one for 9.1.0, will see how far along it goes.
One-off issues that I couldn't handle better
Stuff I couldn't repeat reliably or at all, just dumping it here in case I have to reference it next time.
rpl_nogtid.rpl_semi_sync_non_group_commit_deadlock
8.0.40 Debug+San reportsodr-violation
onReplSemiSyncBase::kPacketMagicNum
, does not reproduce running individuallybinlog.binlog_mysqlbinlog_raw
failed once on 8.0.40 Debug+San (L77copy_file
error)rpl_gtid.rpl_gtids_table_disable_binlog_on_slave
failed once on 8.4.3 Debug+San buildmain.index_merge_innodb_hypergraph
failed once on 8.4.3 Debug+San buildinnodb.trigger_function_lock_compare
timed out once thereauth_sec.grant_as_ddl
failed once 8.4.3 Release buildrpl_gtid.rpl_gtids_table_disable_binlog_on_slave
failed once on 9.1.0 Debug+San buildmerge_innodb_tests-t
failed once on 9.1.0 Debug+Sanmain.lock_backup
failed once 9.1.0 with MTR thread id masking clobbering error numberinnodb.trigger_function_lock_compare
failed once on 9.1.0 Debug
Conclusion
I am happy to see that some of the bugs are getting fixed, but the trend is still going the wrong way, and I miss the fully-clean mid-8.0 releases.
No comments:
Post a Comment