LINUX.ORG.RU

fork, socket, pipe and 100% CPU usage


0

0

Народ, подскажите, как может глюкануть процес, который делает
или сделан через fork, работает с socket и pipe, и начинает хавать
все CPU. Происходить это все у клиентов, в офисе у себя повторить не могу, остается толька догадыватся... :-(((
Забыл сказать, стоит это все на RH 6.2, который просто с коробки.

anonymous

Я писал процессы с точно таким же поведением, которые хавали все процессорное время без каких-либо fork'ов, pipe'ов и socket'ов!!! :-) Так что не факт, что процесс глючит именно из-за этого.

Одним словом, в вопросе недостаточно информации. Если перевести твой вопрос на человечий язык, он звучит так: "Вот есть приложение (сколько сотен тысяч строк в нем мне доподлинно не известно), я точно знаю, что там есть функции fork, pipe и socket (про то используются ли другие функции и системные вызовы мне доподлинно не известно), не подскажите ли, почему что-то не работает?"

Можно только посоветовать почитать маны и еще раз проверить свою программу на корректность, а потом составить более определенный вопрос, чтоб затем на него получить более определенный ответ.

И еще, как правило, имеет смысл потрудится и найти то место в своем коде, которое ответственно за глюк. Локализовать местоположение глюка до одной страницы кода. Смоделировать ситуацию в тестовой программе. А потом ее исходник запостить сюда. С вопросом: "Вот типа код, который делает то-то и то-то, но почему-то криво, это выражается в том-то и том-то. Помогите, люди добрые! Укажите, где я лоханулся!!!".

Думаю, когда ты локализуешь свой баг до размеров страницы, ты его и без посторонней помощи найдешь. :-)

Успехов в труде!!!

LegaT
()

Ясно, что где-то циклит. Может и без всяких там socket/pipe/fork.
Если же pipe/socket, то типичной является ошибка в обработке конца
соединения. Типа вечное чтение из закрытого потока.
Сплошные системные вызовы - очень даже обременительно.
Вообще можно послать какой-либо злобный сигнал (CTRL-\) или SIGQUIT,
получить коряшку (core) у клиента.
Ну, а он перешлет для анализа ежели секретов нет.
gdb xxx core
Иногда помогает. Ну а ежели прямой коннект есть ...

io ★★
()
Ответ на: комментарий от io

Сделать core это идея, но не получаеться, процес пущен под рутом как демон, ulimit -c unlimited делал, не помогает.

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