1. 31 Jul, 2004 3 commits
    • unknown's avatar
      Fix for: · 00e7ec42
      unknown authored
      Bug #4810 "deadlock with KILL when the victim was in a wait state"
      (I included mutex unlock into exit_cond() for future safety)
      and BUG#4827 "KILL while START SLAVE may lead to replication slave crash"
      
      
      sql/lock.cc:
        we did exit_cond() before unlock(LOCK_open), which led to deadlocks with THD::awake(). Fixing this.
      sql/log.cc:
        mutex unlock is now included in exit_cond()
      sql/repl_failsafe.cc:
        we did exit_cond() before unlock(LOCK_rpl_status), which led to deadlocks with THD::awake(). Fixing this.
      sql/slave.cc:
        we did exit_cond() before unlock(cond_lock), which led to deadlocks with THD::awake(). Fixing this.
        Fixing also that if killed while waiting for slave thread to start, we don't release the mutex
        (that caused a double release of the mutex => crash).
      sql/sql_class.h:
        comments about exit_cond()/enter_cond().
        Mutex unlock is now included in exit_cond() so that it's always done in the good order.
      sql/sql_table.cc:
        unlock is now included in exit_cond().
      00e7ec42
    • unknown's avatar
      Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-4.0 · 42ed0103
      unknown authored
      into mysql.com:/home/mysql_src/mysql-4.0
      
      
      42ed0103
    • unknown's avatar
      removing assertion (will be moved to 4.1) for non-debug to compile · 6ce5da27
      unknown authored
      
      sql/sql_class.h:
        removing the assertion as I don't want to include assert.h (inclusion of assert.h has already been
        reworked in 4.1, so I'll move the assertion to 4.1). Assertion makes compilation fail if non-debug.
      6ce5da27
  2. 30 Jul, 2004 8 commits
    • unknown's avatar
      Merge bk-internal:/home/bk/mysql-4.0/ · 27138257
      unknown authored
      into serg.mylan:/usr/home/serg/Abk/mysql-4.0
      
      
      27138257
    • unknown's avatar
      install-sh: copy not move like any reasonably modern install does · c5e1e154
      unknown authored
      
      install-sh:
        copy not move like any reasonably modern install does
      c5e1e154
    • unknown's avatar
      Merge marko@build.mysql.com:/home/bk/mysql-4.0 · aa755c86
      unknown authored
      into hundin.mysql.fi:/home/marko/k/mysql-4.0
      
      
      aa755c86
    • unknown's avatar
      row0sel.c, page0page.ic: · 5055d66b
      unknown authored
        Add still more diagnostic code to track buffer pool corruption in one AMD64/Linux computer
      
      
      innobase/include/page0page.ic:
        Add still more diagnostic code to track buffer pool corruption in one AMD64/Linux computer
      innobase/row/row0sel.c:
        Add still more diagnostic code to track buffer pool corruption in one AMD64/Linux computer
      5055d66b
    • unknown's avatar
      dict0crea.c: · 4c939a79
      unknown authored
        Restore accidentally deleted comment to dict_create_sys_tables_tuple()
      
      
      innobase/dict/dict0crea.c:
        Restore accidentally deleted comment to dict_create_sys_tables_tuple()
      4c939a79
    • unknown's avatar
      Merge lgrimmer@build.mysql.com:/home/bk/mysql-4.0 · 3974f1cf
      unknown authored
      into mysql.com:/space/my/mysql-4.0
      
      
      3974f1cf
    • unknown's avatar
      - make sure the Windows "-classic" server binaries actually include · a036c5c7
      unknown authored
         "-classic" in the version string
      
      
      a036c5c7
    • unknown's avatar
      sql_class.h: · 5dbde191
      unknown authored
        removing safe_mutex_assert_owner, as it would require an include,
        and Konstantin already has cleaned up things with assert.h in 4.1;
        so I'll put the safe_mutex_assert_owner in 4.1 instead.
      
      
      sql/sql_class.h:
        removing safe_mutex_assert_owner, as it would require an include,
        and Konstantin already has cleaned up things with assert.h in 4.1;
        so I'll put the safe_mutex_assert_owner in 4.1 instead.
      5dbde191
  3. 29 Jul, 2004 5 commits
    • unknown's avatar
      Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-4.0 · 4b202233
      unknown authored
      into mysql.com:/home/mysql_src/mysql-4.0
      
      
      4b202233
    • unknown's avatar
      Reverting a line I had just added to slave.cc (mutex is already locked · 1adf793d
      unknown authored
      when we come at this place).
      
      
      sql/slave.cc:
        stupid me; this line is a mistake
      1adf793d
    • unknown's avatar
      Avoiding a theoretically possible crash (pthread_mutex_lock(0)) which could... · d475643d
      unknown authored
      Avoiding a theoretically possible crash (pthread_mutex_lock(0)) which could (at least in POSIX Threads books)
      happen on SMP machines, when a thread is going to wait on a condition and it is KILLed at the
      same time.
      Cleaning code a bit by adding a test in enter_cond() that we have the mutex (was already the case in all places
      where it's called except one which is fixed here).
      
      
      sql/log.cc:
        safe_mutex_assert_owner() is now in THD::enter_cond()
      sql/slave.cc:
        lock mutex before waiting on condition.
      sql/sql_class.cc:
        THD::awake(): before locking the mutex, let's test it's not zero;
        in theory indeed, the killer thread may see current_cond non-zero and current_mutex zero
        (order of assignments is not guaranteed by POSIX).
        A comment noting that there is still a small chance a KILL does not work and needs
        being re-issued.
      sql/sql_class.h:
        Assert in enter_cond() that we have the mutex.
        It is already the case in all places where we call enter_cond(), so better ensure it there.
      d475643d
    • unknown's avatar
      Merge bk-internal:/home/bk/mysql-4.0/ · 7936ec52
      unknown authored
      into serg.mylan:/usr/home/serg/Abk/mysql-4.0
      
      
      7936ec52
    • unknown's avatar
      language fix · 3a72d735
      unknown authored
      3a72d735
  4. 28 Jul, 2004 2 commits
  5. 27 Jul, 2004 4 commits
    • unknown's avatar
      buf0flu.c, os0file.c: · 5e33eb8e
      unknown authored
        Add more diagnostic code to determine when an lsn field gets corrupt; tracks a crash reported from one Itanium computer
      
      
      innobase/os/os0file.c:
        Add more diagnostic code to determine when an lsn field gets corrupt; tracks a crash reported from one Itanium computer
      innobase/buf/buf0flu.c:
        Add more diagnostic code to determine when an lsn field gets corrupt; tracks a crash reported from one Itanium computer
      5e33eb8e
    • unknown's avatar
      Merge bk-internal:/home/bk/mysql-4.0/ · a79b4c32
      unknown authored
      into serg.mylan:/usr/home/serg/Abk/mysql-4.0
      
      
      a79b4c32
    • unknown's avatar
      avoid functions in configure · f072ed1c
      unknown authored
      f072ed1c
    • unknown's avatar
      row0sel.c, page0page.ic: · 660bf876
      unknown authored
        Add diagnostic code to print hex dumps and track corruption of next record offsets in an index page
      
      
      innobase/include/page0page.ic:
        Add diagnostic code to print hex dumps and track corruption of next record offsets in an index page
      innobase/row/row0sel.c:
        Add diagnostic code to print hex dumps and track corruption of next record offsets in an index page
      660bf876
  6. 26 Jul, 2004 3 commits
  7. 23 Jul, 2004 4 commits
  8. 22 Jul, 2004 1 commit
    • unknown's avatar
      distclean: · 473eec23
      unknown authored
      	rm -f lex_hash.h
      BUG#4583
      
      
      473eec23
  9. 21 Jul, 2004 2 commits
  10. 20 Jul, 2004 1 commit
  11. 19 Jul, 2004 2 commits
  12. 18 Jul, 2004 1 commit
    • unknown's avatar
      Fix for BUG#4551 "Temporary InnoDB tables not replicated properly with CREATE TABLE .. SELECT" · 382ff793
      unknown authored
      The problem was that (for any storage engine), the created temporary table was not removed if CREATE SELECT failed (because
      of a constraint violation for example). This was not consistent with the manual and with CREATE SELECT (no TEMPORARY).
      
      
      sql/sql_insert.cc:
        Fix for BUG#4551 "Temporary InnoDB tables not replicated properly with CREATE TABLE .. SELECT"
        The problem was that (for any storage engine), the created temporary table was not removed if CREATE SELECT failed (because
        of a constraint violation for example). This was not consistent with the manual and with CREATE SELECT (no TEMPORARY).
        And it led to the above bug, because the binlogging of CREATE SELECT is done by select_insert::send_eof() (same function
        as INSERT SELECT) and so, if the table is transactional and there is a failure, the statement is considered as rolled
        back and so nothing is written in the binlog. So temp table MUST be deleted.
      382ff793
  13. 17 Jul, 2004 2 commits
    • unknown's avatar
      Merge gbichot@bk-internal.mysql.com:/home/bk/mysql-4.0 · 474c2578
      unknown authored
      into mysql.com:/home/mysql_src/mysql-4.0
      
      
      474c2578
    • unknown's avatar
      Fixes for · cf8dbcc6
      unknown authored
      BUG#4506 "mysqlbinlog --position --read-from-remote-server has wrong "# at" lines",
      BUG#4553 "Multi-table DROP TABLE replicates improperly for nonexistent table" with a test file.
      It was not possible to add a test for BUG#4506 as in the test suite we must use --short-form
      which does not display the "# at" lines.
      
      
      client/mysqlbinlog.cc:
        Fix for BUG#4506 "mysqlbinlog --position --read-from-remote-server has wrong "# at" lines"
        when reading a remote binlog, the start position is not always BIN_LOG_HEADER_SIZE (4).
      sql/sql_table.cc:
        Fix for BUG#4553 "Multi-table DROP TABLE replicates improperly for nonexistent table"
        we must my_error() _before_ we write to the binlog, so that a meaningful error code is available
        in thd->net.last_errno for storage of the DROP TABLE statement into the binlog.
      cf8dbcc6
  14. 15 Jul, 2004 2 commits
    • unknown's avatar
      InnoDB: limit the recursion depth for ON (UPDATE|DELETE) CASCADE · 13985521
      unknown authored
      (Bug #4446)
      
      
      innobase/row/row0ins.c:
        row_ins_foreign_check_on_constraint(): limit recursion for UPDATE too
      mysql-test/r/innodb.result:
        Add test for recursion depth limit
      mysql-test/t/innodb.test:
        Add test for recursion depth limit
      13985521
    • unknown's avatar
      btr0cur.c: · 9e6f6198
      unknown authored
        Do not add + 1 to the InnoDB index cardinality estimate if the B-tree just contains one page; the fix made in March 2004 caused InnoDB systematically to overestimate the cardinality of empty or small tables by 1
      
      
      innobase/btr/btr0cur.c:
        Do not add + 1 to the InnoDB index cardinality estimate if the B-tree just contains one page; the fix made in March 2004 caused InnoDB systematically to overestimate the cardinality of empty or small tables by 1
      9e6f6198