trap 12: supervisor write,
page not present on 6.1-STABLE Tue May 16 2006
Stanislaw Halik
sthalik at tehran.lain.pl
Fri Jun 30 12:06:14 UTC 2006
On Wed, Jun 28, 2006, Robert Watson wrote:
>>>> 6.1-STABLE crashed on me. I'm providing a backtrace. Could any of you,
>>>> experienced people, suggest me if it's a hardware problem or is it an
>>>> error inside the OS?
>>> This is a known bug in the TCP code; a large set of outstanding changes
>>> is present in 7.x that will fix the problem when merged. However, I
>>> recently had push-back on merging the larger batch of changes, so am
>>> looking at merging a workaround that will also correct the problem
>>> without the larger set of architectural changes. I hope to have a chance
>>> to look at that in detail this weekend.
>> I'm glad to know that it isn't either unknown or hardware-related. Thank
>> you for your prompt reply!
> Per my earlier e-mail, I had hoped to merge a larger set of changes from
> HEAD that resolve the underlying problem here (that inpcb's can be detached
> from a socket while the socket is still in use), but right now I'm
> deferring merging those changes as they are somewhat risky (as they are
> large). Instead, I've produced a candidate work-around patch, now attached
> to kern/97095. This does not fix the underlying problem, but seeks to
> narrow the window for the race to be exercised by avoiding caching a
> volatile pointer across user memory copying, which under load can result in
> blocking I/O. I would be quite interested in knowing if this resolves the
> problem in practice -- if so, it's a definite short-term merge candidate to
> reduce the symptoms of this problem until the proper fix can be merged.
Unfortunately, it still happens to crash in the same code path:
(kgdb) up 7
#7 0xc058e947 in ip_ctloutput (so=0x0, sopt=0xd67f2c80) at
/usr/src/sys/netinet/ip_output.c:1216
1216 inp->inp_ip_tos = optval;
(kgdb) l /usr/src/sys/netinet/ip_output.c:1216
1211 break;
1212
1213 inp = sotoinpcb(so);
1214 switch (sopt->sopt_name) {
1215 case IP_TOS:
1216 inp->inp_ip_tos = optval;
1217 break;
1218
1219 case IP_TTL:
1220 inp->inp_ip_ttl = optval;
(kgdb) p inp
$1 = (struct inpcb *) 0x0
I'll be happy to test any other patches when they're available.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20060630/672cb1de/attachment.pgp
More information about the freebsd-stable
mailing list