powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / segmentation fail, inittab и ps x
24 сообщений из 24, страница 1 из 1
segmentation fail, inittab и ps x
    #34592807
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть приложение, которое висит в inittab и необходимо его иногда перезапускать. Есть у этого приложения два дополнительных свойства:
1) Перезапускается путем посылки сигнала SIGUSR1 (ловит сигнал, ставит флаг, потом его читает из бесконечного цикла из main и бьет объекты).
2) На данной стадии развития приложения не умеет корректно завершаться и падает в sigmentaion fail.

Значит, перезапуск обстоит следующим образом: посылается сигнал на убийство, потом сразу же читается из ps x запущено ли приложение (назовем его П1).

Что происходит в данный момент? Приложение (П1) запускается через inittab не непосредственно, а через скрипт (С1). Этот скрипт выполняет перед запуском П1 некоторую работу, разделяя ее sleep-ами. Потом он запускает П1. Так вот. Когда когда приложению приходит сигнал оно рушиться вместе со скриптом, inittab пытается поднять этот скрипт по новой. Он поднимает его нормально, С1 потом поднимает П1, и все хорошо. Но если во время краха или сразу после него (неизвстно, но непосредственно после посылки сигнала SIGUSR1) происходит запрос у "ps x", то система виснет намертво.

Такая вот печальная история. Что тут не корректного и как это исправить?
...
Рейтинг: 0 / 0
segmentation fail, inittab и ps x
    #34592861
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привожу этот ps при котором происходит зависание:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
debug_if_need "test ps 1/5: ps x..."
ps x
debug_if_need "test ps 2/5: ps x | grep $SERVER_NAME"
ps x | grep $SERVER_NAME
debug_if_need "test ps 3/5: ps x | grep $SERVER_NAME | grep -v grep"
ps x | grep $SERVER_NAME | grep -v grep
debug_if_need "test ps 4/5: ps x | grep $SERVER_NAME | grep -v grep | wc -l"
ps x | grep $SERVER_NAME | grep -v grep | wc -l
debug_if_need "test ps 5/5: working continue"

N_THREADS="`ps x | grep $SERVER_NAME | grep -v grep | wc -l`"
debug_if_need "Amounth of threads is $N_THREADS"
if [ $N_THREADS -eq "0" ]; then
    echo_if_need "$SERVER_NAME_ECHO stoped."
    exit - 1 
else
    echo_if_need "$SERVER_NAME_ECHO running."
    exit  0 
fi


Система отдает предпочтение выделенным ps.
ПС: debuf_if_need это всего лишь echo "$1" в if-е, который проверяет флаг, надо ли выводить отладочные сообщения.

ППС: В консоль не выводится сообщение sigmentation fail. По всей видимости зависание происходит во время краха приложения

ПППС: Если поставить задержку перед ps, чтобы крах гарантированно завершился, то все нормально.

Проблема ядра? Решить никак?
...
Рейтинг: 0 / 0
segmentation fail, inittab и ps x
    #34593039
Фотография Умаксуман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
" На данной стадии развития приложения не умеет корректно завершаться и падает в sigmentaion fail." - это как?!
Ну и стиль у вас

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


--------------
Если враг не сдается - его перегружают
...
Рейтинг: 0 / 0
segmentation fail, inittab и ps x
    #34593250
Фотография Умаксуман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В целом подход тоже супер - останавливаем приложение,все виснет, ага, бага в ядре! Гениально!
...
Рейтинг: 0 / 0
segmentation fail, inittab и ps x
    #34596577
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Умаксуман" На данной стадии развития приложения не умеет корректно завершаться и падает в sigmentaion fail." - это как?!
Ну и стиль у вас


Стиль, как стиль. Не пойму, что не понятного.

Умаксуман
Для начала развейте приложение до того, чтобы оно корректно завершалось, а потом ловите баги. А то получается баг на баге, а потом баги ищите.


