← Back to team overview

randgen team mailing list archive

MariaDB patches (was: RQG merge/push policy)


Hi RQG people,

I've reshuffled my stack of changes and created a new branch:

There are 30+ revisions, most of the changes are small and/or independent of the rest of the code. There are however several that might affect you, so please take a look at those.

I'll list everything here with a short note for each, because if you take them all I'll just merge the whole branch, if you reject any I'll be cherry-picking.

Also FYI, all changes go with the corresponding addition to the license, I was told that's how it is supposed to be done. If you disagree, please let me know, we'll figure it out. IANAL.

I'll wait a couple of days, and unless somebody screams, I'll do the merge.

Here it goes, in order of appearance.


851: In MariaDB 5.5 sync-sys was renamed to debug-no-sync

Can't affect anybody, just MariaDB combinations file update

852: Always populate RQG_HOME

In combinations.pl, sets RQG_HOME to the script's home unless it was defined in the environment. Should not affect anybody unless you somehow depend on it being empty.

853: Let combinations work on Windows

Changes to combinations.pl to let it work on Windows. Should not affect anybody unless you depend on it croaking on Windows.

854: Get rid of the error dialog on Windows unless running in debug mode

ATTENTION: A change to runall.pl can affect you if you run tests on Windows without --debug option and expect the Windows dialog screen to popup and stop further execution when MySQL server crashes. Please scream.

855: Windows PIDs can be negative, it causes syntax errors

A lot of files changed, the change is $$ => abs($$). $$ is used in grammars and in the code, sometimes in a situation where a negative value would cause an error.
Can affect you if you on whatever reason need the negative values there.

856: Print PID in test output

ATTENTION: can affect you if you have a log parser which does not expect PID in the test logs. Please scream.

857: Validator for SHOW EXPLAIN feature introduced in MariaDB 10.0

Just a new file

858: Light version of Transformer.pm, no simplification

Just a new file and a reference to it in GenTest.pm

859: New transformer and related changes for LIMIT ROWS EXAMINED feature

A new transformer and relevant logic in Transform.pm should not affect anybody (unless there are bugs), but be aware that a couple of new constants were also added to Constants.pm and Transform.pm

860: Allow runall-new.pl to accept lists of row counts and skip-data option

Allow rows=1,100,1000 and skip-gendata in runall-new.pl. Should not affect anybody

861: Comparing results of ANALYZE is not useful and can produce

ATTENTION: This might affect you if you expect ANALYZE output to be processed by ResultsetComparator. Please scream.

862: Allow more than one redefining grammar

Allow multiple --redefine options in runall.pl, runall-new.pl and gentest.pl. Should not affect anybody unless there are bugs.

863: Store slave vardir created in the 'new' mode (with '_slave' suffix)

combinations.pl didn't store the slave vardir in the 'new' mode in case of failure. Might affect anyone who is using --new mode and has failures, but I don't suppose anybody actually wants their slave folder to be removed.

864: RQG couldn't handle more than one extra option for valgrind

Bug: RQG running via MTR could only process one additional valgrind option. Might affect you if you have multiple valgrind options in your config and they didn't work, but now will suddenly start and change the result.

865: Add skip-shutdown option to runall-new.pl: do not shutdown servers

A new option skip-shutdown to override stopServers which is done in runall-new.pl by default. Should not affect anybody.

866: CheckFieldValue validator: check that the value of the given field

Just a new file

867: dumpdb produced a usage error, which was written into the dump file

ATTENTION: can affect anyone who uses runall-new.pl to run comparison tests!
The script attempted to compare dumps from the servers after the test, and used dumpdb for that. The subroutine didn't work properly, it was writing usage errors instead of actual dumps, so the comparison would always pass. If it was a false-negative in your test, now you might start getting failures.

868: Simple service reporter which crashes the server in the middle

Just a new file

869: When server is started dirty after a crash, the pid file exists,

Remove old pid file before starting MySQL server. I doubt it can affect anybody, but check it just in case.

870: In MariaDB 10.0 system_tables script is split into two

A technical modification to comply with MariaDB init script structure. MariaDB has an extra script, so it's added to the list, and script search is wrapped into eval to prevent failures on other branches/versions. Can affect you if you expect init scripts not always exist, and expect the test to fail when a script is missing, but it sounds unlikely.

