1. 23 Apr, 2009 1 commit
    • Vladislav Vaintroub's avatar
      Bug #42804 --parallel option does not work for MTR under ActiveState · 361fa972
      Vladislav Vaintroub authored
      perl 
      
      The problem here was the method how MTR gets its unique thread ids.
      Prior to this patch, the method to do it was to maintain a global 
      table of pid,mtr_unique_id) pairs. The table was backed by a text 
      file. The table was cleaned up one in a while and dead processes leaking
      unique_ids were determined with with kill(0) or with scripting tasklist
      on Windows.
      
      This method is flawed specifically on native Windows Perl. fork() is 
      implemented with starting a new thread, give it a syntetic negative PID
      (threadID*(-1)), until this thread creates a new process with exec()
      However,  neither tasklist nor any other native Windows tool can cope with
      negative perl PIDs. This lead to incorrect determination of dead process 
      and reusing already used mtr_unique_id.
      
      The patch introduces alternative portable  method of solving unique-id 
      problem. When a process needs a unique id in range [min...max], it just 
      starts  to open files named min, min+1,...max in a loop . After file is 
      opened, we do non-blocking flock(). When flock() succeeds, process has 
      allocated the ID. When process dies, file is unlocked . Checks for zombies 
      are not necessary.
      
      Since the change would create a co-existence problems with older version
      of MTR, because of different way to calculate IDs, the default ID range
      is changed from 250-299 to 300-349.
      
      Another fix that was necessary enable --parallel option was to serialize 
      spawn() calls on Windows. specifically, IO redirects needed to be protected.
      
      This patch also fixes hanging CRTL-C (as described in Bug #38629) for the
      "new"  MTR. The fix was already in 6.0 and is now downported.
      361fa972
  2. 17 Apr, 2009 1 commit
  3. 16 Apr, 2009 1 commit
  4. 08 Apr, 2009 1 commit
  5. 02 Apr, 2009 2 commits
  6. 01 Apr, 2009 5 commits
  7. 31 Mar, 2009 4 commits
  8. 30 Mar, 2009 1 commit
  9. 27 Mar, 2009 10 commits
  10. 26 Mar, 2009 5 commits
  11. 25 Mar, 2009 9 commits
    • Ramil Kalimullin's avatar
      Manual merge. · 6379cc00
      Ramil Kalimullin authored
      6379cc00
    • Ramil Kalimullin's avatar
      Auto-merge · 63821b17
      Ramil Kalimullin authored
      63821b17
    • Ramil Kalimullin's avatar
      Fix for bug#35383: binlog playback and replication breaks · cf6c7262
      Ramil Kalimullin authored
      due to name_const substitution
      
      Problem:
      "In general, statements executed within a stored procedure
      are written to the binary log using the same rules that
      would apply were the statements to be executed in standalone
      fashion. Some special care is taken when logging procedure
      statements because statement execution within procedures
      is not quite the same as in non-procedure context".
      
      For example, each reference to a local variable in SP's
      statements is replaced by NAME_CONST(var_name, var_value).
      Queries like
      "CREATE TABLE ... SELECT FUNC(local_var ..."
      are logged as
      "CREATE TABLE ... SELECT FUNC(NAME_CONST("local_var", var_value) ..."
      that leads to differrent field names and
      might result in "Incorrect column name" if var_value is long enough.
      
      Fix: in 5.x we'll issue a warning in such a case.
      In 6.0 we should get rid of NAME_CONST().
      
      Note: this issue and change should be described in the documentation
      ("Binary Logging of Stored Programs").
      cf6c7262
    • Tatiana A. Nurnberg's avatar
      Bug#43748: crash when non-super user tries to kill the replication threads · bafe7f60
      Tatiana A. Nurnberg authored
      manual merge. also adds test specific to 5.1+
      bafe7f60
    • Tatiana A. Nurnberg's avatar
      Bug#43748: crash when non-super user tries to kill the replication threads · de8042d0
      Tatiana A. Nurnberg authored
      Fine-tuning. Broke out comparison into method by
      suggestion of Davi. Clarified comments. Reverting
      test-case which I find too brittle; proper test
      case in 5.1+.
      de8042d0
    • Georgi Kodinov's avatar
      Bug#43748: crash when non-super user tries to kill the replication threads · 08626e80
      Georgi Kodinov authored
      (Pushing for Azundris)
            
      We allow security-contexts with NULL users (for
      system-threads and for unauthenticated users).
      If a non-SUPER-user tried to KILL such a thread,
      we tried to compare the user-fields to see whether
      they owned that thread. Comparing against NULL was
      not a good idea.
            
      If KILLer does not have SUPER-privilege, we
      specifically check whether both KILLer and KILLee
      have a non-NULL user before testing for string-
      equality. If either is NULL, we reject the KILL.
      08626e80
    • Andrei Elkin's avatar
      Bug#42977 RBR logs for rows with more than 250 column results in corrupt binlog · 921e3fe8
      Andrei Elkin authored
                  
      The issue happened to be two-fold.
      The table map event was recorded into binlog having
      an incorrect size when number of columns exceeded 251. 
      The Row-based event had incorrect recording and restoring m_width member within
      the same as above conditions.
      
      Fixed with correcting m_data_size and m_width.
      921e3fe8
    • Leonard Zhou's avatar
      Merge · 18d22198
      Leonard Zhou authored
      18d22198
    • Alexey Kopytov's avatar