On Wed, Jun 28, 2023 at 02:38:00PM +0200, Alexander Bluhm wrote: > Hi, > > Since Jun 26 regress tests panic the kernel. > > panic: rw_enter: pfioctl_rw locking against myself > Stopped at db_enter+0x14: popq %rbp > TID PID UID PRFLAGS PFLAGS CPU COMMAND > * 19846 58589 0 0x2 0 1K pfctl > 343161 43899 0 0x2 0 2 perl > db_enter() at db_enter+0x14 > panic(ffffffff820e7d9d) at panic+0xc3 > rw_enter(ffffffff82462c60,1) at rw_enter+0x26f > pfioctl(24900,cd504407,ffff800000f4b000,1,ffff80002226adc0) at pfioctl+0x2da > VOP_IOCTL(fffffd827bfea6e0,cd504407,ffff800000f4b000,1,fffffd827f7e3bc8,ffff80002226adc0) > at VOP_IOCTL+0x60 > vn_ioctl(fffffd823b841d20,cd504407,ffff800000f4b000,ffff80002226adc0) at > vn_ioctl+0x79 > sys_ioctl(ffff80002226adc0,ffff800022458160,ffff8000224581c0) at > sys_ioctl+0x2c4 > syscall(ffff800022458230) at syscall+0x3d4 > Xsyscall() at Xsyscall+0x128 > end of kernel > end trace frame: 0x77becbc54dd0, count: 6 > https://www.openbsd.org/ddb.html describes the minimum info required in bug > reports. Insufficient info makes it difficult to find and fix bugs. > ddb{1}> > > Triggered by regress/sbin/pfctl > > ==== pfload ==== > ... > /sbin/pfctl -o none -a regress -f - < /usr/src/regress/sbin/pfctl/pf90.in > /sbin/pfctl -o none -a 'regress/*' -gvvsr | sed -e > 's/__automatic_[0-9a-f]*_/__automatic_/g' | diff -u > /usr/src/regress/sbin/pfctl/pf90.loaded /dev/stdin > /sbin/pfctl -o none -a regress -Fr >/dev/null 2>&1 > /sbin/pfctl -o none -a regress -f - < /usr/src/regress/sbin/pfctl/pf91.in > /sbin/pfctl -o none -a 'regress/*' -gvvsr | sed -e > 's/__automatic_[0-9a-f]*_/__automatic_/g' | diff -u > /usr/src/regress/sbin/pfctl/pf91.loaded /dev/stdin > Timeout, server ot6 not responding. > > bluhm >
sys/net/pf_ioctl.c r1.406 from that day is the culprit, I'll revert it now: Close all pf transactions before opening a new one in DIOCGETRULES.