An error occurred fetching the project authors.
  1. 16 Dec, 2004 1 commit
  2. 03 Dec, 2004 1 commit
    • lars@mysql.com's avatar
      Due to a compiler bug, slave.cc:tables_ok() sometimes wrongly returns · f900433b
      lars@mysql.com authored
      1 if the return type is int or int_fast8_t.  The test case that showed
      this problem is rpl000001 and the tested version was MySQL 5.0.2.  The
      compiler with the problem is GCC 3.0.4 runing on "Linux bitch 2.4.18
      #2 Thu Apr 11 14:37:17 EDT 2002 sparc64 unknown".
      
      By changing the return type to bool the problem disappear.  (Another
      way to make the problem disappear is to simply print the returned
      value with printf("%d",?).  The printed returned value is always 0 in
      the test cases I have run.)  This is only a partial solution to the
      problem, since someone could later change the return type of the
      function back to int or some other type that does not work.
      f900433b
  3. 25 Nov, 2004 1 commit
  4. 17 Nov, 2004 1 commit
  5. 20 Oct, 2004 1 commit
  6. 19 Oct, 2004 1 commit
  7. 09 Sep, 2004 1 commit
  8. 14 May, 2004 1 commit
    • pem@mysql.comhem.se's avatar
      Post-merge fixes. · ec921065
      pem@mysql.comhem.se authored
      Note: One sp.test still fails (prime), and rpl_server_id2.test fails (will be fixed by guilhem ASAP).
      ec921065
  9. 28 Apr, 2004 1 commit
  10. 27 Apr, 2004 1 commit
  11. 06 Apr, 2004 1 commit
    • guilhem@mysql.com's avatar
      This is a fix for a bug in 3.23 -> 4.0 replication: Exec_master_log_pos is always · b5ffdec2
      guilhem@mysql.com authored
      too big by 6 bytes. So I add code to substract 6 bytes if the master is 3.23.
      This is not perfect (because it won't work if the slave I/O thread has not
      noticed yet that the master is 3.23), but as long as the slave I/O thread
      starts Exec_master_log_pos will be ok.
      It must be merged to 4.1 but not to 5.0 (or it can be, because of #if MYSQL_VERSION_ID),
      because 5.0 already works if the master is 3.23 (and in a more natural way:
      in 5.0 we store the end_log_pos in the binlog and relay log).
      I had to move functions from slave.h to slave.cc to satisfy gcc.
      b5ffdec2
  12. 17 Mar, 2004 1 commit
  13. 11 Mar, 2004 1 commit
    • guilhem@mysql.com's avatar
      Fix for BUG#2921 "Replication problem on mutex lock in mySQL-4.0.18": · cf287341
      guilhem@mysql.com authored
      re-using unused LOCK_active_mi to serialize all administrative
      commands related to replication:
      START SLAVE, STOP SLAVE, RESET SLAVE, CHANGE MASTER, init_slave()
      (replication autostart at server startup), end_slave() (replication
      autostop at server shutdown), LOAD DATA FROM MASTER.
      This protects us against a handful of deadlocks (like BUG#2921
      when two START SLAVE, but when two STOP SLAVE too).
      Removing unused variables.
      cf287341
  14. 10 Mar, 2004 3 commits
  15. 01 Mar, 2004 1 commit
    • guilhem@mysql.com's avatar
      Fix for BUG#3015 · bce65d4b
      guilhem@mysql.com authored
      "(binlog, position) stored by InnoDB for a replication slave can be wrong".
      This code contains conditional #if to distinguish between versions;
      it should be merged into 4.1 and 5.0.
      bce65d4b
  16. 26 Dec, 2003 1 commit
  17. 18 Dec, 2003 1 commit
    • guilhem@gbichot2's avatar
      This will be pushed only after I fix the testsuite. · 66a32e89
      guilhem@gbichot2 authored
      This is the main commit for Worklog tasks:
       * A more dynamic binlog format which allows small changes (1064)
       * Log session variables in Query_log_event (1063)
      Below 5.0 means 5.0.0.
      MySQL 5.0 is able to replicate FOREIGN_KEY_CHECKS, UNIQUE_KEY_CHECKS (for speed),
      SQL_AUTO_IS_NULL, SQL_MODE. Not charsets (WL#1062), not some vars (I can only think
      of SQL_SELECT_LIMIT, which deserves a special treatment). Note that this
      works for queries, except LOAD DATA INFILE (for this it would have to wait
      for Dmitri's push of WL#874, which in turns waits for the present push, so...
      the deadlock must be broken!). Note that when Dmitri pushes WL#874 in 5.0.1,
      5.0.0 won't be able to replicate a LOAD DATA INFILE from 5.0.1.
      Apart from that, the new binlog format is designed so that it can tolerate
      a little variation in the events (so that a 5.0.0 slave could replicate a
      5.0.1 master, except for LOAD DATA INFILE unfortunately); that is, when I
      later add replication of charsets it should break nothing. And when I later
      add a UID to every event, it should break nothing.
      The main change brought by this patch is a new type of event, Format_description_log_event,
      which describes some lengthes in other event types. This event is needed for
      the master/slave/mysqlbinlog to understand a 5.0 log. Thanks to this event,
      we can later add more bytes to the header of every event without breaking compatibility.
      Inside Query_log_event, we have some additional dynamic format, as every Query_log_event
      can have a different number of status variables, stored as pairs (code, value); that's
      how SQL_MODE and session variables and catalog are stored. Like this, we can later
      add count of affected rows, charsets... and we can have options --don't-log-count-affected-rows
      if we want.
      MySQL 5.0 is able to run on 4.x relay logs, 4.x binlogs.
      Upgrading a 4.x master to 5.0 is ok (no need to delete binlogs),
      upgrading a 4.x slave to 5.0 is ok (no need to delete relay logs);
      so both can be "hot" upgrades.
      Upgrading a 3.23 master to 5.0 requires as much as upgrading it to 4.0.
      3.23 and 4.x can't be slaves of 5.0.
      So downgrading from 5.0 to 4.x may be complicated.
      Log_event::log_pos is now the position of the end of the event, which is
      more useful than the position of the beginning. We take care about compatibility
      with <5.0 (in which log_pos is the beginning).
      I added a short test for replication of SQL_MODE and some other variables.
      TODO:
      - after committing this, merge the latest 5.0 into it
      - fix all tests
      - update the manual with upgrade notes.
      66a32e89
  18. 23 Nov, 2003 1 commit
    • guilhem@gbichot2's avatar
      Replication: · 05e5a35b
      guilhem@gbichot2 authored
      Now the I/O thread (in flush_master_info()) flushes the relay log to disk
      after reading every event. Slower but provides additionnal safety in case
      of brutal crash.
      I had to make the flush optional (i.e. add a if(some_bool_argument) in the function)
      because sometimes flush_master_info() is called when there is no usable
      relay log (the relay log's IO_CACHE is not initialized so can't be flushed).
      05e5a35b
  19. 02 Nov, 2003 1 commit
  20. 31 Oct, 2003 1 commit
    • guilhem@mysql.com's avatar
      4 small items in this: · c1f7f339
      guilhem@mysql.com authored
      - when we don't have in_addr_t, use uint32.
      - a forgotten initialization of slave_proxy_id in sql/log_event.cc (was not really "forgot", was
      "we needn't init it there", but there was one case where we needed...).
      - made slave_proxy_id always meaningful in THD and Log_event, so we can
      rely more on it (no need to test if it's meaningful). THD::slave_proxy_id
      is equal to THD::thread_id except for the slave SQL thread.
      - clean up the slave's temporary table (i.e. free their memory) when slave
      server shuts down.
      c1f7f339
  21. 08 Oct, 2003 1 commit
    • guilhem@gbichot2's avatar
      Final push for WL#1098: · c0075fa6
      guilhem@gbichot2 authored
      "Add a column "Timestamp_of_last_master_event_executed" in SHOW SLAVE STATUS".
      Finally this is adding
      - Slave_IO_State (a copy of the State column of SHOW PROCESSLIST for the I/O thread,
      so that the users, most of the time, has enough info with only SHOW SLAVE STATUS).
      - Seconds_behind_master. When the slave connects to the master it does SELECT UNIX_TIMESTAMP()
      on the master, computes the absolute difference between the master's and the slave's clock.
      It records the timestamp of the last event executed by the SQL thread, and does a
      small computation to find the number of seconds by which the slave is late.
      c0075fa6
  22. 02 Oct, 2003 1 commit
  23. 01 Oct, 2003 1 commit
  24. 13 Sep, 2003 1 commit
  25. 11 Sep, 2003 1 commit
  26. 01 Sep, 2003 1 commit
    • dlenev@dlenev.mshome's avatar
      Implemented replication over SSL · 2486222c
      dlenev@dlenev.mshome authored
       Added proper options to CHANGE MASTER TO, new fields to SHOW SLAVE STATUS,
       Honoring this parameters during connection to master.
       Introduced new format of master.info file
      2486222c
  27. 25 Aug, 2003 1 commit
  28. 07 Aug, 2003 1 commit
  29. 04 Aug, 2003 1 commit
    • guilhem@mysql.com's avatar
      2 bugfixes: · bb12d905
      guilhem@mysql.com authored
      - Bug #985: "Between RESET SLAVE and START SLAVE, SHOW SLAVE STATUS is wrong."
      Now RESET SLAVE puts correct info in mi->host etc. A new test rpl_reset_slave
      for that.
      - Bug #986: "CHANGE MASTER & START SLAVE do not reset error columns in SHOW
      SLAVE STATUS". Now these reset the errors.
      bb12d905
  30. 24 Jul, 2003 1 commit
    • guilhem@mysql.com's avatar
      WL#1036 (print the db in slave error messages). · df3b31f3
      guilhem@mysql.com authored
      I extended the task to cleaning error messages, making them look nicer,
      and making the output of SHOW SLAVE STATUS (column Last_error) be as complete
      as what's printed on the .err file;
      previously we would have, for a failure of a replicated LOAD DATA INFILE:
      - in the .err, 2 lines:
      "duplicate entry 2708 for key 1"
      "failed loading SQL_LOAD-5-2-2.info"
      - and in SHOW SLAVE STATUS, only:
      "failed loading SQL_LOAD-5-2-2.info".
      Now SHOW SLAVE STATUS will contain the concatenation of the 2 messages.
      df3b31f3
  31. 23 Jul, 2003 1 commit
  32. 06 Jul, 2003 1 commit
  33. 04 Jul, 2003 1 commit
  34. 02 Jul, 2003 1 commit
  35. 01 Jul, 2003 1 commit
    • kostja@oak.local's avatar
      First version of new authentification procedure: now authentification is... · 7df04758
      kostja@oak.local authored
      First version of new authentification procedure: now authentification is one-stage (instead of two-stage in 4.1)
      
      For now following tasks have been done:
      - PASSWORD() function was rewritten. PASSWORD() now returns SHA1
        hash_stage2; for new passwords user.password contains '*'hash_stage2; sql_yacc.yy also fixed; 
      
      - password.c: new functions were implemented, old rolled back to 4.0 state
      
      - server code was rewritten to use new authorization algorithm (check_user(), change
        user, and other stuff in sql/sql_parse.cc)
      
      - client code was rewritten to use new authorization algorithm
        (mysql_real_connect, myslq_authenticate in sql-common/client.c)
      
      - now server barks on 45-byte-length 4.1.0 passwords and refuses 4.1.0-style
        authentification. Users with 4.1.0 passwords are blocked (sql/sql_acl.cc)
      
      - mysqladmin.c was fixed to work correctly with new passwords
      
      Tests for 4.0-4.1.1, 4.1.1-4.1.1 (with or without db/password) logons was performed;
      mysqladmin also was tested. Additional check are nevertheless necessary.
      7df04758
  36. 12 Jun, 2003 1 commit
    • guilhem@mysql.com's avatar
      See each file's changeset for details. · cd365237
      guilhem@mysql.com authored
      - Comments for future devs.
      - Start_log_event::exec_event() : when we hit it, do a rollback.
      - We don't need LOG_EVENT_FORCED_ROTATE_F.
      - Stop_log_event::exec_event() : when we hit it, we needn't clean anything.
      - Removed LOG_EVENT_TIME_F and LOG_EVENT_FORCED_ROTATE_F.
      - We don't need Stop events in the relay log.
      - Now filtering of server id is done in the I/O thread first.
      cd365237
  37. 06 Jun, 2003 1 commit
    • guilhem@mysql.com's avatar
      Fix for bug 254 : · 60fb005e
      guilhem@mysql.com authored
      we now make a distinction between if the master is < 3.23.57, 3.23 && >=57, and 4.x
      (before the 2 3.23 were one). This is because in 3.23.57 we have a way to distinguish between
      a Start_log_event written at server startup and one written at FLUSH LOGS, so we
      have a way to know if the slave must drop old temp tables or not.
      Change: mi->old_format was bool, now it's enum (to handle 3 cases). However, functions
      which had 'bool old_format' as an argument have their prototypes unchanged, because
      the old old_format == 0 now corresponds to the enum value BINLOG_FORMAT_CURRENT which
      is equal to 0, so boolean tests are left untouched. The only case were we use mi->old_format
      as an enum instead of casting it implicitly to a bool, is in Start_log_event::exec_event,
      where we want to distinguish between the 3 possible enum values.
      60fb005e
  38. 04 Jun, 2003 1 commit