Так это у меня баг на баге? Понятно, что на баге, но баг ли это?

Я не спрашивал, что мне сначала делать? Я с прашивал что делать с анализом - работает приложение или нет?
...
Рейтинг: 0 / 0
segmentation fail, inittab и ps x
    #34596585
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
УмаксуманВ целом подход тоже супер - останавливаем приложение,все виснет, ага, бага в ядре! Гениально!

Если почитать внимательно, то будет понятно: останавливаем приложение - ничего не виснет (6-е предложение 3-го абзаца). Я так понимаю, вы непоняли, ровным счетом, ничего.
...
Рейтинг: 0 / 0
segmentation fail, inittab и ps x
    #34598080
Фотография Умаксуман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тебе нужно сначало сделать так, чтобы приложение завершалось без всяких сегфолтов - это значительно облегчит поиск бага.

--------------
Если враг не сдается - его перегружают
...
Рейтинг: 0 / 0
segmentation fail, inittab и ps x
    #34598413
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
УмаксуманТебе нужно сначало сделать так, чтобы приложение завершалось без всяких сегфолтов - это значительно облегчит поиск бага.


Это я обязательно сделаю, но это не задача первостепенной важности.

Ну, а когда она будет завершаться корректно, тогда и баг сам пропадет.

2 all: Вообщем, я так понял, народ не в курсе как понимать данную ситуацию?
...
Рейтинг: 0 / 0
segmentation fail, inittab и ps x
    #34598441
--null--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я вообще-то согласен , что сначала надо бороться с seg fault.
но по теме -ежели виснет ps - попробовать его заменить, скажем, чтением /proc
им посмтреть, что из этого выйдет!
...
Рейтинг: 0 / 0
segmentation fail, inittab и ps x
    #34599265
Фотография v6y
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akh
2 all: Вообщем, я так понял, народ не в курсе как понимать данную ситуацию?

Ситуация несколько нетипичная. Не должно вешать систему (тем более намертво) то что ты описал. Так что очень может быть, что либо ты что-то упустил, либо о чем-то умолчал. Если есть возможность и желание, выложи здесь сырцы проги и скрипта, а также соответствующую строчку из иниттаба.
...
Рейтинг: 0 / 0
segmentation fail, inittab и ps x
    #34599302
Фотография Умаксуман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
v6y Akh
2 all: Вообщем, я так понял, народ не в курсе как понимать данную ситуацию?

Ситуация несколько нетипичная. Не должно вешать систему (тем более намертво) то что ты описал. Так что очень может быть, что либо ты что-то упустил, либо о чем-то умолчал. Если есть возможность и желание, выложи здесь сырцы проги и скрипта, а также соответствующую строчку из иниттаба.

Да что ты ему объясняешь, это ж очередной непризнанный гений, нам, плебеям, его не понять. Лучше мне объясни, как так можно - у приложения баг при остановке, автор это знает, никак это не пытается исправить и думает, что это баг в ядре? Я почему-то думал, что сначала надо исправлять все очевидные ошибки, а потом браться за неочевидные.
...
Рейтинг: 0 / 0
segmentation fail, inittab и ps x
    #34599340
Фотография v6y
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Умаксуман
Меня заинтересовал сам факт того что система повисла намертво. Баг, не баг, но такого (если все делать правильно) быть не должно. Тут недавно один из моих молодых бойцов при реализации похожей связки сам себе "fork bombing" устроил. Но там просто все повисло (что собственно вполне понятно) , а здесь виснет, по словам автора, только при обращении к ps (сканировании /proc?).
...
Рейтинг: 0 / 0
segmentation fail, inittab и ps x
    #34599373
--null--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, то, что пользовательский процесс вешает систему - это однозначно странно. Безотносительно к тому, что баг, несомненно, надо исправлять.
...
Рейтинг: 0 / 0
segmentation fail, inittab и ps x
    #34600941
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
v6y Akh
2 all: Вообщем, я так понял, народ не в курсе как понимать данную ситуацию?

