|
|
|
segmentation fail, inittab и ps x
|
|||
|---|---|---|---|
|
#18+
Есть приложение, которое висит в inittab и необходимо его иногда перезапускать. Есть у этого приложения два дополнительных свойства: 1) Перезапускается путем посылки сигнала SIGUSR1 (ловит сигнал, ставит флаг, потом его читает из бесконечного цикла из main и бьет объекты). 2) На данной стадии развития приложения не умеет корректно завершаться и падает в sigmentaion fail. Значит, перезапуск обстоит следующим образом: посылается сигнал на убийство, потом сразу же читается из ps x запущено ли приложение (назовем его П1). Что происходит в данный момент? Приложение (П1) запускается через inittab не непосредственно, а через скрипт (С1). Этот скрипт выполняет перед запуском П1 некоторую работу, разделяя ее sleep-ами. Потом он запускает П1. Так вот. Когда когда приложению приходит сигнал оно рушиться вместе со скриптом, inittab пытается поднять этот скрипт по новой. Он поднимает его нормально, С1 потом поднимает П1, и все хорошо. Но если во время краха или сразу после него (неизвстно, но непосредственно после посылки сигнала SIGUSR1) происходит запрос у "ps x", то система виснет намертво. Такая вот печальная история. Что тут не корректного и как это исправить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 18:03:14 |
|
||
|
segmentation fail, inittab и ps x
|
|||
|---|---|---|---|
|
#18+
Привожу этот ps при котором происходит зависание: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Система отдает предпочтение выделенным ps. ПС: debuf_if_need это всего лишь echo "$1" в if-е, который проверяет флаг, надо ли выводить отладочные сообщения. ППС: В консоль не выводится сообщение sigmentation fail. По всей видимости зависание происходит во время краха приложения ПППС: Если поставить задержку перед ps, чтобы крах гарантированно завершился, то все нормально. Проблема ядра? Решить никак? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 18:20:43 |
|
||
|
segmentation fail, inittab и ps x
|
|||
|---|---|---|---|
|
#18+
" На данной стадии развития приложения не умеет корректно завершаться и падает в sigmentaion fail." - это как?! Ну и стиль у вас Для начала развейте приложение до того, чтобы оно корректно завершалось, а потом ловите баги. А то получается баг на баге, а потом баги ищите. -------------- Если враг не сдается - его перегружают ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 19:31:40 |
|
||
|
segmentation fail, inittab и ps x
|
|||
|---|---|---|---|
|
#18+
В целом подход тоже супер - останавливаем приложение,все виснет, ага, бага в ядре! Гениально! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2007, 22:37:05 |
|
||
|
segmentation fail, inittab и ps x
|
|||
|---|---|---|---|
|
#18+
Умаксуман" На данной стадии развития приложения не умеет корректно завершаться и падает в sigmentaion fail." - это как?! Ну и стиль у вас Стиль, как стиль. Не пойму, что не понятного. Умаксуман Для начала развейте приложение до того, чтобы оно корректно завершалось, а потом ловите баги. А то получается баг на баге, а потом баги ищите. Так это у меня баг на баге? Понятно, что на баге, но баг ли это? Я не спрашивал, что мне сначала делать? Я с прашивал что делать с анализом - работает приложение или нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2007, 09:56:17 |
|
||
|
segmentation fail, inittab и ps x
|
|||
|---|---|---|---|
|
#18+
УмаксуманВ целом подход тоже супер - останавливаем приложение,все виснет, ага, бага в ядре! Гениально! Если почитать внимательно, то будет понятно: останавливаем приложение - ничего не виснет (6-е предложение 3-го абзаца). Я так понимаю, вы непоняли, ровным счетом, ничего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2007, 09:58:35 |
|
||
|
segmentation fail, inittab и ps x
|
|||
|---|---|---|---|
|
#18+
Тебе нужно сначало сделать так, чтобы приложение завершалось без всяких сегфолтов - это значительно облегчит поиск бага. -------------- Если враг не сдается - его перегружают ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2007, 15:16:47 |
|
||
|
segmentation fail, inittab и ps x
|
|||
|---|---|---|---|
|
#18+
УмаксуманТебе нужно сначало сделать так, чтобы приложение завершалось без всяких сегфолтов - это значительно облегчит поиск бага. Это я обязательно сделаю, но это не задача первостепенной важности. Ну, а когда она будет завершаться корректно, тогда и баг сам пропадет. 2 all: Вообщем, я так понял, народ не в курсе как понимать данную ситуацию? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2007, 16:21:31 |
|
||
|
segmentation fail, inittab и ps x
|
|||
|---|---|---|---|
|
#18+
я вообще-то согласен , что сначала надо бороться с seg fault. но по теме -ежели виснет ps - попробовать его заменить, скажем, чтением /proc им посмтреть, что из этого выйдет! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2007, 16:28:03 |
|
||
|
segmentation fail, inittab и ps x
|
|||
|---|---|---|---|
|
#18+
Akh 2 all: Вообщем, я так понял, народ не в курсе как понимать данную ситуацию? Ситуация несколько нетипичная. Не должно вешать систему (тем более намертво) то что ты описал. Так что очень может быть, что либо ты что-то упустил, либо о чем-то умолчал. Если есть возможность и желание, выложи здесь сырцы проги и скрипта, а также соответствующую строчку из иниттаба. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2007, 08:01:50 |
|
||
|
segmentation fail, inittab и ps x
|
|||
|---|---|---|---|
|
#18+
v6y Akh 2 all: Вообщем, я так понял, народ не в курсе как понимать данную ситуацию? Ситуация несколько нетипичная. Не должно вешать систему (тем более намертво) то что ты описал. Так что очень может быть, что либо ты что-то упустил, либо о чем-то умолчал. Если есть возможность и желание, выложи здесь сырцы проги и скрипта, а также соответствующую строчку из иниттаба. Да что ты ему объясняешь, это ж очередной непризнанный гений, нам, плебеям, его не понять. Лучше мне объясни, как так можно - у приложения баг при остановке, автор это знает, никак это не пытается исправить и думает, что это баг в ядре? Я почему-то думал, что сначала надо исправлять все очевидные ошибки, а потом браться за неочевидные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2007, 10:26:13 |
|
||
|
segmentation fail, inittab и ps x
|
|||
|---|---|---|---|
|
#18+
2 Умаксуман Меня заинтересовал сам факт того что система повисла намертво. Баг, не баг, но такого (если все делать правильно) быть не должно. Тут недавно один из моих молодых бойцов при реализации похожей связки сам себе "fork bombing" устроил. Но там просто все повисло (что собственно вполне понятно) , а здесь виснет, по словам автора, только при обращении к ps (сканировании /proc?). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2007, 11:12:14 |
|
||
|
segmentation fail, inittab и ps x
|
|||
|---|---|---|---|
|
#18+
да, то, что пользовательский процесс вешает систему - это однозначно странно. Безотносительно к тому, что баг, несомненно, надо исправлять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2007, 11:42:49 |
|
||
|
segmentation fail, inittab и ps x
|
|||
|---|---|---|---|
|
#18+
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. Сырцы проги не помогут, т.к. их в первую очередь много (50 тыс строк). Могу в дополнении сказать, что там сразу используется несколько сокетов езернет, дискрипторы файлов и 31 открытый виртуальны порт реализуемый загруженными драйверами. В дополенении в проге порядка 20-ти потоков, множество мьютексов, шаренная память, и если менее 10-ти труб. Вроде бы больше нечего умалчать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2007, 10:04:16 |
|
||
|
segmentation fail, inittab и ps x
|
|||
|---|---|---|---|
|
#18+
УмаксуманДа что ты ему объясняешь, это ж очередной непризнанный гений, нам, плебеям, его не понять. Респект признаным гениям. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2007, 10:05:12 |
|
||
|
segmentation fail, inittab и ps x
|
|||
|---|---|---|---|
|
#18+
--null--да, то, что пользовательский процесс вешает систему - это однозначно странно. Безотносительно к тому, что баг, несомненно, надо исправлять. Что же вы к этому багу прицепились? Есстественно, он будет исправляться в ближайшее время и, есстественно, эта задача имеет высокий приоритет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2007, 10:06:52 |
|
||
|
segmentation fail, inittab и ps x
|
|||
|---|---|---|---|
|
#18+
v6yНо там просто все повисло (что собственно вполне понятно) , а здесь виснет, по словам автора, только при обращении к ps (сканировании /proc?). Причем довольно стопроцентно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2007, 10:09:09 |
|
||
|
segmentation fail, inittab и ps x
|
|||
|---|---|---|---|
|
#18+
Ну, да, еще одно уточнение - система ASP v10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2007, 10:09:48 |
|
||
|
segmentation fail, inittab и ps x
|
|||
|---|---|---|---|
|
#18+
v6y2 Умаксуман Меня заинтересовал сам факт того что система повисла намертво. Баг, не баг, но такого (если все делать правильно) быть не должно. Тут недавно один из моих молодых бойцов при реализации похожей связки сам себе "fork bombing" устроил. Но там просто все повисло (что собственно вполне понятно) , а здесь виснет, по словам автора, только при обращении к ps (сканировании /proc?). Это может быть и замедленный "fork bombing" - это когда количество defunct -ов переваливает все разумные пределы . А ps просто не в состоянии их переварить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2007, 13:33:04 |
|
||
|
segmentation fail, inittab и ps x
|
|||
|---|---|---|---|
|
#18+
Akh v6yНо там просто все повисло (что собственно вполне понятно) , а здесь виснет, по словам автора, только при обращении к ps (сканировании /proc?). Причем довольно стопроцентно. Интересно... ps просто сканирует папки из proc названия которых состоят из цифр и мне как то трудно представить как такое сканирование само по себе может намертво повесить систему. Сырцы проги не помогут, т.к. их в первую очередь много (50 тыс строк). Могу в дополнении сказать, что там сразу используется несколько сокетов езернет, дискрипторы файлов и 31 открытый виртуальны порт реализуемый загруженными драйверами. В дополенении в проге порядка 20-ти потоков, множество мьютексов, шаренная память, и если менее 10-ти труб. Напугал однако :). Особенно 31 открытым портом, реализуемым загруженными драйверами. Но без сырцов программы это будет гадание на кофейной гуще. Может сможешь создать какой-нибудь воспроизводимый пример? Не всю прогу, а нечто сильно покоцанное на ее основе, но ведущее себя соответствующим странным образом? 2 onstat- Да скорее всего что то типа того. В том плане, что что-то неявным образом грузит систему по самое не могу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2007, 14:02:06 |
|
||
|
segmentation fail, inittab и ps x
|
|||
|---|---|---|---|
|
#18+
v6y Напугал однако :). Особенно 31 открытым портом, реализуемым загруженными драйверами. Да цель была не напугать, а более-менее дать представление о работе проги с системой. v6y Но без сырцов программы это будет гадание на кофейной гуще. Может сможешь создать какой-нибудь воспроизводимый пример? Не всю прогу, а нечто сильно покоцанное на ее основе, но ведущее себя соответствующим странным образом? Нет. Воспроизводить и искать в чем дело довольно трудоемкая задача. Сейчас обошел это зависание. В скором времени буду искать в чем сигментейшеон фэйл. Возможно причина будет именно в нем, - тогда и можно будет провести анализ - по этой ли причине зависание. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2007, 14:31:10 |
|
||
|
segmentation fail, inittab и ps x
|
|||
|---|---|---|---|
|
#18+
Akh v6y Напугал однако :). Особенно 31 открытым портом, реализуемым загруженными драйверами. Да цель была не напугать, а более-менее дать представление о работе проги с системой. v6y Но без сырцов программы это будет гадание на кофейной гуще. Может сможешь создать какой-нибудь воспроизводимый пример? Не всю прогу, а нечто сильно покоцанное на ее основе, но ведущее себя соответствующим странным образом? Нет. Воспроизводить и искать в чем дело довольно трудоемкая задача. Сейчас обошел это зависание. В скором времени буду искать в чем сигментейшеон фэйл. Возможно причина будет именно в нем, - тогда и можно будет провести анализ - по этой ли причине зависание. Попробуй все таки на всякий ограничить максимальное число процессов для одного пользователя (или через /etc/security/limits.conf, или через bash-овскую команду ulimit -u в скрипте, или програмно через вызов setrlimit). Если поможет, то значит все таки fork bombing. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2007, 15:08:17 |
|
||
|
segmentation fail, inittab и ps x
|
|||
|---|---|---|---|
|
#18+
Система может в таком случае виснут из-за кривых драйверов или их неправильного использования. Тем более людям, которые вместо исправления своих багов лезут их искать в ядре, я бы мутексы и многопточные приложения не доверял бы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2007, 15:11:03 |
|
||
|
segmentation fail, inittab и ps x
|
|||
|---|---|---|---|
|
#18+
v6yПопробуй все таки на всякий ограничить максимальное число процессов для одного пользователя (или через /etc/security/limits.conf, или через bash-овскую команду ulimit -u в скрипте, или програмно через вызов setrlimit). Если поможет, то значит все таки fork bombing. У меня сервер от root-a запускается (нет смены на пользователя). У меня было предположение, что это какой-нибудь извесный факт, а разбираться методом тыка нет особого желания (т.к. проблема обойдена, а вскоре изменятся условия - программа будет завершаться без падения, там и посмотрим). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2007, 15:47:34 |
|
||
|
|

start [/forum/topic.php?fid=25&msg=34593039&tid=1488057]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
38ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 340ms |

| 0 / 0 |
