Date: Wed, 26 Nov 2014 10:34:00 +0000 From: bugzilla-noreply@freebsd.org To: freebsd-bugs@FreeBSD.org Subject: [Bug 195407] New: relayd crashes kernel after update to 10.1-RELEASE Message-ID: <bug-195407-8@https.bugs.freebsd.org/bugzilla/>
next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=195407 Bug ID: 195407 Summary: relayd crashes kernel after update to 10.1-RELEASE Product: Base System Version: 10.1-RELEASE Hardware: amd64 OS: Any Status: New Severity: Affects Some People Priority: --- Component: kern Assignee: freebsd-bugs@FreeBSD.org Reporter: andrej.kolontai@verwaltung.uni-muenchen.de Created attachment 149878 --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=149878&action=edit kernel crash report We are using FreeBSD for our Firewalls and are actually happy with it. Since recently we use relayd (installed via pkg) to do some load balancing stuff. On a freshly installed machine running 10.0-RELEASE everything worked fine. On monday, I tried to upgrade to 10.1-RELEASE using freebsd-update as described in the handbook chapter 24. At first everything looked good but relayd wouldn't come up: "Nov 24 10:50:48 flutters relayd[3300]: fatal: cannot add rule: Operation not supported by device Nov 24 10:50:48 flutters relayd[3293]: lost child: pfe exited abnormally" When I tried to start it with /usr/local/etc/rc.d/relayd start the kernel panicked. I had to roll back the update (which worked fine). However, I was able to reproduce this behavior on a virtual machine. My guess is it happens here: #7 0xffffffff81a37954 in pfr_detach_table (kt=0x0) at /usr/src_10.1.0/sys/modules/pf/../../netpfil/pf/pf_table.c:2047 The corresponding code is: void pfr_detach_table(struct pfr_ktable *kt) { PF_RULES_WASSERT(); KASSERT(kt->pfrkt_refcnt[PFR_REFCNT_RULE] > 0, ("%s: refcount %d\n", __func__, kt->pfrkt_refcnt[PFR_REFCNT_RULE])); if (!--kt->pfrkt_refcnt[PFR_REFCNT_RULE]) pfr_setflags_ktable(kt, kt->pfrkt_flags&~PFR_TFLAG_REFERENCED); } >From what I know about C programming: kt is not supposed to be 0x0. My guess was that some data structure has changed between 10.0 and 10.1 kernels. So a recompile of relayd should fix that. It did. I compiled it from the ports and it worked. Here's a procedure to reproduce the situation: * install FreeBSD 10.0-RELEASE, relayd (configure it, start pf and relayd) * update to FreeBSD 10.1-RELEASE using freebsd-update as described in the handbook * after some reboots start pf and relayd. After startup, relayd will simply crash. After the second startup (wait some seconds) the kernel will crash. doing a pkg update, pkg upgrade after freebsd-update won't help. In fact, the relayd binaries seem to be identical on 10.0 and 10.1. -- You are receiving this mail because: You are the assignee for the bug.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-195407-8>