On Apr 2, 2010, at 4:52 AM, pluknet wrote: > On 1 April 2010 22:18, Oleg Lomaka <[email protected]> wrote: >> >> >> I have a kernel panic when connect to postgresql8.4 server installed in one >> of jails from another jail. It's 100% reproducible. >> Also I have tried to connect from host machine to jailed pg server. That way >> it works fine without crash. >> >> Server configuration uses geli and zfs. Four disks encrypted using geli. And >> raidz2 is using ad8.eli, ad10.eli, ad12.eli, ad14.eli providers. All jails >> located at this raidz2 pool. >> >> Also I use ezjail for jails management. And it uses NFS to mount directories >> with base system. >> >> atal double fault >> rip = 0xffffffff8063510a >> rsp = 0xffffff80eaec5f50 >> rbp = 0xffffff80eaec6040 >> cpuid = 1; apic id = 02 >> panic: double fault >> cpuid = 1 >> Uptime: 7m11s >> Physical memory: 8169 MB >> >> uname -a >> FreeBSD cerberus.regredi.com 8.0-STABLE FreeBSD 8.0-STABLE #7 r206031: Thu >> Apr 1 13:43:57 EEST 2010 >> [email protected]:/usr/obj/usr/src/sys/GENERIC amd64 >> >> Link to dmesg.boot: >> http://docs.google.com/leaf?id=0B-irbkAqk9i7OGY2ZWJiODgtOWJmMy00NDQ1LTliZDctZjU3N2YwNmMxNjZl&hl=en >> >> Link to kernel core backtrace: >> http://docs.google.com/Doc?docid=0AeirbkAqk9i7ZGc5Yzc2ZndfM2M4NzYydmRw&hl=en > > Looking at backtrace, I wonder whether tp->t_maxseg changes in > tcp_mtudisc() at all. > You should be able to extract its value on each 2*n frame in that big > recursive call.
You are right, pt->t_maxseg doesn't change (kgdb) frame 9 #9 0xffffffff807097e8 in tcp_mtudisc (inp=0xffffff00193c53f0, errno=Variable "errno" is not available. ) at tcp_offload.h:282 282 return (tcp_output(tp)); (kgdb) p tp->t_maxseg $1 = 14336 (kgdb) frame 11 #11 0xffffffff807097e8 in tcp_mtudisc (inp=0xffffff00193c53f0, errno=Variable "errno" is not available. ) at tcp_offload.h:282 282 return (tcp_output(tp)); (kgdb) p tp->t_maxseg $2 = 14336 ... (full log at http://docs.google.com/Doc?docid=0AeirbkAqk9i7ZGc5Yzc2ZndfNGQ4cWpia2dz&hl=en ) (kgdb) frame 81 #81 0xffffffff807097e8 in tcp_mtudisc (inp=0xffffff00193c53f0, errno=Variable "errno" is not available. ) at tcp_offload.h:282 282 return (tcp_output(tp)); (kgdb) p tp->t_maxseg $37 = 14336 (kgdb)
