{
  "id": "networking/vrrp-preempt-delay-expired",
  "signature": "VRRP: Preempt delay expired, transitioning to MASTER state on interface eth0",
  "signature_zh": "VRRP：抢占延迟到期，接口eth0上转换为主状态",
  "regex": "VRRP: Preempt delay expired, transitioning to MASTER state on interface \\w+",
  "domain": "networking",
  "category": "runtime_error",
  "subcategory": null,
  "root_cause": "A VRRP backup router with higher priority waited through the configured preempt delay and is now taking over as master, which may cause transient traffic disruption if the previous master is still active.",
  "root_cause_type": "generic",
  "root_cause_zh": "具有更高优先级的VRRP备份路由器等待了配置的抢占延迟后，正在接管为主路由器，如果前主路由器仍活跃，可能会导致短暂流量中断。",
  "versions": [
    {
      "version": "keepalived 2.2.8",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    },
    {
      "version": "FRRouting 9.1",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    },
    {
      "version": "Linux kernel 6.1",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    }
  ],
  "os_specific": {},
  "dead_ends": [
    {
      "action": "",
      "why_fails": "This prevents the higher-priority router from taking over, defeating the purpose of VRRP for failover scenarios.",
      "fail_rate": 0.7,
      "condition": "",
      "sources": []
    },
    {
      "action": "",
      "why_fails": "Instant preemption can cause flapping if the previous master has not yet released the IP; a non-zero delay is intentional for stability.",
      "fail_rate": 0.6,
      "condition": "",
      "sources": []
    }
  ],
  "workarounds": [
    {
      "action": "Ensure the previous master gracefully transitions by setting a lower priority on it: in keepalived.conf, set priority 100 on old master, priority 150 on new master, then reload both: systemctl reload keepalived",
      "success_rate": 0.9,
      "how": "Ensure the previous master gracefully transitions by setting a lower priority on it: in keepalived.conf, set priority 100 on old master, priority 150 on new master, then reload both: systemctl reload keepalived",
      "condition": "",
      "sources": []
    },
    {
      "action": "Monitor VRRP state transitions and adjust preempt delay if flapping occurs: grep 'VRRP' /var/log/syslog ; increase delay with vrrp_skip_check_adv_addr and vrrp_garp_master_delay in keepalived.conf",
      "success_rate": 0.85,
      "how": "Monitor VRRP state transitions and adjust preempt delay if flapping occurs: grep 'VRRP' /var/log/syslog ; increase delay with vrrp_skip_check_adv_addr and vrrp_garp_master_delay in keepalived.conf",
      "condition": "",
      "sources": []
    }
  ],
  "workarounds_zh": [
    "Ensure the previous master gracefully transitions by setting a lower priority on it: in keepalived.conf, set priority 100 on old master, priority 150 on new master, then reload both: systemctl reload keepalived",
    "Monitor VRRP state transitions and adjust preempt delay if flapping occurs: grep 'VRRP' /var/log/syslog ; increase delay with vrrp_skip_check_adv_addr and vrrp_garp_master_delay in keepalived.conf"
  ],
  "transition_graph": {
    "leads_to": [],
    "preceded_by": [],
    "frequently_confused_with": []
  },
  "official_doc_url": "https://datatracker.ietf.org/doc/html/rfc5798",
  "official_doc_section": null,
  "error_code": null,
  "verification_tier": "ai_generated",
  "confidence": 0.83,
  "fix_success_rate": 0.85,
  "resolvable": "true",
  "first_seen": "2023-09-12",
  "last_confirmed": "2024-06-01",
  "last_updated": "2024-06-01",
  "evidence_count": 1,
  "tags": [],
  "locale": "en",
  "aliases": []
}