Ситуация несколько нетипичная. Не должно вешать систему (тем более намертво) то что ты описал. Так что очень может быть, что либо ты что-то упустил, либо о чем-то умолчал. Если есть возможность и желание, выложи здесь сырцы проги и скрипта, а также соответствующую строчку из иниттаба.

inittab
7:2345:respawn:/prog_dir/proga_file


Скрипт примерно такой:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
#!/bin/bash

SERVER="_proga"
SERVER_DIR="/proga/elf/"
OWN_DIR="/proga/"
LOG_FILE="progalog"

echo "" >>$OWN_DIR$LOG_FILE
echo "`date` proga starting..." >>$OWN_DIR$LOG_FILE
sleep  1 
#Так пока работает
#echo "`date` cronyx stoping..." >>$OWN_DIR$LOG_FILE
#cronyx.stop
sleep  1 
#echo "`date` cronyx starting..." >>$OWN_DIR$LOG_FILE
#cronyx.start
sleep  1 
echo "`date` sconfig starting..." >>$OWN_DIR$LOG_FILE
${OWN_DIR}cfgs/sconfig
sleep  8 
echo "`date` proga starting..." >>$OWN_DIR$LOG_FILE
cd $SERVER_DIR
./$SERVER
cd $OWN_DIR
sleep  1 
echo "`date` proga stoped" >>$OWN_DIR$LOG_FILE

Сырцы проги не помогут, т.к. их в первую очередь много (50 тыс строк). Могу в дополнении сказать, что там сразу используется несколько сокетов езернет, дискрипторы файлов и 31 открытый виртуальны порт реализуемый загруженными драйверами. В дополенении в проге порядка 20-ти потоков, множество мьютексов, шаренная память, и если менее 10-ти труб.

Вроде бы больше нечего умалчать.
...
Рейтинг: 0 / 0
segmentation fail, inittab и ps x
    #34600943
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
УмаксуманДа что ты ему объясняешь, это ж очередной непризнанный гений, нам, плебеям, его не понять.

Респект признаным гениям.
...
Рейтинг: 0 / 0
segmentation fail, inittab и ps x
    #34600946
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
--null--да, то, что пользовательский процесс вешает систему - это однозначно странно. Безотносительно к тому, что баг, несомненно, надо исправлять.

Что же вы к этому багу прицепились? Есстественно, он будет исправляться в ближайшее время и, есстественно, эта задача имеет высокий приоритет.
...
Рейтинг: 0 / 0
segmentation fail, inittab и ps x
    #34600953
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
v6yНо там просто все повисло (что собственно вполне понятно) , а здесь виснет, по словам автора, только при обращении к ps (сканировании /proc?).

Причем довольно стопроцентно.
...
Рейтинг: 0 / 0
segmentation fail, inittab и ps x
    #34600956
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, да, еще одно уточнение - система ASP v10.
...
Рейтинг: 0 / 0
segmentation fail, inittab и ps x
    #34601737
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
v6y2 Умаксуман
Меня заинтересовал сам факт того что система повисла намертво. Баг, не баг, но такого (если все делать правильно) быть не должно. Тут недавно один из моих молодых бойцов при реализации похожей связки сам себе "fork bombing" устроил. Но там просто все повисло (что собственно вполне понятно) , а здесь виснет, по словам автора, только при обращении к ps (сканировании /proc?).

Это может быть и замедленный "fork bombing" - это когда количество defunct -ов переваливает все разумные пределы .
А ps просто не в состоянии их переварить.
...
Рейтинг: 0 / 0
segmentation fail, inittab и ps x
    #34601873
Фотография v6y
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akh v6yНо там просто все повисло (что собственно вполне понятно) , а здесь виснет, по словам автора, только при обращении к ps (сканировании /proc?).

