1. 17 Sep, 2009 2 commits
  2. 16 Sep, 2009 4 commits
  3. 15 Sep, 2009 2 commits
  4. 13 Sep, 2009 2 commits
    • Luis Soares's avatar
      BUG#47016: rpl_do_grant fails on PB-2 with a failing connect · 63a81c09
      Luis Soares authored
            
      The test case rpl_do_grant fails sporadically on PB2 with "Access
      denied for user 'create_rout_db'@'localhost' ...". Inspecting the
      test case, one may find that if issues a GRANT on the master
      connection and immediately after it creates two new connections
      (one to the master and one to the slave) using the credentials
      set with the GRANT.
            
      Unfortunately, there is no synchronization between master and
      slave after the grant and before the connections are
      established. This can result in slave not having executed the
      GRANT by the time the connection is attempted.
            
      This patch fixes this by deploying a sync_slave_with_master
      between the grant and the connections attempt.
      63a81c09
    • Luis Soares's avatar
      BUG#47014: rpl_drop_temp fails on PB-2 with results mismatch · 3c916057
      Luis Soares authored
            
      The test case creates two temporary tables, then closes the
      connection, waits for it to disconnect, then syncs the slave with
      the master, checks for remaining opened temporary tables on
      slave (which should be 0) and finally drops the used
      database (mysqltest).
            
      Unfortunately, sometimes, the test fails with one open table on
      the slave. This seems to be caused by the fact that waiting for
      the connection to be closed is not sufficient. The test needs to
      wait for the DROP event to be logged and only then synchronize
      the slave with the master and proceed with the check. This is
      caused by the asynchronous nature of the disconnect wrt
      binlogging of the DROP temporary table statement.
            
      We fix this by deploying a call to wait_for_binlog_event.inc
      on the test case, which makes execution to wait for the DROP
      temp tables event before synchronizing master and slave.
      3c916057
  5. 11 Sep, 2009 2 commits
    • Mattias Jonsson's avatar
      merge · 23dc8abe
      Mattias Jonsson authored
      23dc8abe
    • Ramil Kalimullin's avatar
      Fix for bug#47130: misplaced or redundant check for null pointer? · b6c16b32
      Ramil Kalimullin authored
      Problem: LOGGER::general_log_write() relied on valid "thd" parameter passed
      but had inconsistent "if (thd)" check.
      
      Fix: as we always pass a valid "thd" parameter to the method, 
      redundant check removed.
      
      
      sql/log.cc:
        Fix for bug#47130: misplaced or redundant check for null pointer?
          - code clean-up, as we rely on the "thd" parameter in the
        LOGGER::general_log_write(), redundant "if (thd)" check removed, 
        added assert(thd) instead.
      b6c16b32
  6. 10 Sep, 2009 11 commits
  7. 09 Sep, 2009 6 commits
    • Ingo Struewing's avatar
      Bug#17332 - changing key_buffer_size on a running server · 9c97dbab
      Ingo Struewing authored
                  can crash under load
      
      Merge from 5.0, after backport from 5.1/5.4 to 5.0.
      This makes the fixes for
      Bug 44068 (RESTORE can disable the MyISAM Key Cache)
      Bug 40944 (Backup: crash after myisampack)
      available to 5.1.
      9c97dbab
    • Georgi Kodinov's avatar
      null merge of the 5.0 test cleanup · 0d7ee91c
      Georgi Kodinov authored
      0d7ee91c
    • Joerg Bruehe's avatar
      55eb4962
    • Sergey Vojtovich's avatar
      BUG#29203 - archive tables have weird values in show table status · 04ed3c9d
      Sergey Vojtovich authored
      Archive engine returns wrong values for average record length
      and max data length.
      
      With this fix they're calculated as following:
      - max data length is 2 ^ 63 where large files are supported
        and INT_MAX32 where this is not supported;
      - average record length is data length / records in data file.
      
      mysql-test/r/archive.result:
        A test case for BUG#29203.
      mysql-test/t/archive.test:
        A test case for BUG#29203.
      storage/archive/ha_archive.cc:
        Better estimation for average row length and maximal data
        file length.
      04ed3c9d
    • Sergey Vojtovich's avatar
      BUG#45638 - Create temporary table with engine innodb fails · 3228a2be
      Sergey Vojtovich authored
      Create temporary InnoDB table fails on case insensitive
      filesystems, when lower_case_table_names is 2 (e.g. OS X)
      and temporary directory path contains upper case letters.
      
      The problem was that tmpdir prefix was converted to lower
      case when table was created, but was passed as is when
      table was opened.
      
      Fixed by leaving tmpdir prefix part intact.
      
      mysql-test/r/lowercase_mixed_tmpdir_innodb.result:
        A test case for BUG#45638.
      mysql-test/t/lowercase_mixed_tmpdir_innodb-master.opt:
        A test case for BUG#45638.
      mysql-test/t/lowercase_mixed_tmpdir_innodb-master.sh:
        A test case for BUG#45638.
      mysql-test/t/lowercase_mixed_tmpdir_innodb.test:
        A test case for BUG#45638.
      sql/handler.cc:
        Fixed get_canonical_filename() to not lowercase filesystem
        path prefix for temporary tables.
      3228a2be
    • Georgi Kodinov's avatar
      Bug #45159 Part 1 : rejuvenate the jp test suite using normal run. · 24f103e3
      Georgi Kodinov authored
      Updates the results of all the out-dated test suites and adds 
      the special mysqltest command to enable innodb for the tests that need it.
      24f103e3
  8. 08 Sep, 2009 6 commits
    • Joerg Bruehe's avatar
      Make sure that variables which are (or may be) used · 36703050
      Joerg Bruehe authored
      in an ".opt" file are defined to some value (even
      if it is empty). Without this, a test suite run
      aborted on Windows for "embedded".
      
      This fix was applied dusing the build of 5.4.2-beta.
      
      
      mysql-test/mysql-test-run.pl:
        From the code (function "envsubst()"), it is obvious
        that any variable which is used in an ".opt" file needs
        to be defined.
        If the value is wrong, starting the server may fail -
        but if the variable is undefined, the whole test suite
        will abort.
        
        So variables which are used in an ".opt" file should
        always be defined to some value, even if it is blank.
        
        This fix may be overkill, I did not check in detail
        whether all these variables are really used in an ".opt"
        file - but some are.
      36703050
    • Joerg Bruehe's avatar
      The former "Instance Manager" (program "mysqlmanager") · eb26de23
      Joerg Bruehe authored
      is not being built in 5.4.2-beta,
      so it cannot be included in a RPM:
      Remove both the program and the man page from the spec file.
      
      This patch was applied during the build of 5.4.2-beta.
      eb26de23
    • Joerg Bruehe's avatar
      Some fixes to make 5.4.2-beta compile on the less common · deab1e9c
      Joerg Bruehe authored
      platforms like AIX, HP-UX, and Solaris 8.
      
      All these are upmerges from 5.1 which came too late to be
      included when 5.4.2-beta was cloned, so they were applied
      during the build phase.
      deab1e9c
    • Joerg Bruehe's avatar
      This is the 5.4 version of the fix for bug#47007 · 29d0fa12
      Joerg Bruehe authored
         Unresolved reference to 'innodb_system_libs' in "mysql_config"
      
      In 5.4.2, we use InnoDB 1.0.4 which does file IO via separate
      threads, opposed to the use of asynchronous IO previously.
      
      So there is no InnoDB call to "aio_read()" which was searched
      in "librt", causing a "-lrt" value of "innodb_system_libs",
      that whole variable is gone.
      
      This fix was applied in the build of 5.4.2-beta.
      
      scripts/Makefile.am:
        There is no "innodb_system_libs" variable any more,
        so it cannot be replaced by its value.
      scripts/mysql_config.pl.in:
        InnoDB does not need any platform-specific libraries any more,
        "innodb_system_libs" may go.
      scripts/mysql_config.sh:
        InnoDB does not need any platform-specific libraries any more,
        "innodb_system_libs" may go.
      29d0fa12
    • Georgi Kodinov's avatar
      automerge · 0ab24bef
      Georgi Kodinov authored
      0ab24bef
    • Alexey Kopytov's avatar
      Automerge. · 0a7e4186
      Alexey Kopytov authored
      0a7e4186
  9. 07 Sep, 2009 5 commits
    • Ingo Struewing's avatar
      Bug#17332 - changing key_buffer_size on a running server · 540b2dc0
      Ingo Struewing authored
                  can crash under load
      
      Backport from 5.1.
      Does also include key cache fixes from:
      Bug 44068 (RESTORE can disable the MyISAM Key Cache)
      Bug 40944 (Backup: crash after myisampack)
      
      
      
      include/keycache.h:
        Bug#17332 - changing key_buffer_size on a running server
                    can crash under load
        Added KEY_CACHE components in_resize and waiting_for_resize_cnt.
      myisam/mi_preload.c:
        Bug#17332 - changing key_buffer_size on a running server
                    can crash under load
        Added code to allow LOAD INDEX to load indexes of different block size.
      mysys/mf_keycache.c:
        Bug#17332 - changing key_buffer_size on a running server
                    can crash under load
        .
        Changed resize_key_cache() to not disable the key cache
        after the flush phase. Changed queue handling to use
        standard functions. Wake all threads waiting on resize_queue.
        We can now have read/write threads waiting there (see below).
        .
        Combined add_to_queue() and the wait loops that were always
        following it to the new function wait_on_queue().
        Combined release_queue() and the condition that was always
        preceding it to the new function release_whole_queue().
        .
        Added code to flag and respect the exceptional situation
        BLOCK_IN_EVICTION.
        .
        Rewrote the resize branch of find_key_block().
        .
        Added code to the eviction handling in find_key_block()
        to catch more exceptional cases.
        .
        Changed key_cache_read(), key_cache_insert() and key_cache_write()
        so that they lock keycache->cache_lock whenever the key cache is
        initialized. Checking for a disabled cache and incrementing and
        decrementing the "resize counter" is always done within the lock.
        Locking and unlocking as well as counting the "resize counter" is
        now done once outside the loop. All three functions can now handle
        a NULL return from find_key_block. This happens in the flush phase
        of a resize and demands direct file I/O. Care is taken for
        secondary requests (PAGE_WAIT_TO_BE_READ) to wait in any case.
        Moved block status changes behind the copying of buffer data.
        key_cache_insert() does now read the block if the caller did
        supply less data than a full cache block.
        key_cache_write() does now take care of parallel running flushes
        (BLOCK_FOR_UPDATE, BLOCK_IN_FLUSHWRITE).
        .
        Changed free_block() to un-initialize block variables in the
        correct order and respect an exceptional BLOCK_IN_EVICTION state.
        .
        Changed flushing to take care for parallel running writes.
        Changed flushing to avoid freeing blocks in eviction.
        Changed flushing to consider that parallel writes can move blocks
        from the file_blocks hash to the changed_blocks hash.
        Changed flushing to take care for other parallel flushes.
        Changed flushing to assure that it ends with everything flushed.
        Optimized normal flush at end of statement (FLUSH_KEEP),
        but let other flush types be stringent.
        .
        Added some comments and debugging statements.
      mysys/my_static.c:
        Bug#17332 - changing key_buffer_size on a running server
                    can crash under load
        Removed an unused global variable.
      sql/ha_myisam.cc:
        Bug#17332 - changing key_buffer_size on a running server
                    can crash under load
        Moved an automatic (stack) variable to the scope where it is used.
      sql/sql_table.cc:
        Bug#17332 - changing key_buffer_size on a running server
                    can crash under load
        Changed TL_READ to TL_READ_NO_INSERT in mysql_preload_keys.
      540b2dc0
    • Martin Hansson's avatar
      Bug#46259: Merge · fe3b6356
      Martin Hansson authored
      fe3b6356
    • Mikael Ronstrom's avatar
      Automerge · bdd43744
      Mikael Ronstrom authored
      bdd43744
    • Martin Hansson's avatar
      Bug#46259: 5.0.83 -> 5.1.36, query doesn't work · 2cb3a131
      Martin Hansson authored
            
      The parser rule for expressions in a udf parameter list contains 
      two hacks: 
      First, the parser input stream is read verbatim, bypassing 
      the lexer.
      Second, the Item::name field is overwritten. If the argument to a
      udf was a field, the field's name as seen by name resolution was
      overwritten this way.
      If the field name was quoted or escaped, it would appear as e.g. "`field`".
      Fixed by not overwriting field names.
      
      mysql-test/r/udf.result:
        Bug#46259: Test result.
      mysql-test/t/udf.test:
        Bug#46259: Test case.
      sql/sql_yacc.yy:
        Bug#46259: Fix.
      2cb3a131
    • Mikael Ronstrom's avatar