Note:
The test case is non-deterministic, please run with --repeat=N. It currently fails for me locally in 1-2 attempts, but it is strangely sensitive to a variety of conditions: it only fails on my ASAN builds, even though on different ones (different revisions, different set of features), and the failure seems too depend on nearly every symbol in the test case – I can't rename the databases or the tables, or remove extra spaces, or even change the text in the comments to different text of the same length. So I expect that reproducing it may turn problematic, please let me know if that's the case, and I'll try to set it up on some lab machine.
--source include/have_sequence.inc
--source include/have_innodb.inc
CREATEDATABASE oltp_db;
CREATETABLE oltp_db.oltp4 (id INTNOTNULL AUTO_INCREMENT PRIMARYKEY) ENGINE=InnoDB;
INSERTINTO oltp_db.oltp4 SELECT seq FROM seq_1_to_100;
CREATEDATABASE advanced_db;
CREATETABLE advanced_db.t1 (id INT AUTO_INCREMENT PRIMARYKEY) ENGINE=InnoDB;
INSERTINTO advanced_db.t1 SELECT seq FROM seq_1_to_100;
#4 0x0000556084053fc5 in ha_storage_put_memlim (storage=0x61a000007320, data=0x7fa8825611c0, data_len=91, memlim=16621568) at /data/bld/10.6-asan/storage/innobase/ha/ha0storage.cc:54
#5 0x0000556083d1b7d1 in fill_trx_row (row=0x7fa87f7e78b0, trx=0x7fa88911bf40, requested_lock_row=0x0, cache=0x556087416b20 <trx_i_s_cache_static>) at /data/bld/10.6-asan/storage/innobase/trx/trx0i_s.cc:433
#6 0x0000556083d1eed7 in fetch_data_into_cache_low (cache=0x556087416b20 <trx_i_s_cache_static>, trx=0x7fa88911bf40) at /data/bld/10.6-asan/storage/innobase/trx/trx0i_s.cc:1030
#7 0x0000556083d1f146 in operator() (__closure=0x7fa882561850, trx=...) at /data/bld/10.6-asan/storage/innobase/trx/trx0i_s.cc:1058
#8 0x0000556083d1fd1d in thread_safe_trx_ilist_t::for_each<fetch_data_into_cache(trx_i_s_cache_t*)::<lambda(trx_t&)> >(struct {...} &&) (this=0x5560866b3d40 <trx_sys+128>, callback=...) at /data/bld/10.6-asan/storage/innobase/include/trx0sys.h:839
#9 0x0000556083d1f252 in fetch_data_into_cache (cache=0x556087416b20 <trx_i_s_cache_static>) at /data/bld/10.6-asan/storage/innobase/trx/trx0i_s.cc:1052
#10 0x0000556083d1f374 in trx_i_s_possibly_fetch_data_into_cache (cache=0x556087416b20 <trx_i_s_cache_static>) at /data/bld/10.6-asan/storage/innobase/trx/trx0i_s.cc:1081
#11 0x00005560838e3bf1 in trx_i_s_common_fill_table (thd=0x62b0000bd218, tables=0x62b0000c4998) at /data/bld/10.6-asan/storage/innobase/handler/i_s.cc:191
#12 0x00005560838e6686 in fill_innodb_locks_from_cache (thd=0x62b0000bd218, tables=0x62b0000c4998) at /data/bld/10.6-asan/storage/innobase/handler/i_s.cc:664
#13 0x00005560826a8234 in get_schema_tables_result (join=0x62b0000c5f70, executed_place=PROCESSED_BY_JOIN_EXEC) at /data/bld/10.6-asan/sql/sql_show.cc:9036
#14 0x000055608256ed51 in JOIN::exec_inner (this=0x62b0000c5f70) at /data/bld/10.6-asan/sql/sql_select.cc:4893
#15 0x000055608256cad2 in JOIN::exec (this=0x62b0000c5f70) at /data/bld/10.6-asan/sql/sql_select.cc:4714
#16 0x0000556082570f51 in mysql_select (thd=0x62b0000bd218, tables=0x62b0000c4998, fields=..., conds=0x0, og_num=0, order=0x0, group=0x0, having=0x0, proc_param=0x0, select_options=2684619520, result=0x62b0000c5f40, unit=0x62b0000c1608, select_lex=0x62b0000c4300) at /data/bld/10.6-asan/sql/sql_select.cc:5193
#17 0x000055608253faae in handle_select (thd=0x62b0000bd218, lex=0x62b0000c1540, result=0x62b0000c5f40, setup_tables_done_option=0) at /data/bld/10.6-asan/sql/sql_select.cc:573
#18 0x00005560824a10e0 in execute_sqlcom_select (thd=0x62b0000bd218, all_tables=0x62b0000c4998) at /data/bld/10.6-asan/sql/sql_parse.cc:6407
#19 0x000055608248f239 in mysql_execute_command (thd=0x62b0000bd218, is_called_from_prepared_stmt=false) at /data/bld/10.6-asan/sql/sql_parse.cc:3999
#20 0x00005560824abf16 in mysql_parse (thd=0x62b0000bd218, rawbuf=0x62b0000c4238 "SELECT * FROM information_schema.INNODB_LOCKS", length=45, parser_state=0x7fa882563a90) at /data/bld/10.6-asan/sql/sql_parse.cc:8194
#21 0x0000556082481425 in dispatch_command (command=COM_QUERY, thd=0x62b0000bd218, packet=0x629000276219 "SELECT * FROM information_schema.INNODB_LOCKS", packet_length=45, blocking=true) at /data/bld/10.6-asan/sql/sql_parse.cc:1908
#22 0x000055608247e159 in do_command (thd=0x62b0000bd218, blocking=true) at /data/bld/10.6-asan/sql/sql_parse.cc:1421
#23 0x00005560828fe9d1 in do_handle_one_connection (connect=0x608000014738, put_in_cache=true) at /data/bld/10.6-asan/sql/sql_connect.cc:1407
#24 0x00005560828fe530 in handle_one_connection (arg=0x6080000146b8) at /data/bld/10.6-asan/sql/sql_connect.cc:1319
#25 0x00005560835759b4 in pfs_spawn_thread (arg=0x617000008218) at /data/bld/10.6-asan/storage/perfschema/pfs.cc:2201
#26 0x00007fa8910a8044 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#27 0x00007fa89112861c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
Examples of build options where the failure occurs:
It appears that the failure stopped happening after this commit
commit df3855a4711ac6b71afd3c8aef25e2d00fc97111
Author: Marko Mäkelä
Date: Thu Nov 21 08:59:31 2024 +0200
MDEV-35247: ut_hash_ulint() is a waste
but I have no information so far whether it has disappeared completely or just this test case stopped failing (due to its suspicious sensitivity I suppose it can happen).
Elena Stepanova
added a comment - It appears that the failure stopped happening after this commit
commit df3855a4711ac6b71afd3c8aef25e2d00fc97111
Author: Marko Mäkelä
Date: Thu Nov 21 08:59:31 2024 +0200
MDEV-35247: ut_hash_ulint() is a waste
but I have no information so far whether it has disappeared completely or just this test case stopped failing (due to its suspicious sensitivity I suppose it can happen).
The malloc() interceptor in AddressSanitizer is filling the block with 0xbe bytes. That is why we get an invalid pointer. I forgot to zero-initialize the pointer:
With this applied on top of a9b0a1c5d01eb299d195707a3307fbab58c8d804, the test passed 5×100 times.
Marko Mäkelä
added a comment - The malloc() interceptor in AddressSanitizer is filling the block with 0xbe bytes. That is why we get an invalid pointer. I forgot to zero-initialize the pointer:
diff --git a/storage/innobase/ha/ha0storage.cc b/storage/innobase/ha/ha0storage.cc
index 4a99d5f6e69..ef7cc78a4dd 100644
--- a/storage/innobase/ha/ha0storage.cc
+++ b/storage/innobase/ha/ha0storage.cc
@@ -67,6 +67,7 @@ ha_storage_put_memlim(
(mem_heap_alloc(storage->heap, sizeof *node + data_len));
node->data_len= data_len;
node->data= &node[1];
+ node->next= nullptr;
memcpy(const_cast<void*>(node->data), data, data_len);
*after= node;
return node->data;
With this applied on top of a9b0a1c5d01eb299d195707a3307fbab58c8d804, the test passed 5×100 times.
The initialization of the next pointer is missed when we got rid of HASH_INSERT abstraction. I think it is good to check all other places where HASH_INSERT was removed earlier and check for similar issue.
HASH_INSERT(
ha_storage_node_t, /* type used in the hash chain */
Debarun Banerjee
added a comment - The fix Looks correct to me. Please go ahead.
The initialization of the next pointer is missed when we got rid of HASH_INSERT abstraction. I think it is good to check all other places where HASH_INSERT was removed earlier and check for similar issue.
HASH_INSERT(
ha_storage_node_t, /* type used in the hash chain */
next, /* node->"next" */
#define HASH_INSERT(TYPE, NAME, TABLE, HASH_VALUE, DATA) \
do { \
...
(DATA)->NAME = NULL;
Other previous invocations of HASH_INSERT are as follows:
buf_buddy_block_register(): switched to hash_cell_t::append(), which resets the pointer to next element.
dict_sys_t::add(): asserts ut_ad(!table->name_hash) and ut_ad(!table->id_hash), which are satisfied by dict_table_t::create(), which precedes each call to dict_table_t::add_to_cache(), which is the only invoker of this
dict_table_rename_in_cache(): asserts ut_ad(!table->name_hash), which is satisfied by a previous call to hash_cell_t::remove()
dict_table_change_id_in_cache(): moved to row_discard_tablespace(), which invokes hash_cell_t::append()
fil_space_t::create(): uses ut_zalloc_nokey(), in a way that is potentially prone to GCC -flifetime-dse (MDEV-18749, MDEV-34625) because a non-trivial default fil_space_t::fil_space_t() constructor may exist due to fil_space_t::latch
The fil_space_t::create() looks like a possible time bomb, depending on the compilation options (such as SUX_LOCK_GENERIC). I had added a source code comment about that already:
/* FIXME: if calloc() is defined as an inline function that calls
memset() or bzero(), then GCC 6 -flifetime-dse can optimize it away */
*after = space = new (ut_zalloc_nokey(sizeof(*space))) fil_space_t;
Marko Mäkelä
added a comment - Other previous invocations of HASH_INSERT are as follows:
buf_buddy_block_register() : switched to hash_cell_t::append() , which resets the pointer to next element.
dict_sys_t::add() : asserts ut_ad(!table->name_hash) and ut_ad(!table->id_hash) , which are satisfied by dict_table_t::create() , which precedes each call to dict_table_t::add_to_cache() , which is the only invoker of this
dict_table_rename_in_cache() : asserts ut_ad(!table->name_hash) , which is satisfied by a previous call to hash_cell_t::remove()
dict_table_change_id_in_cache() : moved to row_discard_tablespace() , which invokes hash_cell_t::append()
dict_sys_t::resize() : invokes hash_cell_t::append()
fil_space_t::create() : uses ut_zalloc_nokey() , in a way that is potentially prone to GCC -flifetime-dse ( MDEV-18749 , MDEV-34625 ) because a non-trivial default fil_space_t::fil_space_t() constructor may exist due to fil_space_t::latch
The fil_space_t::create() looks like a possible time bomb, depending on the compilation options (such as SUX_LOCK_GENERIC ). I had added a source code comment about that already:
/* FIXME: if calloc() is defined as an inline function that calls
memset() or bzero(), then GCC 6 -flifetime-dse can optimize it away */
*after = space = new (ut_zalloc_nokey( sizeof (*space))) fil_space_t;
I filed MDEV-35494 for fixing that.
People
Marko Mäkelä
Elena Stepanova
Votes:
0Vote for this issue
Watchers:
3Start watching this issue
Dates
Created:
Updated:
Resolved:
Git Integration
Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.
{"report":{"fcp":1165.7000000476837,"ttfb":454.80000001192093,"pageVisibility":"visible","entityId":131695,"key":"jira.project.issue.view-issue","isInitial":true,"threshold":1000,"elementTimings":{},"userDeviceMemory":8,"userDeviceProcessors":64,"apdex":0.5,"journeyId":"4536c8bb-05b1-4629-a155-2966f770934b","navigationType":0,"readyForUser":1265.7000000476837,"redirectCount":0,"resourceLoadedEnd":1277.2000000476837,"resourceLoadedStart":461.60000002384186,"resourceTiming":[{"duration":146.60000002384186,"initiatorType":"link","name":"https://jira.mariadb.org/s/2c21342762a6a02add1c328bed317ffd-CDN/lu2cib/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/css/_super/batch.css","startTime":461.60000002384186,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":461.60000002384186,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":608.2000000476837,"responseStart":0,"secureConnectionStart":0},{"duration":147.0999999642372,"initiatorType":"link","name":"https://jira.mariadb.org/s/7ebd35e77e471bc30ff0eba799ebc151-CDN/lu2cib/820016/12ta74/2bf333562ca6724060a9d5f1535471f6/_/download/contextbatch/css/jira.browse.project,project.issue.navigator,jira.view.issue,jira.general,jira.global,atl.general,-_super/batch.css?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&slack-enabled=true","startTime":461.9000000357628,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":461.9000000357628,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":609,"responseStart":0,"secureConnectionStart":0},{"duration":227.10000002384186,"initiatorType":"script","name":"https://jira.mariadb.org/s/0917945aaa57108d00c5076fea35e069-CDN/lu2cib/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/js/_super/batch.js?locale=en","startTime":462.10000002384186,"connectEnd":462.10000002384186,"connectStart":462.10000002384186,"domainLookupEnd":462.10000002384186,"domainLookupStart":462.10000002384186,"fetchStart":462.10000002384186,"redirectEnd":0,"redirectStart":0,"requestStart":462.10000002384186,"responseEnd":689.2000000476837,"responseStart":689.1000000238419,"secureConnectionStart":462.10000002384186},{"duration":293.9000000357628,"initiatorType":"script","name":"https://jira.mariadb.org/s/2d8175ec2fa4c816e8023260bd8c1786-CDN/lu2cib/820016/12ta74/2bf333562ca6724060a9d5f1535471f6/_/download/contextbatch/js/jira.browse.project,project.issue.navigator,jira.view.issue,jira.general,jira.global,atl.general,-_super/batch.js?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&locale=en&slack-enabled=true","startTime":462.30000001192093,"connectEnd":462.30000001192093,"connectStart":462.30000001192093,"domainLookupEnd":462.30000001192093,"domainLookupStart":462.30000001192093,"fetchStart":462.30000001192093,"redirectEnd":0,"redirectStart":0,"requestStart":462.30000001192093,"responseEnd":756.2000000476837,"responseStart":756.2000000476837,"secureConnectionStart":462.30000001192093},{"duration":151.60000002384186,"initiatorType":"script","name":"https://jira.mariadb.org/s/a9324d6758d385eb45c462685ad88f1d-CDN/lu2cib/820016/12ta74/c92c0caa9a024ae85b0ebdbed7fb4bd7/_/download/contextbatch/js/atl.global,-_super/batch.js?locale=en","startTime":462.60000002384186,"connectEnd":462.60000002384186,"connectStart":462.60000002384186,"domainLookupEnd":462.60000002384186,"domainLookupStart":462.60000002384186,"fetchStart":462.60000002384186,"redirectEnd":0,"redirectStart":0,"requestStart":462.60000002384186,"responseEnd":614.2000000476837,"responseStart":614.2000000476837,"secureConnectionStart":462.60000002384186},{"duration":297.2999999523163,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/1.0/_/download/batch/jira.webresources:calendar-en/jira.webresources:calendar-en.js","startTime":462.7000000476837,"connectEnd":462.7000000476837,"connectStart":462.7000000476837,"domainLookupEnd":462.7000000476837,"domainLookupStart":462.7000000476837,"fetchStart":462.7000000476837,"redirectEnd":0,"redirectStart":0,"requestStart":462.7000000476837,"responseEnd":760,"responseStart":760,"secureConnectionStart":462.7000000476837},{"duration":228.19999998807907,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/1.0/_/download/batch/jira.webresources:calendar-localisation-moment/jira.webresources:calendar-localisation-moment.js","startTime":462.9000000357628,"connectEnd":462.9000000357628,"connectStart":462.9000000357628,"domainLookupEnd":462.9000000357628,"domainLookupStart":462.9000000357628,"fetchStart":462.9000000357628,"redirectEnd":0,"redirectStart":0,"requestStart":462.9000000357628,"responseEnd":691.1000000238419,"responseStart":691.1000000238419,"secureConnectionStart":462.9000000357628},{"duration":229,"initiatorType":"link","name":"https://jira.mariadb.org/s/b04b06a02d1959df322d9cded3aeecc1-CDN/lu2cib/820016/12ta74/a2ff6aa845ffc9a1d22fe23d9ee791fc/_/download/contextbatch/css/jira.global.look-and-feel,-_super/batch.css","startTime":463,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":463,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":692,"responseStart":0,"secureConnectionStart":0},{"duration":297.2999999523163,"initiatorType":"script","name":"https://jira.mariadb.org/rest/api/1.0/shortcuts/820016/47140b6e0a9bc2e4913da06536125810/shortcuts.js?context=issuenavigation&context=issueaction","startTime":463.2000000476837,"connectEnd":463.2000000476837,"connectStart":463.2000000476837,"domainLookupEnd":463.2000000476837,"domainLookupStart":463.2000000476837,"fetchStart":463.2000000476837,"redirectEnd":0,"redirectStart":0,"requestStart":463.2000000476837,"responseEnd":760.5,"responseStart":760.5,"secureConnectionStart":463.2000000476837},{"duration":369.19999998807907,"initiatorType":"link","name":"https://jira.mariadb.org/s/3ac36323ba5e4eb0af2aa7ac7211b4bb-CDN/lu2cib/820016/12ta74/d176f0986478cc64f24226b3d20c140d/_/download/contextbatch/css/com.atlassian.jira.projects.sidebar.init,-_super,-project.issue.navigator,-jira.view.issue/batch.css?jira.create.linked.issue=true","startTime":463.4000000357628,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":463.4000000357628,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":832.6000000238419,"responseStart":0,"secureConnectionStart":0},{"duration":297.60000002384186,"initiatorType":"script","name":"https://jira.mariadb.org/s/5d5e8fe91fbc506585e83ea3b62ccc4b-CDN/lu2cib/820016/12ta74/d176f0986478cc64f24226b3d20c140d/_/download/contextbatch/js/com.atlassian.jira.projects.sidebar.init,-_super,-project.issue.navigator,-jira.view.issue/batch.js?jira.create.linked.issue=true&locale=en","startTime":463.5,"connectEnd":463.5,"connectStart":463.5,"domainLookupEnd":463.5,"domainLookupStart":463.5,"fetchStart":463.5,"redirectEnd":0,"redirectStart":0,"requestStart":463.5,"responseEnd":761.1000000238419,"responseStart":761.1000000238419,"secureConnectionStart":463.5},{"duration":547.8999999761581,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/1.0/_/download/batch/jira.webresources:bigpipe-js/jira.webresources:bigpipe-js.js","startTime":476.4000000357628,"connectEnd":476.4000000357628,"connectStart":476.4000000357628,"domainLookupEnd":476.4000000357628,"domainLookupStart":476.4000000357628,"fetchStart":476.4000000357628,"redirectEnd":0,"redirectStart":0,"requestStart":476.4000000357628,"responseEnd":1024.300000011921,"responseStart":1024.300000011921,"secureConnectionStart":476.4000000357628},{"duration":795.2000000476837,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/1.0/_/download/batch/jira.webresources:bigpipe-init/jira.webresources:bigpipe-init.js","startTime":482,"connectEnd":482,"connectStart":482,"domainLookupEnd":482,"domainLookupStart":482,"fetchStart":482,"redirectEnd":0,"redirectStart":0,"requestStart":482,"responseEnd":1277.2000000476837,"responseStart":1277.2000000476837,"secureConnectionStart":482},{"duration":188.69999998807907,"initiatorType":"xmlhttprequest","name":"https://jira.mariadb.org/rest/webResources/1.0/resources","startTime":843.2000000476837,"connectEnd":843.2000000476837,"connectStart":843.2000000476837,"domainLookupEnd":843.2000000476837,"domainLookupStart":843.2000000476837,"fetchStart":843.2000000476837,"redirectEnd":0,"redirectStart":0,"requestStart":843.2000000476837,"responseEnd":1031.9000000357628,"responseStart":1031.9000000357628,"secureConnectionStart":843.2000000476837},{"duration":280.7999999523163,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2cib/820016/12ta74/e65b778d185daf5aee24936755b43da6/_/download/contextbatch/js/browser-metrics-plugin.contrib,-_super,-project.issue.navigator,-jira.view.issue,-atl.general/batch.js?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&slack-enabled=true","startTime":1105.2000000476837,"connectEnd":1105.2000000476837,"connectStart":1105.2000000476837,"domainLookupEnd":1105.2000000476837,"domainLookupStart":1105.2000000476837,"fetchStart":1105.2000000476837,"redirectEnd":0,"redirectStart":0,"requestStart":1105.2000000476837,"responseEnd":1386,"responseStart":1386,"secureConnectionStart":1105.2000000476837}],"fetchStart":0,"domainLookupStart":223,"domainLookupEnd":232,"connectStart":232,"connectEnd":258,"secureConnectionStart":240,"requestStart":258,"responseStart":455,"responseEnd":481,"domLoading":460,"domInteractive":1379,"domContentLoadedEventStart":1379,"domContentLoadedEventEnd":1429,"domComplete":2017,"loadEventStart":2017,"loadEventEnd":2018,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","marks":[{"name":"bigPipe.sidebar-id.start","time":1351.5},{"name":"bigPipe.sidebar-id.end","time":1352.2000000476837},{"name":"bigPipe.activity-panel-pipe-id.start","time":1352.4000000357628},{"name":"bigPipe.activity-panel-pipe-id.end","time":1356},{"name":"activityTabFullyLoaded","time":1454.9000000357628}],"measures":[],"correlationId":"7ce0f71e3446a8","effectiveType":"4g","downlink":9.9,"rtt":0,"serverDuration":120,"dbReadsTimeInMs":16,"dbConnsTimeInMs":24,"applicationHash":"9d11dbea5f4be3d4cc21f03a88dd11d8c8687422","experiments":[]}}
It appears that the failure stopped happening after this commit
commit df3855a4711ac6b71afd3c8aef25e2d00fc97111
Author: Marko Mäkelä
Date: Thu Nov 21 08:59:31 2024 +0200
MDEV-35247: ut_hash_ulint() is a waste
but I have no information so far whether it has disappeared completely or just this test case stopped failing (due to its suspicious sensitivity I suppose it can happen).