Причем довольно стопроцентно.

Интересно... ps просто сканирует папки из proc названия которых состоят из цифр и мне как то трудно представить как такое сканирование само по себе может намертво повесить систему.


Сырцы проги не помогут, т.к. их в первую очередь много (50 тыс строк). Могу в дополнении сказать, что там сразу используется несколько сокетов езернет, дискрипторы файлов и 31 открытый виртуальны порт реализуемый загруженными драйверами. В дополенении в проге порядка 20-ти потоков, множество мьютексов, шаренная память, и если менее 10-ти труб.

Напугал однако :). Особенно 31 открытым портом, реализуемым загруженными драйверами. Но без сырцов программы это будет гадание на кофейной гуще. Может сможешь создать какой-нибудь воспроизводимый пример? Не всю прогу, а нечто сильно покоцанное на ее основе, но ведущее себя соответствующим странным образом?


2 onstat-
Да скорее всего что то типа того. В том плане, что что-то неявным образом грузит систему по самое не могу.
...
Рейтинг: 0 / 0
segmentation fail, inittab и ps x
    #34601997
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
v6y
Напугал однако :). Особенно 31 открытым портом, реализуемым загруженными драйверами.


Да цель была не напугать, а более-менее дать представление о работе проги с системой.

v6y
Но без сырцов программы это будет гадание на кофейной гуще. Может сможешь создать какой-нибудь воспроизводимый пример? Не всю прогу, а нечто сильно покоцанное на ее основе, но ведущее себя соответствующим странным образом?


Нет. Воспроизводить и искать в чем дело довольно трудоемкая задача. Сейчас обошел это зависание. В скором времени буду искать в чем сигментейшеон фэйл. Возможно причина будет именно в нем, - тогда и можно будет провести анализ - по этой ли причине зависание.
...
Рейтинг: 0 / 0
segmentation fail, inittab и ps x
    #34602151
Фотография v6y
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akh v6y
Напугал однако :). Особенно 31 открытым портом, реализуемым загруженными драйверами.


Да цель была не напугать, а более-менее дать представление о работе проги с системой.

v6y
Но без сырцов программы это будет гадание на кофейной гуще. Может сможешь создать какой-нибудь воспроизводимый пример? Не всю прогу, а нечто сильно покоцанное на ее основе, но ведущее себя соответствующим странным образом?


Нет. Воспроизводить и искать в чем дело довольно трудоемкая задача. Сейчас обошел это зависание. В скором времени буду искать в чем сигментейшеон фэйл. Возможно причина будет именно в нем, - тогда и можно будет провести анализ - по этой ли причине зависание.

Попробуй все таки на всякий ограничить максимальное число процессов для одного пользователя (или через /etc/security/limits.conf, или через bash-овскую команду ulimit -u в скрипте, или програмно через вызов setrlimit). Если поможет, то значит все таки fork bombing.
...
Рейтинг: 0 / 0
segmentation fail, inittab и ps x
    #34602165
Фотография Умаксуман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Система может в таком случае виснут из-за кривых драйверов или их неправильного использования. Тем более людям, которые вместо исправления своих багов лезут их искать в ядре, я бы мутексы и многопточные приложения не доверял бы.
...
Рейтинг: 0 / 0
segmentation fail, inittab и ps x
    #34602327
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
v6yПопробуй все таки на всякий ограничить максимальное число процессов для одного пользователя (или через /etc/security/limits.conf, или через bash-овскую команду ulimit -u в скрипте, или програмно через вызов setrlimit). Если поможет, то значит все таки fork bombing.

У меня сервер от root-a запускается (нет смены на пользователя).

У меня было предположение, что это какой-нибудь извесный факт, а разбираться методом тыка нет особого желания (т.к. проблема обойдена, а вскоре изменятся условия - программа будет завершаться без падения, там и посмотрим).
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / segmentation fail, inittab и ps x
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]