Page MenuHomeFreeBSD

Add missing EPOCH(9) wrapper in ipfw
ClosedPublic

Authored by hselasky on Feb 10 2020, 9:13 AM.

Details

Summary

Backtrace:
panic()
ip_output()
dyn_tick()
softclock_call_cc()
softclock()
ithread_loop()

Found by: mmacy@
Reported by: jmd@
Sponsored by: Mellanox Technologies

Diff Detail

Repository
rS FreeBSD src repository
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

hselasky added a reviewer: mmacy.
This revision is now accepted and ready to land.Feb 10 2020, 10:26 AM

Thanks for the find. I'd rather move the entrance to dyn_tick(). Would use less lines of code and would make it easier to spot it later, when we have callouts supporting epoch.

hselasky retitled this revision from Add missing EPOCH wrappers in firewall code to Add missing EPOCH(9) wrapper in ipfw.
This revision now requires review to proceed.Feb 10 2020, 8:51 PM
This revision is now accepted and ready to land.Feb 11 2020, 6:09 PM
This revision was automatically updated to reflect the committed changes.

IPFW/Dummynet appears to now panic with EPOCH assertions (netpfil/ip_dn_*)

In D23599#521566, @rscheff_gmx.at wrote:

IPFW/Dummynet appears to now panic with EPOCH assertions (netpfil/ip_dn_*)

Do you have a backtrace?

--HPS

panic: Assertion in_epoch(net_epoch_preempt) failed at /root/freebsd-master/freebsd/sys/netpfil/ipfw/ip_dn_io.c:745
cpuid = 0
time = 1582039197
KDB: stack backtrace:
db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffffe00084ff890
vpanic() at vpanic+0x185/frame 0xfffffe00084ff8f0
panic() at panic+0x43/frame 0xfffffe00084ff950
dummynet_send() at dummynet_send+0x43/frame 0xfffffe00084ff990
dummynet_task() at dummynet_task+0x31e/frame 0xfffffe00084ffa00
taskqueue_run_locked() at taskqueue_run_locked+0xaa/frame 0xfffffe00084ffa80
taskqueue_thread_loop() at taskqueue_thread_loop+0xc2/frame 0xfffffe00084ffab0
fork_exit() at fork_exit+0x80/frame 0xfffffe00084ffaf0
fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe00084ffaf0

  • trap 0, rip = 0, rsp = 0, rbp = 0 ---

KDB: enter: panic
Uptime: 7m36s