Uploaded image for project: 'MariaDB MaxScale'
  1. MariaDB MaxScale
  2. MXS-5539

Maxscale error due to sync starting from old GTID rather than newest even with 'gtid_start_pos=newest'

    XMLWordPrintable

Details

    • Bug
    • Status: Closed (View Workflow)
    • Major
    • Resolution: Not a Bug
    • 24.02.2
    • N/A
    • avrorouter
    • None

    Description

      I had raised a bug where I was seeing error :

      2025-03-03 21:50:50   notice : Started replicating from 'dbserver' at GTID '0-1-42408,1-1-1'
      2025-03-03 21:50:50   error  : Failed to read replicated event: 1236, Could not find GTID state requested by slave in any binlog files. Probably the slave state is too old and required binlog files have been purged.
      

      The GTID value is present in 'current_gtid.txt' file too.

      I had raised a bug #5516 earlier and based on the update on the bug, I started using 'gtid_start_pos=newest'

      Everything works fine untill mariadb is restarted and maxscale connects back to it. 
      2025-03-03 21:47:08   error  : Connection creation failed: Lost connection to server at 'handshake: reading initial communication packet', system error: 104
      2025-03-03 21:47:33   error  : Connection creation failed: Can't connect to server on 'nrd-db-mariadb.nrd-database.svc.cluster.local' (110)
      2025-03-03 21:47:50   error  : Connection creation failed: Can't connect to server on 'nrd-db-mariadb.nrd-database.svc.cluster.local' (115)
      2025-03-03 21:47:53   error  : Monitor timed out when connecting to server dbserver[nrd-db-mariadb.nrd-database.svc.cluster.local:3306] : 'Can't connect to server on 'nrd-db-mariadb.nrd-database.svc.cluster.local' (110)'
      2025-03-03 21:47:53   notice : Server changed state: dbserver[nrd-db-mariadb.nrd-database.svc.cluster.local:3306]: master_down. [Master, Running] -> [Down]
      2025-03-03 21:50:49   notice : Server changed state: dbserver[nrd-db-mariadb.nrd-database.svc.cluster.local:3306]: master_up. [Down] -> [Master, Running]
      

      There is a gtid value which is present in the current_gtid.txt and after getting the connection with mariadb, maxscale is not getting events from the old gtid.

      Is there a way for maxscale to resync the gtid after it reconnects with mariadb ?

      I see that in 'maxsctrl list servers' shows the latest gtid in the output. Is it possible to use this gtid value instead of the one in current_gtid.txt ?

      bash-5.1$ maxctrl list servers
      Server   Address                                        Port  Connections  State            GTID             Monitor         
      -----------------------------------------------------------------------------------------------------------------------------
      dbserver  myd-db-mariadb.nrd-database.svc.cluster.local            Master, Running* 0-1-42630,1-1-1* MariaDB-Monitor 
      -----------------------------------------------------------------------------------------------------------------------------
      

      This is my avrorouter configuration section in the maxscale.cnf :

      [cdc-service]
      type=service
      router=avrorouter
      servers=dbserver
      server_id=01
      user=maxscale
      password=***
      block_size=6M
      group_rows=20
      gtid_start_pos=newest

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              Sahai Har Gagan
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.