[Bug 260499] [carp] Carp unable recover after demotion by send error

From: <bugzilla-noreply_at_freebsd.org>
Date: Fri, 17 Dec 2021 18:47:31 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=260499

            Bug ID: 260499
           Summary: [carp] Carp unable recover after demotion by send
                    error
           Product: Base System
           Version: CURRENT
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: kern
          Assignee: bugs@FreeBSD.org
          Reporter: marius.halden@modirum.com

Created attachment 230203
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=230203&action=edit
testcase.sh

When carp is demoted due to send errors it will never recover as the code path
which will decrement the demotion counter appears to be dead.

Expected output from test case when working:
> # sh testcase.sh
> Staring jail test1.
> ...
> carp: 1@epair1b: BACKUP -> MASTER (master timed out)
> net.inet.carp.demotion: 0
> 
> Enabling pf
> pf enabled
> ...
> carp: demoted by 240 to 240 (send error 13 on epair1b)
> net.inet.carp.demotion: 240
> 
> Disabling pf
> pf disabled
> .......
> carp: demoted by -240 to 0 (send ok on epair1b)
> net.inet.carp.demotion: 0
> Cleaning up.

Actual output from test case:
> # sh testcase.sh
> Staring jail test1.
> ...
> carp: 1@epair0b: BACKUP -> MASTER (master timed out)
> net.inet.carp.demotion: 0
> 
> Enabling pf
> pf enabled
> ...
> carp: demoted by 240 to 240 (send error 13 on epair0b)
> net.inet.carp.demotion: 240
> 
> Disabling pf
> pf disabled
> .......
> carp: demoted by 240 to 240 (send error 13 on epair0b)
> net.inet.carp.demotion: 240
> Cleaning up.

Note, the test case uses PF to force ip_output to fail.

-- 
You are receiving this mail because:
You are the assignee for the bug.