Небольшой маршрутизатор - 2 сетевухи 4 модема на freebsd 6.2 пару часов работает прекрасно, через 2-4 часа на консоли вываливается "кернел паник" и комп перегружается. В логах ничего не остается. Этот вопрос я уже задавал, но у меня не было возможности следить за темой (командировка) поэтому не смог вовремя ответить на вопрос.
>>Собирайте ядро с отладочной информацией, получайте дамп памяти и показывайте бэктрейс.Unread portion of the kernel message buffer:
Fatal trap 12: page fault while in kernel mode
fault virtual address = 0x2
fault code = supervisor write, page not present
instruction pointer = 0x20:0xc0551950
stack pointer = 0x28:0xc7d41ad0
frame pointer = 0x28:0xc7d41adc
code segment = base 0x0, limit 0xfffff, type 0x1b
= DPL 0, pres 1, def32 1, gran 1
processor eflags = interrupt enabled, resume, IOPL = 0
current process = 11 (swi1: net)
trap number = 12
panic: page fault
Uptime: 4h7m21s
Dumping 127 MB (2 chunks)
chunk 0: 1MB (160 pages) ... ok
chunk 1: 127MB (32496 pages) 111 95 79 63 47 31 15#0 doadump () at pcpu.h:165
165 __asm __volatile("movl %%fs:0,%0" : "=r" (td));
(kgdb) backtrace
#0 doadump () at pcpu.h:165
#1 0xc051d546 in boot (howto=260) at ../../../kern/kern_shutdown.c:409
#2 0xc051d7dc in panic (fmt=0xc0696705 "%s") at ../../../kern/kern_shutdown.c:5
65
#3 0xc06762b4 in trap_fatal (frame=0xc7d41a90, eva=2) at ../../../i386/i386/tra
p.c:837
#4 0xc067601b in trap_pfault (frame=0xc7d41a90, usermode=0, eva=2) at ../../../
i386/i386/trap.c:745
#5 0xc0675c59 in trap (frame=
{tf_fs = 8, tf_es = 40, tf_ds = 40, tf_edi = 1, tf_esi = -1046906824, tf_e
bp = -942400804, tf_isp = -942400836, tf_ebx = 0, tf_edx = -2, tf_ecx = -3, tf_e
ax = -536870913, tf_trapno = 12, tf_err = 2, tf_eip = -1068164784, tf_cs = 32, t
f_eflags = 590467, tf_esp = -1046906824, tf_ss = -1043760319}) at ../../../i386/
i386/trap.c:435
#6 0xc066432a in calltrap () at ../../../i386/i386/exception.s:139
#7 0xc0551950 in putc (chr=125, clistp=0xc1997838) at ../../../kern/tty_subr.c:
416
#8 0xc0595455 in pppasyncstart (sc=0xc1a03600) at ../../../net/ppp_tty.c:597
#9 0xc059078e in pppoutput (ifp=0xc1978c00, m0=0xc1c97b00, dst=0xc1a19250, rtp=
0xc1a9a6b4) at ../../../net/if_ppp.c:961
#10 0xc05b20bc in ip_output (m=0xc1c97b00, opt=0xc1978c00, ro=0xc7d41b78, flags=
0, imo=0x0, inp=0x0)
at ../../../netinet/ip_output.c:777
#11 0xc05af765 in icmp_send (m=0xc1c97b00, opts=0x0) at ../../../netinet/ip_icmp
.c:828
#12 0xc05af6da in icmp_reflect (m=0xc1c97b00) at ../../../netinet/ip_icmp.c:792
#13 0xc05af2bc in icmp_input (m=0xc1c97b00, off=20) at ../../../netinet/ip_icmp.
c:536
#14 0xc05b00ad in ip_input (m=0xc1c97b00) at ../../../netinet/ip_input.c:785
#15 0xc0594aaf in netisr_processqueue (ni=0xc0745158) at ../../../net/netisr.c:2
36
#16 0xc0594caa in swi_net (dummy=0x0) at ../../../net/netisr.c:349
#17 0xc05087f5 in ithread_execute_handlers (p=0xc18d1a78, ie=0xc18cf480) at ../.
./../kern/kern_intr.c:682
#18 0xc0508900 in ithread_loop (arg=0xc18a0730) at ../../../kern/kern_intr.c:765
#19 0xc050777c in fork_exit (callout=0xc05088ac <ithread_loop>, arg=0xc18a0730,
frame=0xc7d41d38)
at ../../../kern/kern_fork.c:821
#20 0xc066438c in fork_trampoline () at ../../../i386/i386/exception.s:208
(kgdb)
>>>Собирайте ядро с отладочной информацией, получайте дамп памяти и показывайте бэктрейс.Рекомендации от Rober Watson:
1. Попробовать установить debug.mpsafenet=0 в /boot/loader.conf
Если баг исчезнет, напишите здесь, если не исчезнет или debug.mpsafenet уже 0, то:
2. Добавить в ядро поддержку INVARIANTS, WITNESS и DDB, дождаться паники, набрать в консоли DDB: show alllocks
Всё это дело либо сфоткать, либо через последовательную консоль с другого компа сохранить.
Писать сюда и отлаживаться дальше.. Можете напрямую к rwatson@freebsd.org писать, чтобы мне не быть связным..
>2. Добавить в ядро поддержку INVARIANTS, WITNESS и DDB, дождаться паники, набратьdebug.mpsafenet должно быть 1 в этом случае.
>>2. Добавить в ядро поддержку INVARIANTS, WITNESS и DDB, дождаться паники, набрать
>
>debug.mpsafenet должно быть 1 в этом случае.
>1. Попробовать установить debug.mpsafenet=0 в /boot/loader.conf
>Если баг исчезнет, напишите здесь, если не исчезнет или debug.mpsafenet уже 0, то:большое спасибо, debug.mpsafenet=0 помогло, комп уже 3 сутки работает прекрасно. Подскажите еще, пожалуйста, что значат записи в /var/log/messages (ДНС работает нормально)
server named[599]: could not listen on UDP socket: permission denied
server named[599]: creating IPv4 interface ppp0 failed; interface ignored
server named[599]: could not listen on UDP socket: permission denied
server named[599]: creating IPv4 interface ppp1 failed; interface ignored
server named[599]: could not listen on UDP socket: permission denied
server named[599]: creating IPv4 interface ppp2 failed; interface ignored
>server named[599]: could not listen on UDP socket: permission denied
>server named[599]: creating IPv4 interface ppp0 failed; interface ignored
>server named[599]: could not listen on UDP socket: permission denied
>server named[599]: creating IPv4 interface ppp1 failed; interface ignored
>server named[599]: could not listen on UDP socket: permission denied
>server named[599]: creating IPv4 interface ppp2 failed; interface ignoredну видимо named у тебя работает не под рутом, ppp интерфейсы поднимаются после его запуска
он пытается начать слушать на них и жестоко обламывается, о чем честно сообщает