Percona XtraDB and crash-safe replication

  • Filter
  • Time
  • Show
Clear All
new posts

  • Percona XtraDB and crash-safe replication


    Is it possible to enable crash-safe replication on Percona XtraDB cluster?

    When I tried to add the following variables the MySQL server refuses to start and it constantly print the same message in the error log:

    relay_log_info_repository = TABLE
    relay_log_recovery = 1

    Error log:
    09:15:57 UTC - mysqld got signal 11 ;
    This could be because you hit a bug. It is also possible that this binary
    or one of the libraries it was linked against is corrupt, improperly built,
    or misconfigured. This error can also be caused by malfunctioning hardware.
    We will try our best to scrape up some info that will hopefully help
    diagnose the problem, but since we have already crashed,
    something is definitely wrong and this may fail.
    Please help us make Percona XtraDB Cluster better by reporting any
    bugs at https://bugs.launchpad.net/percona-xtradb-cluster

    It is possible that mysqld could use up to
    key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 1362007 K bytes of memory
    Hope that's ok; if not, decrease some variables in the equation.

    Thread pointer: 0x423ecc0
    Attempting backtrace. You can use the following information to find out
    where mysqld died. If you see no messages after this, something went
    terribly wrong...
    stack_bottom = 7fff207f09a8 thread_stack 0x40000
    /usr/sbin/mysqld(_ZN11ha_innobase17wsrep_append_keysEP3THDbP KhS3_+0x4c3)[0x960f23]
    /usr/sbin/mysqld(_ZN16Rpl_info_factory17decide_repositoryEP8 Rpl_infojPP16Rpl_info_handlerS4_PPKc+0x194)[0x8e1f54]
    /usr/sbin/mysqld(_ZN16Rpl_info_factory19create_coordinatorsE jPP11Master_infojPP14Relay_log_info+0x56)[0x8e2ae6]

    Trying to get some variables.
    Some pointers may be invalid and cause the dump to abort.
    Query (0): is an invalid pointer
    Connection ID (thread ID): 0
    Status: NOT_KILLED
    It works when i tested this with standard Percona server
    OS: CentOS 6.5
    MySQL : Percona-XtraDB-Cluster-server-56-5.6.15-25.5.759

  • #2
    What is the purpose you are trying to enable it? Is any of the cluster members also an asyc slave of another mysql instance?


    • #3
      Originally posted by przemek View Post
      What is the purpose you are trying to enable it? Is any of the cluster members also an asyc slave of another mysql instance?
      I'm not using Galera feature for now, just standard MySQL replication hence I would like to enable this option.


      • #4
        I cannot reproduce this kind of crash, can you post your full my.cnf? Does it crash right after mysqld start or only once some some trx is applied via replication?


        • #5
          It crashes, right after mysqld start.

          log-error = /var/log/mysql/mysql-error.log
          user = mysql
          port = 3306
          bind_address =
          socket = /var/lib/mysql/mysql.sock
          datadir = /var/lib/mysql
          tmpdir = /tmp
          pid-file = /var/lib/mysql/mysql.pid
          character-set-server = utf8
          explicit_defaults_for_timestamp = 1
          slow-query-log = 1
          slow_query_log_file = /var/log/mysql/mysql-slow.log
          long_query_time = 5
          log-bin = /var/lib/mysql/log/mysql-bin
          binlog-format = MIXED
          expire_logs_days = 14
          relay-log = /var/lib/mysql/log/mysql-relay
          relay_log_info_file = /var/lib/mysql/log/relay-log.info
          slave_load_tmpdir = /var/lib/mysql/log/tmp
          server-id = 737731821
          # Crash-safe replication
          master_info_repository = TABLE
          relay_log_info_repository = TABLE
          relay_log_recovery = 1
          back_log = 50
          max_connections = 500
          max_connect_errors = 100
          key_buffer_size = 256M
          sort_buffer_size = 2M
          read_rnd_buffer_size = 4M
          bulk_insert_buffer_size = 128M
          max_allowed_packet = 32M
          max_heap_table_size = 64M
          tmp_table_size = 64M
          table_open_cache = 2048
          thread_cache_size = 16
          query_cache_type = 0
          query_cache_size = 0
          # InnoDB
          innodb_data_home_dir = /var/lib/mysql
          innodb_log_group_home_dir = /var/lib/mysql
          innodb_data_file_path = ibdata1:2000M:autoextend
          innodb_flush_log_at_trx_commit = 2
          innodb_flush_method = O_DIRECT
          innodb_log_buffer_size = 16M
          innodb_buffer_pool_size = 512M
          innodb_log_file_size = 512M
          innodb_log_files_in_group = 2
          innodb_read_io_threads = 8
          innodb_write_io_threads = 8
          innodb_io_capacity = 400
          innodb_max_dirty_pages_pct = 90
          innodb_lock_wait_timeout = 120


          • #6
            OK, binlog-format = MIXED was the key here. Please change it to ROW (as MIXED is not supported by Galera anyway), and try enabling crash safe again.

            Bug reported here: https://bugs.launchpad.net/percona-x...r/+bug/1313756