LINUX.ORG.RU

pthread_create уходит в никуда


0

1

есть идеи, почему pthread_create в какой то момент не возвращает из себя вызов ? тоесть поток уходит на pthread_create и ничего не возвращается - ни ошибок , вообще никакого возврата (смотрел под отладчиком и без него) прога многопоточная, держит очень большие нагрузки до сбоя может от полдня до недели пройти при одинаковых нагрузках

естественно количество созданых-уничтоженных потоков регулируется и вообще статистика системная не показывает ничего необычного, никакого перерасхода ресурсов...

не знаю куда копать

Отряд телепатов, как обычно, в отпуске. Версию системы, версия глибцов в студию. И да, на другом каком-либо линуксе пробовал?

TERRANZ ★★★★ ()

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

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

bsd 7.3, glibc не знаю какая, вроде 7

«strace» - как то его можно к конкретному потоку присоюбачить на уже запущенной и работающей программе?

проблема возникает сразу везде, тоесть то всё работает, то вдруг везде где вызывается pthread_create - потоки вываливаются в пустоту, без ошибок, просто отваливаются так, как будто pthread_create выполняется бесконечное количество времени

я ещё раз повторюсь, что прога обычно работает от дня до недели, под нагрузкой. (около 15к потоков, памяти жрёт мало, нагрузка на проц в пределах 1%) потом в какой то момент во всех частях кода, где встречается pthread_create, происходит зависание потоков (остальные в это время работают нормально)

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

>около 15к потоков, памяти жрёт мало

Ты нас обманываешь. Если это 15k одновременно работающих потоков, то потребление памяти будет как минимум 60Mb (при условии, что стек каждого потока занимает всего 4kb). Это уже вроде как много, да и на практике таких маленьких стеков не бывает.

то вдруг везде где вызывается pthread_create - потоки вываливаются в пустоту

Что значит «вываливаются в пустоту»? Был поток, вызвал pthread_create, потока не стало?

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

под жрёт мало я понимаю то, что свободной памяти на сервере - докуя, перерасходов никаких нет, нужные параметры подвинчены, в момент возникновения критической ситуации также не видно никаких перерасходов (хотя может не то сомтрю, но вроде то)

Что значит «вываливаются в пустоту»? - значит вызывается pthread_create и возврат из вызова не происходит

бла бла бла push *** push *** call pthread_create <--- сюда нет возврата ни с ошибкой ни без ошибки. как будто поток отправляется в бесконечный sleep где то внутри pthread_create как определил? - трейсил под отладчиком ald, ставил printf перед и после вызова....

сделать стабильно чтоб вываливалось не получается, лагает раз в 1-7 дней

CDC7771 ()

3к рублей на мобилу или на вм за рабочее решение проблемы могут подстегнуть желающих помоч?

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