On Thu, Sep 05, 2013 at 08:19:24AM +0200, Pawel Jakub Dawidek wrote: > On Thu, Sep 05, 2013 at 08:14:29AM +0200, Pawel Jakub Dawidek wrote: > > On Thu, Sep 05, 2013 at 05:44:48AM +0300, Konstantin Belousov wrote: > > > On Thu, Sep 05, 2013 at 12:09:57AM +0000, Pawel Jakub Dawidek wrote: > > > > Author: pjd > > > > Date: Thu Sep 5 00:09:56 2013 > > > > New Revision: 255219 > > > > URL: http://svnweb.freebsd.org/changeset/base/255219 > > > > > > Shortly after the boot of the updated kernel, I get: > > > > > > Fatal trap 12: page fault while in kernel mode > > > cpuid = 7; apic id = 07 > > > fault virtual address = 0x0 > > > fault code = supervisor read data, page not present > > > instruction pointer = 0x20:0xffffffff802f685a > > > stack pointer = 0x28:0xfffffe0235d50460 > > > frame pointer = 0x28:0xfffffe0235d504b0 > > > code segment = base 0x0, limit 0xfffff, type 0x1b > > > = DPL 0, pres 1, long 1, def32 0, gran 1 > > > processor eflags = interrupt enabled, resume, IOPL = 0 > > > current process = 199 (ip6addrctl) > > > [ thread pid 199 tid 100086 ] > > > Stopped at 0xffffffff802f685a = fget+0x2a: movq (%rdx),%rax > > > db> bt > > > Tracing pid 199 tid 100086 td 0xfffff80005351980 > > > fget() at 0xffffffff802f685a = fget+0x2a/frame 0xfffffe0235d504b0 > > > fdesc_lookup() at 0xffffffff80e6d88d = fdesc_lookup+0xed/frame > > > 0xfffffe0235d50510 > > > VOP_LOOKUP_APV() at 0xffffffff8057b54e = VOP_LOOKUP_APV+0x12e/frame > > > 0xfffffe0235d50560 > > > lookup() at 0xffffffff803d31b0 = lookup+0x5a0/frame 0xfffffe0235d505f0 > > > namei() at 0xffffffff803d2934 = namei+0x464/frame 0xfffffe0235d506c0 > > > vn_open_cred() at 0xffffffff803ee78f = vn_open_cred+0x27f/frame > > > 0xfffffe0235d50810 > > > kern_openat() at 0xffffffff803e7bfd = kern_openat+0x22d/frame > > > 0xfffffe0235d50980 > > > amd64_syscall() at 0xffffffff805387dd = amd64_syscall+0x28d/frame > > > 0xfffffe0235d50ab0 > > > Xfast_syscall() at 0xffffffff8051f21b = Xfast_syscall+0xfb/frame > > > 0xfffffe0235d50ab0 > > > --- syscall (5, FreeBSD ELF64, sys_open), rip = 0x800942d6a, rsp = > > > 0x7fffffffcff8, rbp = 0x7fffffffd030 --- > > > > > > (gdb) list *fget+0x2a > > > 0xffffffff802f685a is in fget > > > (/usr/home/kostik/work/build/bsd/DEV/src/sys/kern/kern_descrip.c:2385). > > > > > > I do not have any capsicum-related options in the kernel config. > > > > Do you have some local changes? Could you try to do full buildkernel? > > There were two compilation issues when CAPABILITIES option was absent in > > kernel configuration, so something isn't right is you were able to > > compile your kernel. I have local changes, but nothing in kern_descrip.c or VFS, for this branch. The trace above is from the clean kernel build. I do able to build the kernel without CAPABILITIES.
> > Forgot to mention that my test machine can boot fine with kernel > compiled without the CAPABILITIES option. If taking a time and actually looking at the backtrace I posted, you would see that fdescfs is broken. The _fget() assumes that needrightsp is always non-NULL, but fget() call from fdesc_lookup() passes NULL spelled as 0. Quick look over the sys/ catched at least sys/kern/vfs_aio.c:2053 sys/cddl/compat/opensolaris/sys/file.h:57 sys/compat/linux/linux_stats.c:148 sys/dev/aacraid/aacraid_linux.c:84 with the same problem.
pgp0xPD6rEYrf.pgp
Description: PGP signature