Uploaded image for project: 'Percona Server for MySQL'
  1. Percona Server for MySQL
  2. PS-1718

LP #1587840: mysqlbinlog does not free the existing connection before opening new remote one

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Done
    • Priority: High
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None

      Description

      **Reported in Launchpad by Laurynas Biveinis last update 19-09-2016 11:19:07

      Copy of http://bugs.mysql.com/bug.php?id=81675:

      [1 Jun 11:26] Laurynas Biveinis
      Description:
      "mysqlbinlog --read-from-remote-server log1 log2" opens a new connection to read log2 without freeing the one used for reading log1.

      How to repeat:
      On 5.7, with LeakSanitizer-enabled AddressSanitizer:
      cmake ... -DWITH_ASAN=ON ...
      ...
      $ ./mtr --debug-server binlog_mysqlbinlog_start_stop
      ...
      binlog.binlog_mysqlbinlog_start_stop 'mix' [ fail ]
      Test ended at 2016-06-01 14:17:00

      CURRENT_TEST: binlog.binlog_mysqlbinlog_start_stop

      =================================================================
      ==5002==ERROR: LeakSanitizer: detected memory leaks

      Direct leak of 1336 byte(s) in 1 object(s) allocated from:
      #0 0x7fd39899e6e9 in __interceptor_calloc (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x986e9)
      #1 0x4e939f in my_raw_malloc /home/laurynas/mysql-server/mysys/my_malloc.c:189
      #2 0x4e939f in my_malloc /home/laurynas/mysql-server/mysys/my_malloc.c:54
      #3 0x46a62e in mysql_init /home/laurynas/mysql-server/sql-common/client.c:2446
      #4 0x448569 in safe_connect /home/laurynas/mysql-server/client/mysqlbinlog.cc:2260
      #5 0x448569 in dump_remote_log_entries /home/laurynas/mysql-server/client/mysqlbinlog.cc:2539
      #6 0x448569 in dump_single_log /home/laurynas/mysql-server/client/mysqlbinlog.cc:2328
      #7 0x448569 in dump_multiple_logs /home/laurynas/mysql-server/client/mysqlbinlog.cc:2368
      #8 0x44a6de in main /home/laurynas/mysql-server/client/mysqlbinlog.cc:3430
      #9 0x7fd39789b82f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2082f)

      (...other connection and SSL-related leaks)

      Suggested fix:
      At the start of safe_connect(), if mysql != NULL, call mysql_close for it, before mysql_init
      [1 Jun 11:35] Laurynas Biveinis
      The same issue exists on 5.5 and 5.6, but there it's masked by other LSan/client Valgrind bugs: bug 80014, bug 81674, bug 78223

        Attachments

          Activity

            People

            Assignee:
            Unassigned
            Reporter:
            lpjirasync lpjirasync (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:

                Smart Checklist