Bug #1060

panic starting opera

Added by thomas.nikolajsen about 8 years ago. Updated about 8 years ago.

Status:ClosedStart date:
Priority:NormalDue date:
Assignee:-% Done:


Target version:-


With HEAD from yesterday, 8th July, I get a panic when starting opera.

This works with kernel from 7th July.

vmcore & kernel being uloaded to leaf, as .28.

KKASSERT introduced yesterday:

This is opera-9.10 browser from pkgsrc, it ises linux emulation in dfly and
normally works like a charm.

panic: assertion: kva_p(sopt->sopt_val) in soopt_to_kbuf

(kgdb) bt
#0 dumpsys () at ./machine/thread.h:83
#1 0xc01ccf46 in boot (howto=256) at /usr/src/sys/kern/kern_shutdown.c:375
#2 0xc01cd067 in panic (fmt=0xc038dd00 "assertion: %s in %s") at /usr/src/sys/kern/kern_shutdown.c:800
#3 0xc01fa9d1 in soopt_to_kbuf (sopt=0xd5c3bc8c, buf=0xd5c3bbb8, len=4, minlen=4) at /usr/src/sys/kern/uipc_socket.c:1248
#4 0xc01faa01 in sooptcopyin (sopt=0xd5c3bc8c, buf=0xd5c3bbb8, len=4, minlen=4) at /usr/src/sys/kern/uipc_socket.c:1240
#5 0xc01fb0cc in sosetopt (so=0xc9c02300, sopt=0xd5c3bc8c) at /usr/src/sys/kern/uipc_socket.c:1326
#6 0xc01fe255 in kern_setsockopt (s=10, sopt=0xd5c3bc8c) at /usr/src/sys/kern/uipc_syscalls.c:1052
#7 0xd5ae0412 in ?? ()
#8 0xc0367967 in syscall2 (frame=0xd5c3bd40) at /usr/src/sys/platform/pc32/i386/trap.c:1374
#9 0xc0359b66 in Xint0x80_syscall () at /usr/src/sys/platform/pc32/i386/exception.s:876
#10 0x28f2b162 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)


#1 Updated by aoiko about 8 years ago

Yeah, moving the copy{in,out} up the call path means it has to be done in
multiple places (i.e. in emulation/linux as well; I keep forgetting about
that). Sigh. Will fix this later today.


#2 Updated by hofmann about 8 years ago

I get a similar panic with


in rc.conf. Anyone else seeing that?


#3 Updated by aoiko about 8 years ago

On Wednesday 09 July 2008, Johannes Hofmann wrote:
> I get a similar panic with
> firewall_enable="YES"
> firewall_type="client"
> in rc.conf. Anyone else seeing that?

Can you post any relevant output? I'm drowining in PDEs and complex integrals
here, no time to reproduce...


#4 Updated by mneumann about 8 years ago

No, but could this commit have introduced a servere network performance
degradation? I'm now seeing 50 MB/s instead of recently 100 MB/s.



#5 Updated by aoiko about 8 years ago

Nevermind, I think I have it. We kmalloc(0) and kva_p() doesn't like the
resulting address. Must set sopt->sopt_val to NULL if !uap->val and
KKASSERT(!sopt->sopt_val || kva_p()) instead. I hope I'll have time to fix
it later, but feel free to beat me to it.


#6 Updated by hofmann about 8 years ago

Here it is. Just noticed that it is reproducible with vkernel so no
handwriting required:

Setting hostname: .
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
inet netmask 0xff000000
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
panic: assertion: kva_p(sopt->sopt_val) in so_pru_ctloutput
mp_lock = 00000000; cpuid = 0
Trace beginning at frame 0x56fd7b6c
panic(56fd7b90,567f1ea0,56fd7c4c,5702b5a8,56fd7bdc) at 0x80b7340
panic(820f09a,821acd6,821acec,0,2707000) at 0x80b7340
so_pru_ctloutput(567f1ea0,56fd7c4c,7,0,82f3a60) at 0x80e6a30
sosetopt(567f1ea0,56fd7c4c,5673f950,0,56fd7c98) at 0x80e7bcf
kern_setsockopt(3,56fd7c4c,1,0,34) at 0x80eadac
sys_setsockopt(56fd7c98,6,0,0,57018c00) at 0x80eb894
syscall2(56fd7d40,6,5702b5a8,57018c00,0) at 0x81fecae
user_trap(56fd7d40,5702b5a8,81fe2cc,0,81ff4e2) at 0x81feed8
go_user(56fd7d38,0,0,7b,0) at 0x81ff2db


PS: vkernels are great :-)

Also available in: Atom PDF