871: Somewhat better diagnostics of script startup issues

A few additional error messages on wrong runall-new.pl usage. Should not affect anybody.

872: Allow different types of views for servers that are being compared

Allow --views1=... --views2=... in 2-side comparison tests. The backward compatibility is preserved, so it shouldn't affect anybody unless there are bugs (you might want to review).

873: Add new keywords _basetable and _view to grammar syntax

Add _basetable and _view (just like there is _table which might be both a table and a view). There should be no difference in current behavior, unless there are bugs (you might want to review).

874: Minimize the number of non-default startup options

ATTENTION: This might affect anybody who uses native server startup (runall-new.pl). The patch removes hardcoded non-default options, all but max-allowed-packet (which is increased from 16 to 128 MB). I think it's better to run test by default on configuration as close to default as possible, and change options in test configs when necessary. But if you disagree, please scream.

875: Add setStartDirty subroutine

Can't affect anybody, just a new subroutine.

876: A reporter similar to Recovery.pm, but restarting the server in the same

A new file and a related small change to runall-new.pl. Should not affect anybody.

877: There is no need to override the previous error log -

Instead of creating a new error log on server startup, concatenate with an exiting one (if any). I can't imagine a case when it can be wrong, but please scream if disagree.

878: A new reporter to check that binary logs correctly reflect the server data

Just a new file

879: Reporter for checking the crash safety of GTID replication (MariaDB kind)

Just a new file

880: General slave crash recovery reporter: crashes the slave server every

Just a new file

881: GaleraMySQLd.pm - a module to start Galera cluster;

A few new files, a new option to runall-new.pl and related technical changes. The only part that might affect existing logic is that now Shutdown.pm instead of shutting down servers on ports $port, $port+2, $port+4 attempts to shutdown the whole range $port..$port+9, assuming that they all belong to the current test. If disagree, please scream.

882: Simplify file search by providing name variations

Use an array of names instead of a single name in _find. Should not affect anybody.



On 6/3/2013 1:12 AM, Roel Van de Paar wrote:
Hi Elena,

Fully agree with Phillip.

Also, for minor/clear modifications to common code, no need to ask imho.

On Sun, Jun 2, 2013 at 4:45 PM, Philip Stoev <philip@xxxxxxxxx <mailto:philip@xxxxxxxxx>> wrote:


    There is no approval process. If you would like to add new
    grammars, .pm files, etc. feel free to do that directly.

    For modifications to existing files that you feel can impact other
    users of the tool, drop a line to the mailing list and if there
    are no objections, I would say push at will. I personally do not
    feel like reviewing contributions, but if you guys want to set up
    some system amongst yourselves, please feel free.

    Philip Stoev

    -----Original Message----- From: Elena Stepanova
    Sent: Sunday, June 02, 2013 03:40
    To: randgen@xxxxxxxxxxxxxxxxxxx <mailto:randgen@xxxxxxxxxxxxxxxxxxx>
    Subject: [Randgen] RQG merge/push policy

    Hi RQG people,

    I've been wondering (for long while actually) what is the current
    for pushing stuff into the main tree? More precisely, what would I
    to do if I wanted to

    - add new grammars, packages or scripts (including those that are only
    applicable to MariaDB);
    - modify existing grammars, packages or scripts (including those that
    are applicable NOT only to MariaDB)?

    I expect that the first part should be rather liberal, but still, do I
    need to seek somebody's approval before doing so? I see at least
    Roel do
    it every now and then, but I don't know if there is any underlying
    approval-related activity.

    And for the latter part, to whom would I need to send a proposal /

    Best regards,

    Mailing list: https://launchpad.net/~randgen
    Post to     : randgen@xxxxxxxxxxxxxxxxxxx
    Unsubscribe : https://launchpad.net/~randgen
    More help   : https://help.launchpad.net/ListHelp

    Mailing list: https://launchpad.net/~randgen
    Post to     : randgen@xxxxxxxxxxxxxxxxxxx
    Unsubscribe : https://launchpad.net/~randgen
    More help   : https://help.launchpad.net/ListHelp


Kind Regards,
God Bless,
Roel Van de Paar, CMDBA/CMDEV Director of Development Services, Percona LLC

Follow ups