Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 1 Oct 2009 15:24:17 +0400
From:      pluknet <pluknet@gmail.com>
To:        Robert Watson <rwatson@freebsd.org>
Cc:        FreeBSD Net <freebsd-net@freebsd.org>
Subject:   Re: panic in soabort
Message-ID:  <a31046fc0910010424n248e653ek93076eb56705e836@mail.gmail.com>
In-Reply-To: <a31046fc0910010417n7a35785boe631dfa30c1151a7@mail.gmail.com>
References:  <a31046fc0904230118m184b50adnd2cebb4d610f94ca@mail.gmail.com> <alpine.BSF.2.00.0904231038550.54334@fledge.watson.org> <a31046fc0904232104w380b7dabr1168b3df970c542a@mail.gmail.com> <alpine.BSF.2.00.0904252009420.91546@fledge.watson.org> <a31046fc0910010417n7a35785boe631dfa30c1151a7@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
2009/10/1 pluknet <pluknet@gmail.com>:
> 2009/4/25 Robert Watson <rwatson@freebsd.org>:
>>
>> On Fri, 24 Apr 2009, pluknet wrote:
>>
>>> 2009/4/23 Robert Watson <rwatson@freebsd.org>:
>>>>
>>>> On Thu, 23 Apr 2009, pluknet wrote:
>>>>
>>>>> Please, give me comment on this. The panic is on 6.2-REL. Is it known=
 to
>>>>> be fixed in the latter releases?
>>>>
>>>> It may well be -- there have been quite significant architectural
>>>> improvements to socket life cycle (etc) between 6.2 and 7.x releases, =
which
>>>> may well close the race causing this panic. =A0However, we'll probably=
 need to
>>>> learn a bit more in order to decide for sure. =A0Could you convert the
>>>> trapping instruction pointer to file+offset in the source code?
>>>
>>> Looks I've lost the corresponding kernel.debug. Anyway I have such bt t=
he
>>> first time.
>>
>> If you run into this again, let me know. =A0Also, are you using accept f=
ilters
>> on the box?
>>
>
> Got it again (this time on 6.4-p5).

P.S.
It's funny to say: I got it on two boxes nearly simultaneously.
Both from proftpd. See also my first mail (the same).

>
> Fatal trap 12: page fault while in kernel mode
> cpuid =3D 2; apic id =3D 02
> fault virtual address =A0 =3D 0x104
> fault code =A0 =A0 =A0 =A0 =A0 =A0 =A0=3D supervisor read, page not prese=
nt
> instruction pointer =A0 =A0 =3D 0x20:0xc06a3425
> stack pointer =A0 =A0 =A0 =A0 =A0 =3D 0x28:0xef764bb0
> frame pointer =A0 =A0 =A0 =A0 =A0 =3D 0x28:0xef764bbc
> code segment =A0 =A0 =A0 =A0 =A0 =A0=3D base 0x0, limit 0xfffff, type 0x1=
b
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =3D DPL 0, pres 1, def32 1, g=
ran 1
> processor eflags =A0 =A0 =A0 =A0=3D resume, IOPL =3D 0
> current process =A0 =A0 =A0 =A0 =3D 74303 (proftpd)
>
> db> bt 74303
> Tracing pid 74303 tid 101039 td 0xcaa08820
> _mtx_lock_sleep(ccd50768,caa08820,0,0,0) at _mtx_lock_sleep+0x9d
> soabort(ccd506f4) at soabort+0x82
> soclose(d1aa8b20) at soclose+0x21a
> soo_close(c9f50a20,caa08820) at soo_close+0x63
> fdrop_locked(c9f50a20,caa08820,caf78a00,ef764ca8,c06875f3,...) at
> fdrop_locked+0xd0
> fdrop(c9f50a20,caa08820,caa08820,ef764c64,c0689055,...) at fdrop+0x41
> closef(c9f50a20,caa08820,0,ef764d38,cad8f648,...) at closef+0x42f
> kern_close(caa08820,a,ef764d30,c08e1d4b,caa08820,...) at kern_close+0x20d
> close(caa08820,ef764d04) at close+0x10
> syscall(bfbf003b,3b,bfbf003b,8150034,811a434,...) at syscall+0x2bf
> Xint0x80_syscall() at Xint0x80_syscall+0x1f
> --- syscall (6, FreeBSD ELF32, close), eip =3D 0x2832230f, esp =3D
> 0xbfbfe6bc, ebp =3D 0xbfbfe6d8 ---
> db> show proc 74303
> Process 74303 (proftpd) at 0xcad8f648:
> state: NORMAL
> uid: 36830 =A0gids: 36830
> parent: pid 95478 at 0xc8e60000
> ABI: FreeBSD ELF32
> arguments: proftpd: fatich_1 - 93.118.217.18: IDLE
> threads: 1
> 101039 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 Run =A0 =A0 CPU 2 =A0 =A0 =A0 =
=A0 =A0 =A0 =A0 proftpd
>
> (gdb) list *(soabort+0x82)
> 0xc06ea2a6 is in soabort (/usr/src/sys/kern/uipc_socket.c:510).
> 505 =A0 =A0 =A0 =A0 =A0 =A0 int error;
> 506
> 507 =A0 =A0 =A0 =A0 =A0 =A0 error =3D (*so->so_proto->pr_usrreqs->pru_abo=
rt)(so);
> 508 =A0 =A0 =A0 =A0 =A0 =A0 if (error) {
> 509 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 ACCEPT_LOCK();
> 510 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 SOCK_LOCK(so);
> 511 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 sotryfree(so); =A0/* note: do=
es not decrement
> the ref count */
> 512 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 return error;
> 513 =A0 =A0 =A0 =A0 =A0 =A0 }
> 514 =A0 =A0 =A0 =A0 =A0 =A0 return (0);
>
> --
> wbr,
> pluknet
>



--=20
wbr,
pluknet



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?a31046fc0910010424n248e653ek93076eb56705e836>