-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi Jérémie,
The next panic - again exactly at the same place. Your patch below produced the
following output:
panic: tcp_input:647: 0xfffffe84f10ac658 != 0xfffffe8522ecb1b0 - see screenshot
appended.
Again the console was frozen - I had to reset the box.
Memory wise there are two things, which I used:
For the database:
kern.shminfo.shmall=32768
Furthermore, I use a RAM disk (mfs) for tmp space: In /etc/fstab:
swap /rd mfs rw,-s=1000000 0 0
However, This all worked for years under 5.2 and older releases.
It seems, the system is running for about 3 - 5 days, and then the kernel
crashes.
Is there a way to patch the kernel at tcp_input to automatically generate a
core, if it crases?
Any further suggestions?
- Peter
On 20.05.14 00:58, Jérémie Courrèges-Anglas wrote:
> [email protected] (Jérémie Courrèges-Anglas) writes:
>
>> [email protected] writes:
>>
>>>> Synopsis: OpenBSD 5.5 kernel panic tcp_inpuc.c line 644 Category: panic
>>>> Environment:
>>> System : OpenBSD 5.5 Details : OpenBSD 5.5 (GENERIC.MP) #315: Wed
>>> Mar 5 09:37:46 MST 2014
>>> [email protected]:/usr/src/sys/arch/amd64/compile/GENERIC.MP
>>>
>>> Architecture: OpenBSD.amd64 Machine : amd64
>>>> Description:
>>> Kernel panic: panic: kernel diagnostic assertion
>>> "sotoinpcp(inp->inp_socket) == inp" failed: file
>>> "../../../tinet/tcp_input.c", line 644
>>>
>>> Console was frozen - nor further commands - ps, trace etc was possible.
>>>
>>>> How-To-Repeat:
>>> Happend twice withing 3 days
>>
>> You should give details about your config. Interfaces, addressing,
>> listening daemons, pf setup, etc.
>>
>> Also, was it the exact same error? If not, have you performed a memory
>> check?
>>
>> The following diff might give more details (to be applied from /usr/src/sys).
>
> Let's not print the same comparison twice...
>
> Index: netinet/tcp_input.c
> =================================================================== RCS file:
> /cvs/src/sys/netinet/tcp_input.c,v retrieving revision 1.272 diff -u -p
> -r1.272 tcp_input.c --- netinet/tcp_input.c
> 24 Jan 2014 18:54:58 -0000 1.272 +++ netinet/tcp_input.c 19 May 2014
> 22:55:29 -0000 @@ -641,8 +641,10 @@ findpcb:
> goto dropwithreset_ratelim; } } - KASSERT(sotoinpcb(inp->inp_socket) ==
> inp); - KASSERT(intotcpcb(inp)->t_inpcb ==
> inp); + if (sotoinpcb(inp->inp_socket) != inp) +
> panic("%s:%d: %p != %p", __func__, __LINE__, inp->inp_socket,
> inp); + if (intotcpcb(inp)->t_inpcb != inp) + panic("%s:%d:
> %p != %p", __func__, __LINE__,
> intotcpcb(inp)->t_inpcb, inp);
>
> /* Check the minimum TTL for socket. */ if (inp->inp_ip_minttl &&
> inp->inp_ip_minttl > ip->ip_ttl)
Comment: GPGTools - http://gpgtools.org
iD8DBQFTgvFXZFR7Ae3oDfYRAgCUAJ0YH5SSp0HSMeUP2VFB2ClXz/KobgCeOcJN
fas57LO4XwWYshz1lRse7IQ=
=F7++
-----END PGP SIGNATURE-----