|
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 14
|
||||||
После пары часов работы popen() начинает возвращать NULL21.05.2014, 05:47. Показов 1934. Ответов 6
Метки нет (Все метки)
День добрый.
Программирую демона, который запускает некоторые процессы. Все бы ничего, но после пары часов работы popen() начинает непременно возвращать NULL. Использую такой код для запуска процессов:
0
|
||||||
| 21.05.2014, 05:47 | |
|
Ответы с готовыми решениями:
6
после 2 часов работы компьютера начинает тухнуть экран Windows 8.1 начинает тормозить после нескольких часов работы Начинает гудеть сабвуфер после примерно 4-5 часов работы |
|
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
| 21.05.2014, 10:33 | |
Сообщение было отмечено yarik_ya как решение
Решение
Как минимум, в логи нужно писать сообщение об ошибке - станет яснее в чем проблема (см man perror, strerror).
Если яснее не станет - погонять valgrind-ом на предмет утечек памяти. В приведенном коде я не вижу защиты от переполнения буфера comText. В общем, начать с более подробного логирования. Потому что анализировать методом тыка фрагмент кода с неизвестными входными данными - дело неблагодарное.
0
|
|
|
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 14
|
|
| 21.05.2014, 15:17 [ТС] | |
|
Входное данное, на котором случился "затык", выдержка из лога:
2014-05-21 12:34:04 :: bash /disp/ping.sh 172.16.2.32 ========================== 2014-05-21 12:34:04 :: Error Command ========================== Раньше не прерывал работу, судя по логу, проблема не во входных данных, т.к. при любых данных popen() NULL начинал возвращать. Добавлено через 3 часа 39 минут при ошибке возвращает Cannot allocate memory Добавлено через 10 минут Получил такой результат при падении с помощью такой строки: writeLog(strerror(errno)); О какой памяти может идти речь? Добавлено через 17 минут Спасибо за совет. Судя по графикам ВМ, постпенно растет потребление и cpu и оперативы. Значит что-то не вычищаю в ходе работы демона. Демон обращается к БД, таскает оттуда задания и запускает процессы их с помощью функции, код которой предоставил. Куда копать дальше?
0
|
|
|
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
| 21.05.2014, 19:32 | |
|
Я уже выше написал - погонять под valgrind'ом, посмотреть где конкретно течет.
1
|
|
|
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 14
|
|||||||
| 22.05.2014, 06:51 [ТС] | |||||||
|
Добавлено через 1 час 24 минуты 2 утечки нашел, устранил. А третья не понятно откуда берется.
0
|
|||||||
|
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
| 22.05.2014, 11:49 | |
|
Да тут сообщение не про утечку, а про неинициализированные данные. Еще и в библиотеке - так что все равно.
Что я тут скажу... Почитать доки по валгринду, обратить внимание на опцию --leak-check http://valgrind.org/docs/manual/quick-start.html Меня в описании проблемы смущает еще рост потребления cpu - мб там создается куча потоков, в каждом из которых бесконечный цикл?
0
|
|
|
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 14
|
|
| 23.05.2014, 07:29 [ТС] | |
|
Спасибо, вроде все работает.
4349 root 20 0 2347m 1.5g 564 R 39.6 76.4 389:08.93 memcheck-amd64- CPU похоже грузил мемчекер, который запускался с valgrind'ом.
0
|
|
| 23.05.2014, 07:29 | |
|
Помогаю со студенческими работами здесь
7
Музыка начинает прерываться спустя несколько часов после начала работы Не запускаются программы после включения, после пары перезагрузок начинает нормально работать. Начинает виснуть после 20-40 минут работы Начинает тормозить после длительной работы После продолжительной работы ноутбук начинает подвисать Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла:
Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
|
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-text-sdl3-c. zip
finish-text-sdl3-cpp. zip
|
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
|
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo
Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло.
Но на выплатах по больничным это. . .
|
|
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
|
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y
Z4Tv2zpXVVo
https:/ / github. com/ shumilovas/ med2. git
|
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа.
В качестве фильтра для отбора справочника служит группа номенклатуры.
Отбор по наименованию группы. . .
|
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
|