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

Interface retry bind interval (of a listener) increases by ten seconds every time it fails (10,20,30,....) it should be a fixed interval (and maybe configurable)

    XMLWordPrintable

Details

    • Bug
    • Status: Closed (View Workflow)
    • Major
    • Resolution: Fixed
    • 2.0.4
    • 2.2.0
    • Core
    • None

    Description

      There are high availability scenarios where there are more MaxScale instances and they are bound to VIPs, even the standby ones.
      In such scenario the standby MaxScale instances can't bind to the VIP which is on the active node, so the listener retries to bind to the VIP periodically, which is good.
      The anomaly is that the retry interval increases every time by 10 seconds, which doesn't seem to have any rationale behind.
      The consequence is that after long time the standby MaxScale instance is basically unable to re-bind in due time in case of need.
      The code part should be server/core/service.c:

      432 else if (service->retry_start)
      433

      { 434 /** Service failed to start any ports. Try again later. */ 435 service->stats.n_failed_starts++; 436 char taskname[strlen(service->name) + strlen("_start_retry_") + 437 (int) ceil(log10(INT_MAX)) + 1]; 438 int retry_after = MIN(service->stats.n_failed_starts * 10, SERVICE_MAX_RETRY_INTERVAL); 439 snprintf(taskname, sizeof(taskname), "%s_start_retry_%d", 440 service->name, service->stats.n_failed_starts); 441 hktask_oneshot(taskname, service_internal_restart, 442 (void*) service, retry_after); 443 MXS_NOTICE("Failed to start service %s, retrying in %d seconds.", 444 service->name, retry_after); 445 446 /** This will prevent MaxScale from shutting down if service start is retried later */ 447 listeners = 1; 448 }

      449 }

      I think line 438 should just be:

      438 int retry_after = MIN(10, SERVICE_MAX_RETRY_INTERVAL);

      Where 10 = 10 seconds, or eventually a settable variable

      Attachments

        Activity

          People

            markus makela markus makela
            claudio.nanni Claudio Nanni
            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.