Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on Mar 25, 2014
  1. @steaphangreene

    Support millisecond timeouts for reads, writes, and connects

    steaphangreene authored
    Summary:
    Feature: Millisecond Client Timeouts
    
    This diff exposes three new client options:
    
    MYSQL_OPT_CONNECT_TIMEOUT_MS
    MYSQL_OPT_READ_TIMEOUT_MS
    MYSQL_OPT_WRITE_TIMEOUT_MS
    
    Which are similar to the non-_MS options, except the value is, of
    course, in milliseconds.
    
    This diff also changes a number of timeout-related codepaths to use a
    structure rather than a naked integer.  This helps prevent many, many
    classes of errors that come from accidentally multiplying or dividing by
    1000 to convert (or forgetting to), and creates a form of type safety
    for timeouts.
    
    Test Plan: jenkins, mtr
    
    Reviewers: pivanof, inaam-rana, darnaut
    
    Reviewed By: darnaut
    
    CC: jtolmer, MarkCallaghan, flamingcow, jeremycole, andrew-ford, liang.guo.752, chip, atcurtis
    
    Differential Revision: https://reviews.facebook.net/D17019
  2. @darnaut @steaphangreene

    Add JUnit reporting support to the MySQL test suite runner.

    darnaut authored steaphangreene committed
    Summary:
    Feature: JUnit Support for MTR
    
    Produces JUnit test reports that can be consumed by tools such as Jenkins.
    
    Two new options are added to MTR:
    
      --junit-output=FILE   Output JUnit test summary XML to FILE.
      --junit-package=NAME  Set the JUnit package name to NAME for this test run.
    
    A test run using junit reporting would look like:
    
      ./mtr --comment=rpl_row --junit-package=rpl_row --junit-output=rpl_row.xml \
            --suite=rpl --mysqld=--binlog-format=row
    
    Typically, the package name should be the name for the test run, in
    this case the suite name and its variation. Tests results are written
    to the rpl_row.xml file (including test timing and output). If using
    with Jenkins, the XML file can be used for publishing test results and
    Jenkins would be able to show how many test failed, test duration and
    whether to mark the build as failed or unstable (if there were failing
    tests that succeeded on retry).
    
    Test Plan: mtr
    
    Reviewers: steaphan
    
    Reviewed By: steaphan
    
    Differential Revision: https://reviews.facebook.net/D17139
  3. @steaphangreene

    Support for NUMA interleave policy

    Inaam Rana authored steaphangreene committed
    Summary:
    Feature: NUMA Support
    
    Credits for research and implementation: Jeremy Cole and Davi Arnaut
    
    This patch provides startup options:
    * flush-caches: Flush and purge buffers/caches
    * numa-interleave: Run mysqld with its memory interleaved on all CPUs
    
    It also provides a config option:
    * innodb_buffer_pool_populate: pre-allocation of buffer pool
    memory at start up:
      -- Use MAP_POPULATE if supported (Linux 2.6.23 and higher)
      -- Forced pre-allocation using memset
    
    Test Plan: mtr
    
    Reviewers: steaphan, pivanof
    
    Reviewed By: pivanof
    
    CC: MarkCallaghan, jtolmer, jeremycole, flamingcow, andrew-ford, pengt, CalvinSun
    
    Differential Revision: https://reviews.facebook.net/D16965
  4. @steaphangreene

    Buffer pool list scan optimization

    Inaam Rana authored steaphangreene committed
    Summary:
    Feature: Optimize Buffer Pool List Scans and Fix Reporting
    
    This patch includes:
      -- backport of upstream work around buffer pool list scan.
         revno: 6228
         revision-id: sunny.bains@oracle.com-20130808223745-7lzp6h40vx1ndc7k
         parent: marc.alff@oracle.com-20130808135008-p5irewph4fm1yu19
         committer: Sunny Bains <Sunny.Bains@Oracle.Com>
         branch nick: trunk
         timestamp: Fri 2013-08-09 08:37:45 +1000
         message:
           WL#7047 - Optimize buffer pool list scans and related batch processing code
    
           Reduce excessive scanning of pages when doing flush list batches. The
           fix is to introduce the concept of "Hazard Pointer", this reduces the
           time complexity of the scan from O(n*n) to O(n).
    
           The concept of hazard pointer is reversed in this work.  Academically a
           hazard pointer is a pointer that the thread working on it will declare as
           such and as long as that thread is not done no other thread is allowed to
           do anything with it.
    
           In this WL we declare the pointer as a hazard pointer and then if any other
           thread attempts to work on it, it is allowed to do so but it has to adjust
           the hazard pointer to the next valid value. We use hazard pointer solely for
           reverse traversal of lists within a buffer pool instance.
    
           Add an event to control the background flush thread. The background flush
           thread wait has been converted to an os event timed wait so that it can be
           signalled by threads that want to kick start a background flush when the
           buffer pool is running low on free/dirty pages.
    
      -- fix for mysql bug#71411
         buf_flush_LRU() returns the number of pages processed. There are
         two types of processing that can happen. A page can get evicted or
         a page can get flushed. These two numbers are quite distinct and
         should not be mixed.
    
    Test Plan: mtr
    
    Reviewers: pivanof, liang.guo.752, CalvinSun, steaphan
    
    Reviewed By: pivanof, steaphan
    
    CC: jtolmer, MarkCallaghan, flamingcow, jeremycole, andrew-ford, pengt, steaphan
    
    Differential Revision: https://reviews.facebook.net/D16629
    Differential Revision: https://reviews.facebook.net/D17115
  5. @steaphangreene

    Page cleaner should do LRU flushing regardless of server activity

    Inaam Rana authored steaphangreene committed
    Summary:
    Feature: Flushing Improvements
    
    This is for upstream bug#70500 and bug#71988
    page_cleaner should work whether or not there is server activity.
    Its iterations become a noop when there is no work to do but we
    should not tie it to the server activity.
    
    The page_cleaner thread does spurious background flushing
    because of conditional sleep between iterations. The solution
    is not to make sleep dependent on server activity etc.
    
    Test Plan: mtr
    
    Reviewers: steaphan, pivanof
    
    Reviewed By: steaphan
    
    CC: MarkCallaghan, jtolmer, jeremycole, flamingcow, andrew-ford, pengt
    
    Differential Revision: https://reviews.facebook.net/D16617
  6. @steaphangreene

    Enable Lazy Flushing

    steaphangreene authored
    Summary:
    Feature: Buffer Pool Control Enhancements
    
    Adds innodb_idle_flush_pct to enable tuning of the page flushing rate
    when the system is relatively idle.  We care about this, since doing
    extra unnecessary flash writes shortens the lifespan of the flash.
    
    Test Plan:
    The default behavior is unchanged (since the default is 100).
    
    Confirmed in both testing of shadows, and in actual production, that
    setting this to 0 does result in stable lazy flushing, as desired.
    
    All mtr tests pass.
    
    Reviewers: inaam-rana
    
    Reviewed By: inaam-rana
    
    CC: jtolmer, MarkCallaghan, pivanof, flamingcow, jeremycole, andrew-ford, liang.guo.752, pengt
    
    Differential Revision: https://reviews.facebook.net/D16479
  7. @steaphangreene

    Made innodb_max_dirty_pages_pct my.cnf variable a double

    steaphangreene authored
    Summary:
    Feature: Buffer Pool Control Enhancements
    
    This change is to fix: http://bugs.mysql.com/62534
    
    This makes innodb_max_dirty_pages_pct a double with min,default,max values
    0.001, 75, 99.999.
    
    This also makes innodb_max_dirty_pages_pct_lwm and adaptive_flushing_lwm
    doubles, as these sysvars are inter-dependent.
    
    Added more to the BUFFER POOL AND MEMORY section of SHOW INNODB STATUS:
      Percent pages dirty: X.X
        This is all n_dirty_pages / used_pages
      Percent all pages dirty: X.X
        This is all n_dirty_pages / all-pages
      Max dirty pages percent: X.X
        This is innodb_max_dirty_pages_pct
    
    Also changed all of buf from 2 to 3 digits of precision (%.2f -> %.3f).
    
    Test Plan: Jenkins
    
    Reviewers: inaam-rana
    
    Reviewed By: inaam-rana
    
    CC: jtolmer, MarkCallaghan, pivanof, flamingcow, jeremycole, andrew-ford, liang.guo.752, pengt
    
    Differential Revision: https://reviews.facebook.net/D16485
  8. @steaphangreene

    Super Read-Only

    steaphangreene authored
    Summary:
    Feature: Super Read-Only
    
    Implements super_read_only global, which activates read_only,
    and also blocks writes by SUPER.
    
    Linked to the read_only global as follows:
    * Turning read_only off also turns off super_read_only.
    * Turning super_read_only on also turns read_only on.
    * All other changes to either one of these have no affect on the other.
    
    Note: We ignore super_read_only when updating replication repositories.
    Otherwise, "stop slave" and "change master to" would throw errors when
    this setting is enabled.
    
    Test Plan: New tests included, they all pass.
    
    Reviewers: pivanof, inaam-rana, liang.guo.752
    
    Reviewed By: pivanof
    
    CC: jtolmer, MarkCallaghan, flamingcow, jeremycole, andrew-ford, santoshb
    
    Differential Revision: https://reviews.facebook.net/D16197
  9. @steaphangreene

    Port v5.1 Prefix Index Queries Optimization

    steaphangreene authored
    Summary:
    Feature: Prefix Index Queries Optimization
    
    Optimize prefix index queries to skip cluster index lookup when possible.
    
    Currently InnoDB will always fetch the clustered index (primary key
    index) for all prefix columns in an index, even when the value of a
    particular record is smaller than the prefix length.  This change
    optimizes that case to use the record from the secondary index and avoid
    the extra lookup.
    
    Also adds two status vars that track how effective this is:
    
        innodb_secondary_index_triggered_cluster_reads:
    	Times secondary index lookup triggered cluster lookup.
    
        innodb_secondary_index_triggered_cluster_reads_avoided:
    	Times prefix optimization avoided triggering cluster lookup.
    
    Test Plan:
    Jenkins, all pass.
    
    New test included, fails without this change, passes with it.
    
    Random toggle added to stress tests, the small ones all pass,
    and the nightly Jenkins stress tests should all pass too.
    
    Reviewers: pivanof
    
    Reviewed By: pivanof
    
    CC: jtolmer, MarkCallaghan, flamingcow, jeremycole, andrew-ford, inaam-rana, liang.guo.752
    
    Differential Revision: https://reviews.facebook.net/D15921
    Differential Revision: https://reviews.facebook.net/D16455
  10. @steaphangreene

    Add basic atomic_stats type

    steaphangreene authored
    Summary:
    Feature: Basic Stats Support
    
    This is a simple class template that implements an atomic stats variable.
    
    The focus is on performance, not accuracy.  No set operations are
    guaranteed.  The other operations are all atomic, so values should not
    actually be lost - however, there is no attempt to be consistent in
    reading multiple stats, nor any concern that different threads see any
    consistent view across multiple stats.
    
    Test Plan:
    This has been tested quite a bit in isolation, and no problems have been
    found.  However, this has never been used in production.  Also, a newer,
    more sophisticated, version of this is already in development.
    
    It also shows a small perf gain in the larger stats diffs (Table Stats,
    User Stats, etc...), when compared to the built-in MySQL atomics.
    
    Reviewers: pivanof
    
    Reviewed By: pivanof
    
    CC: jtolmer, MarkCallaghan, flamingcow, jeremycole, andrew-ford, inaam-rana, liang.guo.752
    
    Differential Revision: https://reviews.facebook.net/D16029
    Differential Revision: https://reviews.facebook.net/D16449
  11. @pivanof @steaphangreene

    Allow semisync plugins to link statically and do that by default

    pivanof authored steaphangreene committed
    Summary:
    Feature: Build Improvements
    
    The change makes it possible to link both semisync master and semisync slave
    plugins statically, modifies CMakeList.txt to do that by default, and modifies
    tests to work both with statically and dynamically linked semisync plugins.
    
    This change is based on
    http://bazaar.launchpad.net/~maria-captains/maria/10.0/revision/3427.1.168
    with unnecessary parts removed and with MySQL-specific parts added.
    
    Test Plan:
    mtr
    
    Cleanly built without cmake options, and 'show plugins;' output included:
    ...
    rpl_semi_sync_master	ACTIVE	REPLICATION	NULL	GPL
    rpl_semi_sync_slave	ACTIVE	REPLICATION	NULL	GPL
    ...
    
    Reviewers: steaphan, santoshb
    
    Reviewed By: steaphan, santoshb
    
    CC: flamingcow, jeremycole, andrew-ford, inaam-rana, jtolmer, MarkCallaghan
    
    Differential Revision: https://reviews.facebook.net/D15891
    Differential Revision: https://reviews.facebook.net/D16947
  12. @steaphangreene

    Add trx pointer to struct mtr_t

    steaphangreene authored
    Summary:
    Feature: Basic Code Changes
    
    This adds a pointer to the trx to each mtr.
    This allows the trx to be accessed in parts of the code
    where it was otherwise not available.
    
    Other than adding the extra field in the structure,
    and filling it properly, this change, on its own, should
    have no effect.  It is basically a non-change.
    
    This is a base change required for lots of stuff,
    including innodb_fake_changes, table stats, etc....
    
    I am factoring this out to allow diff re-ordering.
    
    Test Plan:
    Build is clean, and so are mtr tests.
    
    This code was factored out of the existing table stats diff.
    There are no overall code changes once table stats diff is applied.
    
    This change has	been running in	production for about a year now.
    All is still well, so this is pretty safe.
    
    Reviewers: pivanof, inaam-rana, liang.guo.752
    
    Reviewed By: pivanof
    
    CC: jtolmer, MarkCallaghan, flamingcow, jeremycole, andrew-ford
    
    Differential Revision: https://reviews.facebook.net/D16209
  13. @steaphangreene

    Share more structures

    steaphangreene authored
    Summary:
    Feature: Basic Code Changes
    
    This just moves some structure definitions from inside a
    single .cc file to a shared .h file, with a few tweaks to
    allow these structures to be shared.
    
    On its own, it should have no actual effect.  It is a non-change.
    
    This is a base change required for lots of stuff,
    including innodb_fake_changes, stats, etc....
    
    I am factoring this out to allow diff re-ordering.
    
    Test Plan:
    Build is clean, and so are mtr tests.
    
    This code was factored out of the existing basic stats diff.
    There are no overall code changes once that diff is applied.
    
    This change has been running in production for about a year now.
    All is still well, so this is pretty safe.
    
    Reviewers: pivanof, inaam-rana, liang.guo.752
    
    Reviewed By: pivanof
    
    CC: jtolmer, MarkCallaghan, flamingcow, jeremycole, andrew-ford
    
    Differential Revision: https://reviews.facebook.net/D16203
  14. @steaphangreene

    Disable PerfSchema By Default

    steaphangreene authored
    Summary:
    Feature: Basic Performance Fixes
    
    Entirely disables building of PerfSchema by default for all builds.
    
    PerfSchema turned out to have too much overhead to be worth it:
    
    www.facebook.com/notes/mysql-at-facebook/my-mysql-is-faster-than-your-mysql/10151250402570933
    
    There was a hard-coded check of perfschema values in:
    	main.mysql_client_test
    ...so I removed that code, and that check.
    
    Test Plan:
    I confirmed that, by default, it now builds this with perfschema off.
    Built both with internal tools, and with plain cmake/make.
    
    Instrumented the code and cmake configs to confirm PS is still
    completely disabled by default, and completely enabled when
    cmake is passed -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 - all works.
    
    Reviewers: pivanof
    
    Reviewed By: pivanof
    
    CC: jtolmer, MarkCallaghan, flamingcow, jeremycole, andrew-ford, inaam-rana, liang.guo.752
    
    Differential Revision: https://reviews.facebook.net/D16671
  15. @steaphangreene

    Avoid unnecessary buf_flush_list() in startup code path

    Inaam Rana authored steaphangreene committed
    Summary:
    Feature: Basic Performance Fixes
    
    This is a performance regression bug in upstream code. Opened
    Bug#70899 to track this.
    
    In InnoDB startup code innobase_start_or_create_for_mysql()
    after creating rsegs we flush the entire buffer pool. The
    intent is to force trx_sys page to the disk. We can reach
    this code path after doing recovery. In this case we can
    potentially have millions of dirty pages in the buffer pool.
    This can seriously increase the recovery time.
    
    The fix is trivial. Check if we are coming from recovery code
    path and don't flush buffer pool in that case because during
    recovery we don't create rsegs.
    
    Test Plan: run mtr
    
    Reviewers: pivanof, steaphan, liang.guo.752
    
    Reviewed By: steaphan
    
    CC: jtolmer, MarkCallaghan, flamingcow, jeremycole, andrew-ford, pengt
    
    Differential Revision: https://reviews.facebook.net/D16623
  16. @steaphangreene

    Add basic suite of innodb stress tests

    steaphangreene authored
    Summary:
    Feature: Stress Tests
    
    This is a port of all stress, bigstress, and hugestress tests to 5.6.
    
    This is a complete port, except:
    
    Removed all *_gc.test.  These tested a group commit mechanism that
    is not in 5.6, and will never be ported to it.
    
    This can stress test secondary indexes as well, but this is disabled.
    
    Removed extra innodb_file_format_check.   It is no longer needed in 5.6.
    
    Updated results files (partly with --record, partly manually).
    
    Commit every 100 inserts while populating the tables.
    
    Properly restart the master in innodb_stress.inc
    
    Verify secondary index count after all stress test runs.
    
    Removed use of vars we've not (yet) ported.  These included:
    	innodb_zlib_wrap
    	innodb_log_compressed_pages
    	innodb_background_checkpoint
    	innodb_prepare_commit_mutex
    	innodb_prefix_index_cluster_optimization
    
    Updated and verified changes to all results files.
    
    Test Plan:
    Ran all the non-huge tests, and one huge test, myself, so far so good.
    Jenkins nightlies will start hammering these after this is pushed.
    
    Reviewers: flamingcow, pivanof, jeremycole, andrew-ford, inaam-rana
    
    Reviewed By: pivanof
    
    CC: jtolmer, MarkCallaghan
    
    Differential Revision: https://reviews.facebook.net/D15759
  17. @chipturner @steaphangreene

    Protect against writing to nullptr in net_write_buff

    chipturner authored steaphangreene committed
    Summary:
    Feature: Basic Bug Fixes
    
    There are reports of segfaults from mysql trying to write when
    there is no valid write buffer (typically after an aborted connect,
    apparently).  This protects against writing to net->write_buf when it
    isn't valid.
    
    It's not fully clear if this is a 5.6 issue or an issue with the async
    patch.  The codepaths using it seem to trigger only in very rare cases
    and are inside of conenction pooling code that retries connections using
    the same MYSQL object, which is arguably invalid to begin with.
    
    Test Plan: mtr
    
    Reviewers: pivanof, inaam-rana
    
    Reviewed By: pivanof
    
    CC: jtolmer, MarkCallaghan, flamingcow, jeremycole, andrew-ford, liang.guo.752, chip
    
    Differential Revision: https://reviews.facebook.net/D17013
  18. @chipturner @steaphangreene

    Fix a bug with unsigned arithmetic

    chipturner authored steaphangreene committed
    Summary:
    Feature: Basic Bug Fixes
    
    There was an SQL_MODE option for subtracting underflows, but not for
    adding negative overflow.  This fixes it by moving the check to the
    parent arithmetic class.
    
    Also, allow global NO_UNSIGNED_SUBTRACTION to override sql_mode in
    replication thread.
    
    sql_mode is part of replication events, and therefore almost all
    sql_mode settings are ignored by the replication thread.  This breaks
    replicating from 5.1->5.6 because of behavior of unsigned underflow.
    This diff allows NO_UNSIGNED_SUBTRACTION to pierce into the replication
    thread if it is set globally.
    
    Test Plan:
    mtr,
    replicate from 5.1 master, run on 5.6 replica
    test against failing replica,
    verify properly replicates in statement mode
    
    Reviewers: pivanof, inaam-rana, liang.guo.752
    
    Reviewed By: pivanof
    
    CC: jtolmer, MarkCallaghan, flamingcow, jeremycole, andrew-ford, chip
    
    Differential Revision: https://reviews.facebook.net/D16185
  19. @chipturner @steaphangreene

    Stop spawning dummy threads on client library initialization

    chipturner authored steaphangreene committed
    Summary:
    Feature: Basic Bug Fixes
    
    Let's revert the fix for Bug#24507.  To quote Monty from 2006:
    
    "After 1/2 a year, when all glibc versions are updated, we can delete
    this code."
    
    Note: The upstream glibc bug was fixed in 2006.
    
    Test Plan: jenkins
    
    Reviewers: pivanof, inaam-rana, liang.guo.752
    
    Reviewed By: pivanof
    
    CC: jtolmer, MarkCallaghan, flamingcow, jeremycole, andrew-ford
    
    Differential Revision: https://reviews.facebook.net/D16191
  20. @jtolmer @steaphangreene

    Preserve CLIENT_REMEMBER_OPTIONS flag for compressed connections

    jtolmer authored steaphangreene committed
    Summary:
    Feature: Basic Bug Fixes
    
    Keep the CLIENT_REMEMBER_OPTIONS bit set in the flags for the IO
    thread's connection so that on failure connecting to the master
    mysql_real_connect does not call mysql_close_free_options and stomp
    the connection timeout setting.
    
    Test Plan: mtr
    
    Reviewers: flamingcow, pivanof, jeremycole, andrew-ford, inaam-rana
    
    Reviewed By: pivanof
    
    CC: jtolmer, MarkCallaghan
    
    Differential Revision: https://reviews.facebook.net/D15771
  21. @steaphangreene

    Correct error in lower_case_table_names conditional

    steaphangreene authored
    Summary:
    Feature: Basic Bug Fixes
    
    This fixes http://bugs.mysql.com/64347 reported in 5.1,
    and apparently still not fixed in 5.6 or 5.7.
    
    Use binary string comparisons in dboptions hash when
    lower_case_table_names is zero, not when it is not zero.
    
    Added a test case to expose this problem should it ever recur.
    
    Test Plan: Included new test fails without this change, passes with it.
    
    Reviewers: flamingcow, pivanof, jeremycole, andrew-ford, inaam-rana
    
    Reviewed By: pivanof
    
    CC: jtolmer, MarkCallaghan
    
    Differential Revision: https://reviews.facebook.net/D15765
  22. @steaphangreene

    Don't require internal values, that should change, to not change

    steaphangreene authored
    Summary:
    Feature: Basic Test Fixes
    
    1) A number of PS tests show performance_schema_max_statement_classes
    along with the other PS variables.  This value is not important, and
    this number will just go up every time a new statement class is added.
    
    The only thing testing for this number accomplishes is the creation
    of pointless conflicts with all the diffs which introduce these.
    
    So, this one variable is now excluded from the output of those tests.
    
    2) Many internal values are included in the full output of
    'show engine performance_schema status', so this has the same issue.
    
    So, these tests were changed to hide the actual numerical values in
    the required test output.
    
    Test Plan: Jenkins - all other diffs that changed this output, no longer need to.
    
    Reviewers: pivanof
    
    Reviewed By: pivanof
    
    CC: jtolmer, MarkCallaghan, flamingcow, jeremycole, andrew-ford, inaam-rana, liang.guo.752
    
    Differential Revision: https://reviews.facebook.net/D16665
  23. @steaphangreene

    Stabilize SHOW PROCESSLIST tests

    steaphangreene authored
    Summary:
    Feature: Basic Test Fixes
    
    A few tests used the output from SHOW PROCESSLIST, without sorting the
    output, making them possibly unstable.  Added a sort to all of these.
    
    Plus, there is a race in show processlist, which shows the actual
    show processlist run as either "init" or "cleaning up".  To avoid
    the test inconsistency, I replace both with "STATE" in these tests.
    
    Test Plan: All mtr tests now pass with and without PerfSchema enabled.
    
    Reviewers: pivanof
    
    Reviewed By: pivanof
    
    CC: jtolmer, MarkCallaghan, flamingcow, jeremycole, andrew-ford, inaam-rana, liang.guo.752
    
    Differential Revision: https://reviews.facebook.net/D16659
  24. @steaphangreene

    Use single quotes for perl paths, in case of special symbols

    steaphangreene authored
    Summary:
    Feature: Basic Test Fixes
    
    Jenkins sometimes puts an @ in the directory name.
    
    With this value in "s, in perl, that is interpreted as a list, and fails.
    
    With it in 's, it works fine.
    
    Test Plan:
    Changed my 5.6 dir to 5@6, and mtr failed.
    With this change, it now passes.
    
    Reviewers: flamingcow, pivanof, jeremycole, andrew-ford, inaam-rana, liang.guo.752
    
    Reviewed By: pivanof
    
    CC: jtolmer, MarkCallaghan
    
    Differential Revision: https://reviews.facebook.net/D15945
  25. @steaphangreene

    Split mysqld--help-notwin into tests with and without profiling

    steaphangreene authored
    Summary:
    Feature: Basic Test Fixes
    
    If we build with perfschema, this test can't work, since we disable
    profiling for release builds, but not debug builds, and thus have
    different command-line parameters for each build.
    
    This splits this test so it can actually work, when it's actually run,
    by splitting it into profiling and non-profiling versions.
    
    This diff also adds the ability to support a 'have_noprofiling" test.
    
    Test Plan: When perfschema is enabled, these tests pass.
    
    Reviewers: flamingcow, pivanof, jeremycole, andrew-ford, inaam-rana
    
    Reviewed By: pivanof
    
    CC: jtolmer, MarkCallaghan
    
    Differential Revision: https://reviews.facebook.net/D15753
  26. @steaphangreene

    Limit a test with hard-coded values to 16k page size

    steaphangreene authored
    Summary:
    Feature: Basic Test Fixes
    
    This test is testing the limits of 16k pages.
    
    Test Plan:
    Doubled the minimum and ran it again, passes with 32k pages.
    Without that change, it fails.
    
    Reviewers: flamingcow, pivanof, jeremycole, andrew-ford, inaam-rana
    
    Reviewed By: pivanof
    
    CC: jtolmer, MarkCallaghan
    
    Differential Revision: https://reviews.facebook.net/D15747
  27. @steaphangreene

    Allow more time to restart in tests in 5.6

    steaphangreene authored
    Summary:
    Feature: Basic Test Fixes
    
    Debug builds are slow, so some big tests time-out on restart.
    
    This changes the hard-coded test restart timeout to roughly 5 minutes,
    instead of the previous value of roughly 50 seconds.
    
    Test Plan: Jenkins' nighly tests will show if this fixes the occasional fails.
    
    Reviewers: flamingcow, pivanof, jeremycole, andrew-ford, inaam-rana
    
    Reviewed By: pivanof
    
    CC: jtolmer, MarkCallaghan
    
    Differential Revision: https://reviews.facebook.net/D15741
  28. @steaphangreene

    Disable massive myisam test in debug mode

    steaphangreene authored
    Summary:
    Feature: Basic Test Fixes
    
    This test takes way too long in debug mode, keeping it in release.
    
    Test Plan:
    Jenkins nightly tests can't complete this one.
    
    mysqltest.sh --nobuild --big large_tests.alter_table
    large_tests.alter_table  [ skipped ]  Test requires: 'have_nodebug'
    
    Reviewers: flamingcow, pivanof, jeremycole, andrew-ford, inaam-rana
    
    Reviewed By: pivanof
    
    CC: jtolmer, MarkCallaghan
    
    Differential Revision: https://reviews.facebook.net/D15735
  29. @steaphangreene

    Don't test for internal jibba-jabba

    steaphangreene authored
    Summary:
    Feature: Basic Test Fixes
    
    Removed the volatile internal hash info from the test results.
    
    These should never be tested for, since they change anytime someone
    changes the yacc spec.
    
    Test Plan:
    Re-ran the modified tests, they pass.
    Viewed results, they don't include hashes.
    
    Reviewers: flamingcow, pivanof, jeremycole, andrew-ford, inaam-rana
    
    Reviewed By: pivanof
    
    CC: jtolmer, MarkCallaghan
    
    Differential Revision: https://reviews.facebook.net/D15729
  30. @steaphangreene

    Fix "parts" suite tests

    steaphangreene authored
    Summary:
    Feature: Basic Test Fixes
    
    Basically, these tests have paths restricted, but use paths outside that.
    
    So, big surprise, lots of fail.
    
    Ideally, they would just tune the restriction for those particular
    tests which use paths other than the VARDIR.
    
    But, in the meantime, this just disables that restriction for that suite.
    
    Test Plan: Jenkins - all pass.
    
    Reviewers: flamingcow, pivanof, jeremycole, andrew-ford, inaam-rana
    
    Reviewed By: pivanof
    
    CC: jtolmer, MarkCallaghan
    
    Differential Revision: https://reviews.facebook.net/D15723
  31. @steaphangreene

    Mark one test as requiring profiling support

    steaphangreene authored
    Summary:
    Feature: Basic Test Fixes
    
    This test needs profiling, but wasn't marked as such.
    
    This fixes that.
    
    Test Plan: Jenkins - all pass now.
    
    Reviewers: flamingcow, pivanof, jeremycole, andrew-ford, inaam-rana
    
    Reviewed By: pivanof
    
    CC: jtolmer, MarkCallaghan
    
    Differential Revision: https://reviews.facebook.net/D15717
  32. @steaphangreene

    Remove hard-coded aio disable from mtr

    steaphangreene authored
    Summary:
    Feature: Basic Test Fixes
    
    An obsolete hard-coded limit in mtr prevented testing using aio with --mem.
    
    Confirmed this is completely obsolete in all our kernels, then removed it.
    
    Note: This bug was fixed in the linux-2.6.27 release:
    	http://kernelnewbies.org/Linux_2_6_27
    
    Test Plan: Jenkins: 'arc unit' - all tests still pass.
    
    Reviewers: flamingcow, pivanof, jeremycole, andrew-ford, inaam-rana
    
    Reviewed By: pivanof
    
    CC: jtolmer, MarkCallaghan
    
    Differential Revision: https://reviews.facebook.net/D15711
  33. @chipturner @steaphangreene

    Bump the ram our tests use

    chipturner authored steaphangreene committed
    Summary:
    Feature: Basic Test Fixes
    
    8M should be enough for anyone.  Except, no, it isn't.  Bloat
    up to 32M, which beyond a doubt will be enough for anyone ever.
    
    Test Plan: run mtr
    
    Reviewers: flamingcow, pivanof, jeremycole, andrew-ford, inaam-rana
    
    Reviewed By: pivanof
    
    CC: jtolmer, MarkCallaghan
    
    Differential Revision: https://reviews.facebook.net/D15705
  34. @jtolmer @steaphangreene

    Update valgrind suppression for gcc 4.8.1 / glibc 2.17

    jtolmer authored steaphangreene committed
    Summary:
    Feature: Basic Test Fixes
    
    One existing valgrind suppression was not getting triggered because
    the call stack is slightly different in newer libs.  So, reduce the
    detail a bit to catch this in each version.
    
    Also add a new supression to cover this known sendmsg bug:
    
    	http://sourceware.org/bugzilla/show_bug.cgi?id=14687
    
    Test Plan:
    Jenkins
    arc unit --everything
    
    Reviewers: flamingcow, pivanof, jeremycole, andrew-ford, inaam-rana
    
    Reviewed By: pivanof
    
    CC: jtolmer, MarkCallaghan
    
    Differential Revision: https://reviews.facebook.net/D15699
  35. @steaphangreene

    Remove bad "" operators

    steaphangreene authored
    Summary:
    Feature: Basic Code Fixes
    
    In C++11, "" is not parsed as before.  So "A""B" is not the same as "AB".
    
    Instead, whitespace is required, like: "A" "B"
    
    This adds that whitespace everywhere gcc-4.7 found it in our builds.
    
    Test Plan:
    Built with gcc-4.7.
    'git show -w' shows zero changes.
    
    Reviewers: flamingcow, pivanof, jeremycole, andrew-ford, inaam-rana
    
    Reviewed By: pivanof
    
    CC: jtolmer, MarkCallaghan
    
    Differential Revision: https://reviews.facebook.net/D15693
Something went wrong with that request. Please try again.