Details
-
Task
-
Status: Stalled (View Workflow)
-
Minor
-
Resolution: Unresolved
-
None
Description
<serg> in 10.1 there are now sys_vars.sysvar_* tests they list all system variables and their metadata
<serg> this is, obviously, pretty fragile, I've split them in debug/non-debug, embedded, and created rdiffs for xtradb/innodb, 64bit/32bit, etc
<serg> and simply disabled some of them for valgrind or non-debug builds
<serg> still they require a lot of maintenance. Like after bug changes I need to build 32-bit version to update 32-bit rdiffs, and often do the same on windows etc
<serg> I wonder whether you can manage to optimize them somehow (what should rdiff, what should be .result, where they should be simply disabled, etc)
<serg> so that they won't break that often or that rdiffs apply cleanly?
<serg> like mysqld--help test, rdiff for windows almost always just works, it's enough to update the result on linux
<serg> that's not particularly urgent, I'll keep updating tests manually anyway
<serg> but I've spent too much time on it already and mostly out of ideas now
<serg> that's one of the new features in 10.1 that I've recently pushed
<serg> INFORMATION_SCHEMA.SYSTEM_VARIABLES table: https://mariadb.com/kb/eninformation-schema-system_variables-table/
<elenst> Do you expect it to be so useful that it's worth the trouble?
<serg> the feature - yes, absolutely. tests? I don't know, really, perhaps disabling them isn't that bad
<serg> I'd like to have this feature tested, but it doesn't need to list all variables, I agree
Attachments
Issue Links
- relates to
-
MDEV-8500 sys_vars.sysvars_innodb '32bit,xtradb' fails
-
- Closed
-
Now, back to comparison with mysqld--help, which mostly works smoothly with its windows rdiff.
It turns out mysqld--help does exactly the same that I did in my "radical" solution. Only it does it much thicker, it just unconditionally replaces all "32-bit-looking" values with the corresponding "64-bit-looking" values, and also suppresses some inconvenient variables completely. Still, it has to have the windows rdiff because for Windows it's not just about different values, there are some variables that only exist on Windows, and some that do not exist on Windows. So, again, it correlates with my existing ugly solution, where I get rid of 32-bit rdiffs, but introduce win rdiffs instead. And of course, xtradb rdiff will have to stay as well.
So, my conclusion is this: we cannot target only mature versions with these tests, and maintaining them on early releases is real pain (I had a chance to feel it while working on this). So, the radical solution wins, I am going to get back to it, maybe will be able to make it somewhat less ugly.
But even then, adding or removing variables can break the context of remaining rdiffs. It happens with mysqld--help as well (for example, see 55e99b29339dae833448ded6d0ca3d31f673d02a); only, without plugin variables it happens rarely. We are going to have this problem with our XtraDB rdiff much more often. When other problems are solved, I will need to get back to this one.