Автор Тема: килять висячии pptpctrl  (Прочитано 2260 раз)

Оффлайн Dethman

  • Начинающий
  • *
  • Сообщений: 3
    • Email
килять висячии pptpctrl
« : 19.10.2008 01:44:06 »
картина такая, есть впн сервер нагрузка от эээ 150 до 600 клиентов шифрования нет используется poptop, тут нигде не прячутся поклонники mpd ? :)
вобщем у pptpctrl есть вселая особенность:
каждый pptpctrl обязан родить pppd, а pppd в свою очередь при своей смерти должен убить pptpctrl который его родил.
в процессе работы возникают pptpctrl у которых нет pppd :) я так и не понял как так получается, либо пппд не родился, либо после смерти не убил pptpctrl. pptpcrl пытается общаться с pppd, которого на самом деле вобще нет :) что приводит к тому что pptpctrl начинает жрать бедный процессор :)
я это решил жеским способом - раз в минуту выбираю перлом pptpctrl у которых нет ни одного потомка и время жизни больше 5 секунд :) и отстреливаю, написано через одно место...
может кто-то знает как с таким боротся цивилизовано ?
любой код приятен :)

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 253
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: килять висячии pptpctrl
« Ответ #1 : 19.10.2008 09:13:34 »
Что-то у вас неправильно в идеологии. Не должен "потомок" напрямую убивать "родителя", потому, что всё должно быть наоборот - "родитель" должен при получении сигнала от потомка отметить - однём "дитём" меньше и когда их число станет равным нулю сам закончить свою работу. Иначе у после смерти первого "дитяти" "родитель" заканчивает свою работу и порождают кучу "зомби", которые еще и каждый пытается убить несуществующий процесс "родителя".

Оффлайн Dethman

  • Начинающий
  • *
  • Сообщений: 3
    • Email
Re: килять висячии pptpctrl
« Ответ #2 : 19.10.2008 14:36:27 »
Я не ковырял в глубь :)
Суть какая каждый pptpcrl рожает ;) pppd (1 и только один)
по завершении pppd :) pptpcrl маст дай, а у него, по непонятным причинам к этому пппд (мб не к нему а к сетевому девайсу) остаеются дела и он усиленно пытается оттуда что-то прочитать или записать, а pppd ( не важно девайса или процесса) уже нет ! это или у пппд буг или у поптопа, если у кого есть лекарство для них это интересно. но лекарства нед :) я не нашел
поэтому был вставлен костыль который отслеживает у какого pptpcrl нет потомков :) и время жизни большое (ибо на момент запуска pptpcrl  он может не успеть отфоркать pppd)
вобщем было ли у кого что-то подобное и как с этим боролись :)
там дерево вот такое
-pptpd---<pptpctrl(1)---pppd
          |
          +-<pptpctrl(2)---pppd
          |
          +-<pptpctrl(3) [бездетный]
так вот 3 pptpctrl хавет время процессора горстями
и его нужно отстреливать ... отстреливать сбоку :)

ЗЫ: короче объяснить не могу, в этом проблема пойду убью себя




Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 253
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Re: килять висячии pptpctrl
« Ответ #3 : 19.10.2008 15:58:28 »
1. А pptpd не может отстрелить ?
2. После окончания  pppd(3), pptpctrl(3 получанит сигнал об окончании работы pppd(3. Обычно он ловится wait, после этого <pptpctrl(3) должен сказать exit (можно ещё и открытые сокеты. каналы и др. файлы закрыть).

Оффлайн Dethman

  • Начинающий
  • *
  • Сообщений: 3
    • Email
Re: килять висячии pptpctrl
« Ответ #4 : 19.10.2008 16:59:00 »
хмм не совсем понял но идея позитивная... просто как ни старался в тепличных условиях явление не получается, только на боевой машине :)
а там поди разбери откуда что взялось ...