LINUX.ORG.RU
ФорумAdmin

Периодически возникает Fatal signal 6 на сервере

 ,


0

1

Всем привет! Описываю ситуацию: Сменили сервер, операционку, сетевуху. Стало Ubuntu 14.10 вместо 10.04 (ядро 3.16 вместо 2.6.32), сетевая i350 четырёхголовая с двумя bond (balance-xor) по два порта вместо 82376 двухголовой. Используется что раньше, что сейчас: собранный accel-pptpd (именно pptpd). На старой системе всё работало как часы. Сейчас имеем проблемы: Периодически не подключаются клиенты, получая (под оффтопиком) ошибку 619. В логах имеем:

Apr  3 09:27:06 nas2 pptpd[65594]: CTRL: Starting call (launching pppd, opening GRE)
Apr  3 09:27:06 nas2 pppd[65595]: Plugin radius.so loaded.
Apr  3 09:27:06 nas2 pppd[65595]: RADIUS plugin initialized.
Apr  3 09:27:06 nas2 pppd[65595]: Plugin radattr.so loaded.
Apr  3 09:27:06 nas2 pppd[65595]: RADATTR plugin initialized.
Apr  3 09:27:06 nas2 pptp[65595]: Plugin pptp.so loaded.
Apr  3 09:27:06 nas2 pptp[65595]: PPTP plugin version 0.8.5 compiled for pppd-2.4.5, linux-..
Apr  3 09:27:06 nas2 pptp[65595]: pppd 2.4.5 started by lknsfos, uid 0
Apr  3 09:27:06 nas2 pptp[65595]: Using interface ppp593
Apr  3 09:27:06 nas2 pptp[65595]: Connect: ppp593 <--> pptp (10.11.124.14)
Apr  3 09:27:06 nas2 pptp[65595]: Cannot determine ethernet address for proxy ARP
Apr  3 09:27:06 nas2 pptp[65595]: local  IP address 10.12.255.253
Apr  3 09:27:06 nas2 pptp[65595]: remote IP address 10.12.2.82
Apr  3 09:27:06 nas2 pptp[65595]: Fatal signal 6
Apr  3 09:27:06 nas2 pptp[65595]: Exit.
Apr  3 09:27:06 nas2 pptpd[65594]: CTRL: Reaping child PPP[65595]
Apr  3 09:27:06 nas2 pptpd[65594]: CTRL: Client pppd TERM sending
Apr  3 09:27:06 nas2 pptpd[65594]: CTRL: Client pppd finish wait
Apr  3 09:27:06 nas2 pptpd[65594]: CTRL: Client 10.11.124.14 control connection finished
Режим дебага информации больше не даёт - всё тот же Fatal signal 6 без каких либо пояснений.

По началу грешил на pppd встроенный в Ubuntu, пересобирал версии от 2.4.7 до 2.4.5 - везде одинаково.

Из странностей отмечу, что с довольно странной периодичностью возникает эта ошибка - в любой момент и длится ровно пять минут. Ничего сверхъестественного в логах ни до ни после этого периода нет. Чем часопиковей время - тем чаще наступает эта пятиминутка - ночью раза три, часов в 19 - каждые 10 минут. Есть три основных подозрения:

1. Какая-то проблема с MTU: на старой системе всё работало отлично без прямого указания MTU в options от pppd, на этой системе часть клиентов не могла подключиться (получали ту же ошибку 619), часть подключались, но сайты не открывались, пока не прописал в options mtu 1400, mru 1400 и не добавил iptables -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

2. Bonding - был введён бондинг, а как следствие, может есть его косяк?

3. Багнутое ядро?

Буду рад любым советам и думам.

Ах да, пробовал accel-pppd - но то kernel panic, то постоянные обрывы соединений пока не дают его внедрить¸ потому пока accel-pptpd. Модуль ядра pptp - встроенный.



Последнее исправление: KarpONE (всего исправлений: 1)
Ответ на: комментарий от akhmylin

Версии ниже 14.10 не ставятся на эту железку с её Raid ни в какую - при установке получаю пустой экран в момент определения дисков и бесконечную попытку подключить raid в логах.

KarpONE
() автор топика
Ответ на: комментарий от akhmylin

noproxyarp не помогло.

Cannot determine ethernet address for proxy ARP пропало конечно, но оно никогда не мешало... fatal signal 6 так и появляется на злосчастные 5 минут...

KarpONE
() автор топика

Небольшой update:

собрал xl2tpd - точно также не коннектится в это же время, что и pptpd. затем тест: параллельно пускаю pptpd и accel-pppd с запущенным только l2tp сервером - pptp с ошибкой, l2tp без.

bonding и модуль ядра pptp отпадают... Куда теперь рыть совершенно не знаю, чем ещё системе неугоден pppd может быть?...

KarpONE
() автор топика

Сигнал 6 это SIGABRT, скорее всего какой-то assert в коде.

i-rinat ★★★★★
()

У вас Убунта на сервере

this

nbw ★★★
()
Последнее исправление: nbw (всего исправлений: 1)
18 октября 2016 г.

Баг в коде pppd (util.c)

Может кому пригодится:

On systems with more than 65535 processes running, pppd aborts when sending a «start» accounting message to the RADIUS server because of a buffer overflow in rc_mksid.

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=782450

Стоит отметить, что не обязательно должно быть запущено более 65535 процессов одновременно. Поскольку PID-ы выдаются всё дальше и дальше (просто по порядку, даже если процессы с меньшими PID-ами завершаются) то рано или поздно ppp попадает на PID больше 65535 (как скоро зависит от времени работы системы и частоты завершения/запуска процессов).

Была такая же проблемма, патч помог.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.