On 07/31/15 11:22, Mike Belopuhov wrote:
> On Fri, Jul 31, 2015 at 10:57 -0400, RD Thrush wrote:
>>> Synopsis: panic in sys/net/pf_lb.c
>>> Category: kernel
>>> Environment:
>> System : OpenBSD 5.8
>> Details : OpenBSD 5.8 (GENERIC) #1047: Thu Jul 30 23:24:48 MDT 2015
>>
>> [email protected]:/usr/src/sys/arch/i386/compile/GENERIC
>>
>> Architecture: OpenBSD.i386
>> Machine : i386
>>> Description:
>> Repeatable crash after a few minutes with Jul 28,29 and 30 snapshots.
>> Crashes w/ Jul 30 sp and mp snapshots w/ kern.pool_debug set to 0/1.
>> The ddb transcript containing the following commands is appended:
>> trace
>> ps
>> show registers
>> show malloc
>> show proc
>> show uvmexp
>> callout
>> ps /w
>> ps /a
>> show bcstats
>> show all pools
>> show all pools /a
>> show extents
>> boot sync
>> Please note that usbdevs and pcidump were done w/ the Jun 22 snapshot.
>> acpi doesn't exist on this soekris 5501.
>>> How-To-Repeat:
>> Install recent snapshot, sysmerge, reboot and wait a few minutes.
>>> Fix:
>> Reboot with Jun 22 sp snapshot. According to cvs, the panic diagnostic
>> was added Jul 20 to src/sys/net/pf_lb.c.
>>
>
> Can you please try this diff.
>
> diff --git sys/net/pf_lb.c sys/net/pf_lb.c
> index 4e8d0cd..2c36b45 100644
> --- sys/net/pf_lb.c
> +++ sys/net/pf_lb.c
> @@ -866,14 +866,13 @@ pf_postprocess_addr(struct pf_state *cur)
> }
>
> /* check for appropriate pool */
> + memset(&rpool, 0, sizeof(rpool));
> if (nr->rdr.addr.type != PF_ADDR_NONE)
> rpool = nr->rdr;
> else if (nr->nat.addr.type != PF_ADDR_NONE)
> rpool = nr->nat;
> else if (nr->route.addr.type != PF_ADDR_NONE)
> rpool = nr->route;
> - else
> - panic("no appropriate pool");
>
> if (((rpool.opts & PF_POOL_TYPEMASK) != PF_POOL_LEASTSTATES))
> return (0);
The patch ran without panic for 20+ hours.
I wondered about the removal of the panic() statement so I tried another kernel
that added the memset() but kept the panic() statement, as follows:
cvs diff -u /usr/src/sys/net/pf_lb.c
Index: /usr/src/sys/net/pf_lb.c
===================================================================
RCS file: /cvs/OpenBSD/src/sys/net/pf_lb.c,v
retrieving revision 1.48
diff -u -p -u -r1.48 pf_lb.c
--- /usr/src/sys/net/pf_lb.c 20 Jul 2015 18:42:08 -0000 1.48
+++ /usr/src/sys/net/pf_lb.c 1 Aug 2015 14:31:07 -0000
@@ -866,6 +866,7 @@ pf_postprocess_addr(struct pf_state *cur
}
/* check for appropriate pool */
+ memset(&rpool, 0, sizeof(rpool));
if (nr->rdr.addr.type != PF_ADDR_NONE)
rpool = nr->rdr;
else if (nr->nat.addr.type != PF_ADDR_NONE)
That kernel panic'd as before with "no appropriate pool". Was the Jul 20 cvs
commit (panic addition) incorrect? If not, it appears the memset() addition
didn't fix the panic.
I was able to take a crash dump with the above change and have attached a gdb
transcript. The stack is apparently damaged in the pf_postprocess_addr()
function; however, I'm over my head at this point. How may I help further
troubleshoot?
obsd32:i386/tmp 3>sudo gdb
GNU gdb 6.3
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386-unknown-openbsd5.8".
(gdb) file bsd.gdb
Reading symbols from /usr/obj/i386/tmp/bsd.gdb...done.
(gdb) target kvm bsd.1.core
#0 0xd0557a78 in boot (howto=0) at ../../../../arch/i386/i386/machdep.c:2637
2637 dumpsys();
(gdb) where
#0 0xd0557a78 in boot (howto=0) at ../../../../arch/i386/i386/machdep.c:2637
#1 0xd03bafff in reboot (howto=0) at ../../../../kern/kern_xxx.c:69
#2 0xd037f462 in db_boot_crash_cmd (addr=Could not find the frame base for
"db_boot_crash_cmd".
) at ../../../../ddb/db_command.c:730
#3 0xd037fb44 in db_command (last_cmdp=0x0, cmd_table=0xd0b22dc0) at
../../../../ddb/db_command.c:260
#4 0xd037fd8f in db_command_loop () at ../../../../ddb/db_command.c:643
#5 0xd0383f5a in db_trap (type=1, code=0) at ../../../../ddb/db_trap.c:94
#6 0xd0553e8c in kdb_trap (type=1, code=0, regs=0xf5233d8c) at
../../../../arch/i386/i386/db_interface.c:157
#7 0xd0565aa5 in trap (frame=0xf5233d8c) at
../../../../arch/i386/i386/trap.c:189
#8 0xd0200b12 in calltrap ()
#9 0xd0553c07 in Debugger () at ../../../../arch/i386/i386/db_interface.c:359
#10 0xd03c9741 in panic (fmt=0xd09a51d1 "no appropriate pool") at
../../../../kern/subr_prf.c:214
#11 0xd03701ef in pf_postprocess_addr (cur=Variable "cur" is not available.
) at ../../../../net/pf_lb.c:877
#12 0xd035174f in pf_unlink_state (cur=0xd5cba380) at ../../../../net/pf.c:1265
#13 0xd03518be in pf_purge_expired_states (maxcheck=8) at
../../../../net/pf.c:1354
#14 0xd03519a6 in pf_purge_thread (v=0xd608fba0) at ../../../../net/pf.c:1161
#15 0xd0200519 in proc_trampoline ()
(gdb) fr 11
#11 0xd03701ef in pf_postprocess_addr (cur=Variable "cur" is not available.
) at ../../../../net/pf_lb.c:877
877 panic("no appropriate pool");
(gdb) list
872 else if (nr->nat.addr.type != PF_ADDR_NONE)
873 rpool = nr->nat;
874 else if (nr->route.addr.type != PF_ADDR_NONE)
875 rpool = nr->route;
876 else
877 panic("no appropriate pool");
878
879 if (((rpool.opts & PF_POOL_TYPEMASK) != PF_POOL_LEASTSTATES))
880 return (0);
881
(gdb) p cur
Variable "cur" is not available.
(gdb) f
#11 0xd03701ef in pf_postprocess_addr (cur=Variable "cur" is not available.
) at ../../../../net/pf_lb.c:877
877 panic("no appropriate pool");
(gdb) info frame
Stack level 11, frame at 0xf5233ed4:
eip = 0xd03701ef in pf_postprocess_addr (../../../../net/pf_lb.c:877); saved
eip 0xd035174f
called by frame at 0xf5233f34, caller of frame at 0xf5233e24
source language c.
Arglist at 0xf5233ecc, args: cur=Variable "cur" is not available.
(gdb) bt
#0 0xd0557a78 in boot (howto=0) at ../../../../arch/i386/i386/machdep.c:2637
#1 0xd03bafff in reboot (howto=0) at ../../../../kern/kern_xxx.c:69
#2 0xd037f462 in db_boot_crash_cmd (addr=Could not find the frame base for
"db_boot_crash_cmd".
) at ../../../../ddb/db_command.c:730
#3 0xd037fb44 in db_command (last_cmdp=0x0, cmd_table=0xd0b22dc0) at
../../../../ddb/db_command.c:260
#4 0xd037fd8f in db_command_loop () at ../../../../ddb/db_command.c:643
#5 0xd0383f5a in db_trap (type=1, code=0) at ../../../../ddb/db_trap.c:94
#6 0xd0553e8c in kdb_trap (type=1, code=0, regs=0xf5233d8c) at
../../../../arch/i386/i386/db_interface.c:157
#7 0xd0565aa5 in trap (frame=0xf5233d8c) at
../../../../arch/i386/i386/trap.c:189
#8 0xd0200b12 in calltrap ()
#9 0xd0553c07 in Debugger () at ../../../../arch/i386/i386/db_interface.c:359
#10 0xd03c9741 in panic (fmt=0xd09a51d1 "no appropriate pool") at
../../../../kern/subr_prf.c:214
#11 0xd03701ef in pf_postprocess_addr (cur=Variable "cur" is not available.
) at ../../../../net/pf_lb.c:877
#12 0xd035174f in pf_unlink_state (cur=0xd5cba380) at ../../../../net/pf.c:1265
#13 0xd03518be in pf_purge_expired_states (maxcheck=8) at
../../../../net/pf.c:1354
#14 0xd03519a6 in pf_purge_thread (v=0xd608fba0) at ../../../../net/pf.c:1161
#15 0xd0200519 in proc_trampoline ()
(gdb) up
#12 0xd035174f in pf_unlink_state (cur=0xd5cba380) at ../../../../net/pf.c:1265
1265 pf_postprocess_addr(cur);
(gdb) info frame
Stack level 12, frame at 0xf5233f34:
eip = 0xd035174f in pf_unlink_state (../../../../net/pf.c:1265); saved eip
0xd03518be
called by frame at 0xf5233f64, caller of frame at 0xf5233ed4
source language c.
Arglist at 0xf5233f2c, args: cur=0xd5cba380
Locals at 0xf5233f2c, Previous frame's sp is 0xf5233f34
Saved registers:
eax at 0xf5233db4, ecx at 0xf5233db0, edx at 0xf5233dac, ebx at 0xf5233f28,
ebp at 0xf5233f2c, esi at 0xf5233ec4, edi at 0xf5233ec8,
eip at 0xf5233f30, eflags at 0xf5233dc8, cs at 0xf5233dc4, ds at 0xf5233d98,
es at 0xf5233d94, fs at 0xf5233d8c, gs at 0xf5233d90
(gdb) info locl als
__func__ = "pf_unlink_state"
(gdb) down
#11 0xd03701ef in pf_postprocess_addr (cur=Variable "cur" is not available.
) at ../../../../net/pf_lb.c:877
877 panic("no appropriate pool");
(gdb) info locals
nr = Variable "nr" is not available.
(gdb) print nr
Variable "nr" is not available.
(gdb) info registers
eax 0x1 1
ecx 0xd0b25240 -793619904
edx 0x1 1
ebx 0xd5fad4fc -704981764
esp 0xf5233e24 0xf5233e24
ebp 0xf5233ecc 0xf5233ecc
esi 0xf5233e38 -182239688
edi 0xd603c828 -704395224
eip 0xd03701ef 0xd03701ef
eflags 0x286 646
cs 0x8 8
ss 0x0 0
ds 0xc9ba0010 -910557168
es 0x10 16
fs 0xd0200020 -803209184
gs 0xf5230000 -182255616
(gdb) up
#12 0xd035174f in pf_unlink_state (cur=0xd5cba380) at ../../../../net/pf.c:1265
1265 pf_postprocess_addr(cur);
(gdb) p cur
$1 = (struct pf_state *) 0xd5cba380
(gdb) p *cur
$2 = {id = 12322411531930090581, creatorid = 1912767323, direction = 1 '\001',
pad = "\000\000", sync_list = {tqe_next = 0x0,
tqe_prev = 0x0}, entry_list = {tqe_next = 0xd603bc40, tqe_prev =
0xd5dbc1dc}, entry_id = {rbe_left = 0xd5dbc1c4, rbe_right = 0x0,
rbe_parent = 0xd5c84a84, rbe_color = 0}, src = {scrub = 0x0, seqlo =
66627605, seqhi = 3879765599, seqdiff = 0, max_win = 65535,
mss = 64, state = 11 '\v', wscale = 0 '\0', tcp_est = 0 '\0', pad = ""},
dst = {scrub = 0x0, seqlo = 0, seqhi = 1, seqdiff = 0,
max_win = 1, mss = 0, state = 0 '\0', wscale = 0 '\0', tcp_est = 0 '\0',
pad = ""}, match_rules = {slh_first = 0xd5f878c0},
rule = {ptr = 0xd5fad4fc, nr = 3589985532}, anchor = {ptr = 0xd5fbc978, nr =
3590048120}, natrule = {ptr = 0xd5fad4fc,
nr = 3589985532}, rt_addr = {pfa = {v4 = {s_addr = 0}, v6 = {__u6_addr =
{__u6_addr8 = '\0' <repeats 15 times>, __u6_addr16 = {0,
0, 0, 0, 0, 0, 0, 0}, __u6_addr32 = {0, 0, 0, 0}}}, addr8 = '\0'
<repeats 15 times>, addr16 = {0, 0, 0, 0, 0, 0, 0, 0},
addr32 = {0, 0, 0, 0}}}, src_nodes = {slh_first = 0x0}, key =
{0xd603c828, 0xd603c828}, kif = 0xd1895200, rt_kif = 0xd1951800,
packets = {0, 0}, bytes = {0, 0}, creation = 518, expire = 518, pfsync_time =
0, qid = 0, pqid = 0, tag = 0, state_flags = 32,
log = 0 '\0', timeout = 0 '\0', sync_state = 255 'ÿ', sync_updates = 0 '\0',
rtableid = {-1, 0}, min_ttl = 0 '\0',
set_tos = 0 '\0', set_prio = "\000", max_mss = 0, if_index_in = 7,
if_index_out = 0, pad2 = "\000"}
(gdb) p cur->natrule.ptr
$3 = (struct pf_rule *) 0xd5fad4fc
(gdb) p cur->natrule
$4 = {ptr = 0xd5fad4fc, nr = 3589985532}
(gdb) set height 0
(gdb) p *cur->natrule.ptr
$6 = {src = {addr = {v = {a = {addr = {pfa = {v4 = {s_addr = 0}, v6 =
{__u6_addr = {__u6_addr8 = '\0' <repeats 15 times>,
__u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0}, __u6_addr32 = {0, 0,
0, 0}}}, addr8 = '\0' <repeats 15 times>, addr16 = {0,
0, 0, 0, 0, 0, 0, 0}, addr32 = {0, 0, 0, 0}}}, mask = {pfa =
{v4 = {s_addr = 0}, v6 = {__u6_addr = {
__u6_addr8 = '\0' <repeats 15 times>, __u6_addr16 = {0, 0, 0,
0, 0, 0, 0, 0}, __u6_addr32 = {0, 0, 0, 0}}},
addr8 = '\0' <repeats 15 times>, addr16 = {0, 0, 0, 0, 0, 0, 0,
0}, addr32 = {0, 0, 0, 0}}}},
ifname = '\0' <repeats 15 times>, tblname = '\0' <repeats 31 times>,
rtlabelname = '\0' <repeats 31 times>, rtlabel = 0},
p = {dyn = 0x0, tbl = 0x0, dyncnt = 0, tblcnt = 0}, type = 0 '\0', iflags
= 0 '\0'}, port = {0, 0}, neg = 0 '\0',
port_op = 0 '\0', weight = 0}, dst = {addr = {v = {a = {addr = {pfa = {v4 =
{s_addr = 0}, v6 = {__u6_addr = {
__u6_addr8 = '\0' <repeats 15 times>, __u6_addr16 = {0, 0, 0,
0, 0, 0, 0, 0}, __u6_addr32 = {0, 0, 0, 0}}},
addr8 = '\0' <repeats 15 times>, addr16 = {0, 0, 0, 0, 0, 0, 0,
0}, addr32 = {0, 0, 0, 0}}}, mask = {pfa = {v4 = {
s_addr = 0}, v6 = {__u6_addr = {__u6_addr8 = '\0' <repeats 15
times>, __u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0},
__u6_addr32 = {0, 0, 0, 0}}}, addr8 = '\0' <repeats 15
times>, addr16 = {0, 0, 0, 0, 0, 0, 0, 0}, addr32 = {0, 0,
0, 0}}}}, ifname = '\0' <repeats 15 times>, tblname = '\0'
<repeats 31 times>, rtlabelname = '\0' <repeats 31 times>,
rtlabel = 0}, p = {dyn = 0x0, tbl = 0x0, dyncnt = 0, tblcnt = 0}, type
= 0 '\0', iflags = 0 '\0'}, port = {5632, 0},
neg = 0 '\0', port_op = 2 '\002', weight = 0}, skip = {{ptr = 0x0, nr = 0},
{ptr = 0x0, nr = 0}, {ptr = 0x0, nr = 0}, {ptr = 0x0,
nr = 0}, {ptr = 0xd5fa79bc, nr = 3589962172}, {ptr = 0x0, nr = 0}, {ptr =
0x0, nr = 0}, {ptr = 0x0, nr = 0}, {ptr = 0xd5fad9a8,
nr = 3589986728}}, label = '\0' <repeats 63 times>, ifname =
"pppoe0\000\000\000\000\000\000\000\000\000",
rcv_ifname = '\0' <repeats 15 times>, qname = '\0' <repeats 63 times>, pqname
= '\0' <repeats 63 times>,
tagname = '\0' <repeats 63 times>, match_tagname = '\0' <repeats 63 times>,
overload_tblname = '\0' <repeats 31 times>, entries = {
tqe_next = 0xd5fad9a8, tqe_prev = 0xd5fad254}, nat = {addr = {v = {a =
{addr = {pfa = {v4 = {s_addr = 0}, v6 = {__u6_addr = {
__u6_addr8 = '\0' <repeats 15 times>, __u6_addr16 = {0, 0, 0,
0, 0, 0, 0, 0}, __u6_addr32 = {0, 0, 0, 0}}},
addr8 = '\0' <repeats 15 times>, addr16 = {0, 0, 0, 0, 0, 0, 0,
0}, addr32 = {0, 0, 0, 0}}}, mask = {pfa = {v4 = {
s_addr = 0}, v6 = {__u6_addr = {__u6_addr8 = '\0' <repeats 15
times>, __u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0},
__u6_addr32 = {0, 0, 0, 0}}}, addr8 = '\0' <repeats 15
times>, addr16 = {0, 0, 0, 0, 0, 0, 0, 0}, addr32 = {0, 0,
0, 0}}}}, ifname = '\0' <repeats 15 times>, tblname = '\0'
<repeats 31 times>, rtlabelname = '\0' <repeats 31 times>,
rtlabel = 0}, p = {dyn = 0x0, tbl = 0x0, dyncnt = 0, tblcnt = 0}, type
= 7 '\a', iflags = 0 '\0'}, key = {pfk = {
key8 = '\0' <repeats 15 times>, key16 = {0, 0, 0, 0, 0, 0, 0, 0}, key32
= {0, 0, 0, 0}}}, counter = {pfa = {v4 = {
s_addr = 0}, v6 = {__u6_addr = {__u6_addr8 = '\0' <repeats 15 times>,
__u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0},
__u6_addr32 = {0, 0, 0, 0}}}, addr8 = '\0' <repeats 15 times>,
addr16 = {0, 0, 0, 0, 0, 0, 0, 0}, addr32 = {0, 0, 0,
0}}}, ifname = '\0' <repeats 15 times>, kif = 0x0, tblidx = 0, states
= 0, curweight = 0, weight = 0, proxy_port = {0, 0},
port_op = 0 '\0', opts = 0 '\0'}, rdr = {addr = {v = {a = {addr = {pfa =
{v4 = {s_addr = 0}, v6 = {__u6_addr = {
__u6_addr8 = '\0' <repeats 15 times>, __u6_addr16 = {0, 0, 0,
0, 0, 0, 0, 0}, __u6_addr32 = {0, 0, 0, 0}}},
addr8 = '\0' <repeats 15 times>, addr16 = {0, 0, 0, 0, 0, 0, 0,
0}, addr32 = {0, 0, 0, 0}}}, mask = {pfa = {v4 = {
s_addr = 0}, v6 = {__u6_addr = {__u6_addr8 = '\0' <repeats 15
times>, __u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0},
__u6_addr32 = {0, 0, 0, 0}}}, addr8 = '\0' <repeats 15
times>, addr16 = {0, 0, 0, 0, 0, 0, 0, 0}, addr32 = {0, 0,
0, 0}}}}, ifname = '\0' <repeats 15 times>, tblname = '\0'
<repeats 31 times>, rtlabelname = '\0' <repeats 31 times>,
rtlabel = 0}, p = {dyn = 0x0, tbl = 0x0, dyncnt = 0, tblcnt = 0}, type
= 7 '\a', iflags = 0 '\0'}, key = {pfk = {
key8 = '\0' <repeats 15 times>, key16 = {0, 0, 0, 0, 0, 0, 0, 0}, key32
= {0, 0, 0, 0}}}, counter = {pfa = {v4 = {
s_addr = 0}, v6 = {__u6_addr = {__u6_addr8 = '\0' <repeats 15 times>,
__u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0},
__u6_addr32 = {0, 0, 0, 0}}}, addr8 = '\0' <repeats 15 times>,
addr16 = {0, 0, 0, 0, 0, 0, 0, 0}, addr32 = {0, 0, 0,
0}}}, ifname = '\0' <repeats 15 times>, kif = 0x0, tblidx = 0, states
= 0, curweight = 0, weight = 0, proxy_port = {0, 0},
port_op = 0 '\0', opts = 0 '\0'}, route = {addr = {v = {a = {addr = {pfa =
{v4 = {s_addr = 0}, v6 = {__u6_addr = {
__u6_addr8 = '\0' <repeats 15 times>, __u6_addr16 = {0, 0, 0,
0, 0, 0, 0, 0}, __u6_addr32 = {0, 0, 0, 0}}},
addr8 = '\0' <repeats 15 times>, addr16 = {0, 0, 0, 0, 0, 0, 0,
0}, addr32 = {0, 0, 0, 0}}}, mask = {pfa = {v4 = {
s_addr = 4294967295}, v6 = {__u6_addr = {__u6_addr8 = 'ÿ'
<repeats 16 times>, __u6_addr16 = {65535, 65535, 65535,
65535, 65535, 65535, 65535, 65535}, __u6_addr32 =
{4294967295, 4294967295, 4294967295, 4294967295}}},
addr8 = 'ÿ' <repeats 16 times>, addr16 = {65535, 65535, 65535,
65535, 65535, 65535, 65535, 65535}, addr32 = {
4294967295, 4294967295, 4294967295, 4294967295}}}}, ifname =
'\0' <repeats 15 times>,
tblname = '\0' <repeats 16 times>, 'ÿ' <repeats 16 times>, rtlabelname
= '\0' <repeats 16 times>, 'ÿ' <repeats 16 times>,
rtlabel = 0}, p = {dyn = 0x0, tbl = 0x0, dyncnt = 0, tblcnt = 0}, type
= 7 '\a', iflags = 0 '\0'}, key = {pfk = {
key8 = '\0' <repeats 15 times>, key16 = {0, 0, 0, 0, 0, 0, 0, 0}, key32
= {0, 0, 0, 0}}}, counter = {pfa = {v4 = {
s_addr = 0}, v6 = {__u6_addr = {__u6_addr8 = '\0' <repeats 15 times>,
__u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0},
__u6_addr32 = {0, 0, 0, 0}}}, addr8 = '\0' <repeats 15 times>,
addr16 = {0, 0, 0, 0, 0, 0, 0, 0}, addr32 = {0, 0, 0,
0}}}, ifname = "pppoe0\000\000\000\000\000\000\000\000\000", kif =
0xd1951800, tblidx = 0, states = 0, curweight = 0,
weight = 0, proxy_port = {0, 0}, port_op = 0 '\0', opts = 0 '\0'},
evaluations = 278, packets = {11, 11}, bytes = {2211, 2357},
kif = 0xd1951800, rcv_kif = 0x0, anchor = 0x0, overload_tbl = 0x0,
os_fingerprint = 0, rtableid = -1, onrdomain = -1, timeout = {
0 <repeats 20 times>}, states_cur = 2, states_tot = 2, max_states = 0,
src_nodes = 0, max_src_nodes = 0, max_src_states = 0,
max_src_conn = 0, max_src_conn_rate = {limit = 0, seconds = 0}, qid = 0, pqid
= 0, rt_listid = 0, nr = 23, prob = 0, cuid = 0,
cpid = 6011, return_icmp = 0, return_icmp6 = 0, max_mss = 0, tag = 0,
match_tag = 0, scrub_flags = 0, uid = {uid = {0, 0},
op = 0 '\0'}, gid = {gid = {0, 0}, op = 0 '\0'}, rule_flag = 0, action = 0
'\0', direction = 1 '\001', log = 0 '\0',
logif = 0 '\0', quick = 1 '\001', ifnot = 0 '\0', match_tag_not = 0 '\0',
keep_state = 3 '\003', af = 2 '\002', proto = 6 '\006',
type = 0 '\0', code = 0 '\0', flags = 2 '\002', flagset = 18 '\022', min_ttl
= 0 '\0', allow_opts = 0 '\0', rt = 3 '\003',
return_ttl = 0 '\0', tos = 0 '\0', set_tos = 0 '\0', anchor_relative = 0
'\0', anchor_wildcard = 0 '\0', flush = 0 '\0',
prio = 0 '\0', set_prio = "\000", naf = 0 '\0', rcvifnot = 0 '\0', pad =
"\000", divert = {addr = {pfa = {v4 = {s_addr = 0}, v6 = {
__u6_addr = {__u6_addr8 = '\0' <repeats 15 times>, __u6_addr16 = {0,
0, 0, 0, 0, 0, 0, 0}, __u6_addr32 = {0, 0, 0, 0}}},
addr8 = '\0' <repeats 15 times>, addr16 = {0, 0, 0, 0, 0, 0, 0, 0},
addr32 = {0, 0, 0, 0}}}, port = 0}, divert_packet = {
addr = {pfa = {v4 = {s_addr = 0}, v6 = {__u6_addr = {__u6_addr8 = '\0'
<repeats 15 times>, __u6_addr16 = {0, 0, 0, 0, 0, 0, 0,
0}, __u6_addr32 = {0, 0, 0, 0}}}, addr8 = '\0' <repeats 15
times>, addr16 = {0, 0, 0, 0, 0, 0, 0, 0}, addr32 = {0, 0,
0, 0}}}, port = 0}}
(gdb) p cur->key
$7 = {0xd603c828, 0xd603c828}
(gdb) down
#11 0xd03701ef in pf_postprocess_addr (cur=Variable "cur" is not available.
) at ../../../../net/pf_lb.c:877
877 panic("no appropriate pool");
(gdb) p sks
Variable "sks" is not available.
(gdb) quit