• Rohit Kalhans's avatar
    BUG#11759333: SBR LOGGING WARNING MESSAGES FOR PRIMARY · 6da51d17
    Rohit Kalhans authored
    KEY UPDATES WITH A LIMIT OF 1
    
    Problem: The unsafety warning for statements such as
    update...limit1 where pk=1 are thrown when binlog-format
    = STATEMENT,despite of the fact that such statements are
    actually safe. this leads to filling up of the disk space 
    with false warnings.
     
    Solution: This is not a complete fix for the problem, but
    prevents the disks from getting filled up. This should
    therefore be regarded as a workaround. In the future this
    should be overriden by server general suppress/filtering
    framework. It should also be noted that another worklog is
    supposed to defeat this case's artificial unsafety.
    
    We use a warning suppression mechanism to detect warning flood,
    enable the suppression, and disable this when the average
    warnings/second has reduced to acceptable limits.
     
      Activation: The supression for LIMIT unsafe statements are
      activated when the last 50 warnings were logged in less 
      than 50 seconds. 
     
      Supression: Once activated this supression will prevent the
      individual warnings to be logged in the error log, but print
      the warning for every 50 warnings with the note:
      "The last warning was repeated N times in last S seconds"  
      Noteworthy is the fact that this supression works only on the
      error logs and the warnings seen by the clients will remain as
      it is (i.e. one warning/ unsafe statement)
     
      Deactivation: The supression will be deactivated once the
      average # of warnings/sec have gone down to the acceptable limits.
    
    
    
    sql/sql_class.cc:
      Added code to supress warning while logging them to error-log.
    6da51d17
sql_class.cc 148 KB