The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"проблема с потоками в линуксе"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"проблема с потоками в линуксе"
Сообщение от Vital emailИскать по авторуВ закладки on 03-Фев-04, 02:04  (MSK)
Есть сервер под RH7.3, написанный на потоках. При большом количестве клиентов и соответсвенно потоках, сервак валится. Анализируя корки, возникало предположение, что сервак валится из-за нарушения стека, т.к. валится все время в разных местах и при этом локальные переменные имеют совсем нереальные значения. Увеличение лимита стека ни к чему не привело.
Может это быть глюк этой реализации библиотеки потоков?
В связи с этим возникает желание попробовать другую реализацию библиотеки потоков. Если какие-нибуть алтернативы lpthread под линуксом? Кстати, где можно скачать обновления lpthread?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "проблема с потоками в линуксе"
Сообщение от XMan Искать по авторуВ закладки on 03-Фев-04, 02:41  (MSK)
А на предмет всяких malloc/free ты внимательно смотрел ? У меня было, что либа постгреса зависала :)
При компиляции выставь переменную окружения:

MALLOC_CHECK_=1

и посмотри что будет.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "проблема с потоками в линуксе"
Сообщение от Vital emailИскать по авторуВ закладки on 03-Фев-04, 04:28  (MSK)
а куда надо смотреть? и что это за переменная такая?
все откомпилировалось и размер файла даже не изменился.

еще. у меня прога на С++ , все в классах, соответственно использую операторы new и delete, все вроде корректно

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "проблема с потоками в линуксе"
Сообщение от XMan Искать по авторуВ закладки on 03-Фев-04, 16:55  (MSK)
> а куда надо смотреть? и что это за переменная такая?

"man malloc" :)

Вобщем, она управляет поведением программы при освобождении левой памяти. Например, в такой ситуации:

x=malloc(123);
...
free(x);
...
free(x);

при выполнении программы тебе скажут, что что-то тут не так :)

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "проблема с потоками в линуксе"
Сообщение от Vital emailИскать по авторуВ закладки on 04-Фев-04, 03:57  (MSK)
я конечно могу и ошибаться, но по моему у меня с памятью все в порядке, и повторяю: у меня классы. Создается объект - вызывается конструктор, выделяется память, уничножается объект - вызывается деструктор, освобождается память.
У меня вопрос по потокам.
Возможно надо поиграться атрибутами потоков, никак не надйу описания всех параметров атрибутов. Если где нить более-менее полное описани этого?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "проблема с потоками в линуксе"
Сообщение от XMan Искать по авторуВ закладки on 04-Фев-04, 05:52  (MSK)
Как ты мог заметить, я отвечал на вопрос "и что это за переменная такая?"

По идее, те же new и delete точно так же вызывают malloc и free, ибо память выделяется и освобождается ядром только через эти вызовы.

Лично у меня с потоками никаких проблем не возникало.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "проблема с потоками в линуксе"
Сообщение от Vital emailИскать по авторуВ закладки on 04-Фев-04, 08:57  (MSK)
про new и delete - это к тому что не может быть два раза освобождения одной и тоже памяти

хорошо, пойдем с другого конца..
может так быть что все валится от того что уходит много памяти под стек?
вот что я обнаружил.
пишем пару строк:

size_t stacksize;
pthread_attr_t attr;
pthread_attr_init (&attr);
pthread_attr_getstacksize (&attr, &stacksize);
printf ("stacksize=%d kbytes\n", stacksize/1024);

получаем 2 мегабайта на стек... это на каджый поток по два?
потоков создается не менее 100, итого 200 мег откусываем.
вроде как хватает, на серваке 1 гиг.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "проблема с потоками в линуксе"
Сообщение от solov Искать по авторуВ закладки on 04-Фев-04, 12:33  (MSK)
привет я думаю у тебя обсолютно нет проблем с нехваткой памяти. но лучше посмотреть конечно сообщения системы об ошибкак на основании которых ты сделал эти выводы. под с++ у меня с нитями проблем не было но на яве была одна программка которая тоже сыпалась переодически без видимых на то причин. пришлось посадить на дебагер и хороший час наблюдал за всеми переменными пока не нашел ошибку. наверное это единственные вариант найти причину.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "проблема с потоками в линуксе"
Сообщение от Vital emailИскать по авторуВ закладки on 04-Фев-04, 14:58  (MSK)
>привет я думаю у тебя обсолютно нет проблем с нехваткой памяти. но
>лучше посмотреть конечно сообщения системы об ошибкак на основании которых ты
>сделал эти выводы. под с++ у меня с нитями проблем не
>было но на яве была одна программка которая тоже сыпалась переодически
>без видимых на то причин. пришлось посадить на дебагер и хороший
>час наблюдал за всеми переменными пока не нашел ошибку. наверное это
>единственные вариант найти причину.


а как правильно посадить на дебагер?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "проблема с потоками в линуксе"
Сообщение от solov Искать по авторуВ закладки on 04-Фев-04, 15:47  (MSK)
смотри man dbg или Kdbg для KDE
  Рекомендовать в FAQ | Cообщить модератору | Наверх

10. "проблема с потоками в линуксе"
Сообщение от Vital emailИскать по авторуВ закладки on 05-Фев-04, 02:27  (MSK)
>смотри man dbg или Kdbg для KDE


черт! зачем вообще нужен форум если есть man?????

  Рекомендовать в FAQ | Cообщить модератору | Наверх

11. "gdb"
Сообщение от solov Искать по авторуВ закладки on 05-Фев-04, 15:50  (MSK)
посмотри этот линк http://mitya.pp.ru/gdb/gdb_toc.html

>черт! зачем вообще нужен форум если есть man?????


  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру