The OpenNET Project / Index page

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

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

"Залипание портов"  
Сообщение от Alex email(??) on 23-Июн-06, 13:08 
Hi, All.

При завершении проги-сервера-демона (при отладке вечно требуется новую версию запустить) и отсутствии активных коннектов (все дочерние процессы завершены и accept более не висит) порт ВСЕ РАВНО ОКАЗЫВАЕТСЯ ЗАЛИПШИМ!!!

рекомендация выполнить
  int k = 1;
  if ((setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR,  &k, sizeof(k))))                                
перед bind(.....)
ошибок не дает, но порт не освобождает

ядро освобождает порт через 2мин.... 2 суток

а клиентская часть (и терминал) даже конектятся к этому залипшему порту..

Кто сталкивался с таким? Помогите плиз.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "Залипание портов"  
Сообщение от Perece on 23-Июн-06, 18:02 
>При завершении проги-сервера-демона (при отладке вечно требуется новую версию запустить) и отсутствии
>активных коннектов (все дочерние процессы завершены и accept более не висит)
>порт ВСЕ РАВНО ОКАЗЫВАЕТСЯ ЗАЛИПШИМ!!!
>
>рекомендация выполнить
>  int k = 1;
>  if ((setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR,  &k, sizeof(k))))
>перед bind(.....)
> ошибок не дает, но порт не освобождает
>
>ядро освобождает порт через 2мин.... 2 суток
>
>а клиентская часть (и терминал) даже конектятся к этому залипшему порту..

1) что показывает netstat -an ?
2) что показывает lsof | grep portnumber ?

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

2. "Залипание портов"  
Сообщение от Alex email(??) on 28-Июн-06, 17:26 
>1) что показывает netstat -an ?
>2) что показывает lsof | grep portnumber ?

команды lsoft ни на linux-е, ни на UNIX-е у нас няма :)
а netstat выдавал, что некто слушаетс-с... Но этот некто, не смотря на то,
что к нему м.б. законектиться чем угодно ничего не отвечал на запросы
tcp        0      0 0.0.0.0:9988            0.0.0.0:*               LISTEN

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

3. "Залипание портов"  
Сообщение от vic (??) on 28-Июн-06, 18:30 
>>1) что показывает netstat -an ?
>>2) что показывает lsof | grep portnumber ?
>
>команды lsoft ни на linux-е, ни на UNIX-е у нас няма :)

lsof не всегда и не везде установлен, но на гугле точно есть :)

>
>а netstat выдавал, что некто слушаетс-с... Но этот некто, не смотря на
>то,
>что к нему м.б. законектиться чем угодно ничего не отвечал на запросы
>
>tcp        0    
>  0 0.0.0.0:9988        
>    0.0.0.0:*      
>        LISTEN

0.0.0.0 - это хто???
д.б. *.9988, по крайней мере, на линухе пишет или реальный адрес на который bind сделан либо звездочку если INADDR_ANY.
netstat -ap | grep tcp - на линухе покажет root'у открытые сокеты и кто на них сидит.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

4. "Залипание портов"  
Сообщение от perece on 04-Июл-06, 14:46 
>>tcp        0    
>>  0 0.0.0.0:9988        
>>    0.0.0.0:*      
>>        LISTEN
>
>0.0.0.0 - это хто???
>д.б. *.9988, по крайней мере, на линухе пишет или реальный адрес на
>который bind сделан либо звездочку если INADDR_ANY.
это если без ключика -n. и прочие реальные ip он тоже пытается резолвить, и тормозит потому. если же 'netstat -anp' (-n - don't resolve ip to names) - то нули, а не звездочка. это libresolv так ноль в имя резолвит просто.


Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

5. "Залипание портов"  
Сообщение от mantissa email on 10-Июл-06, 18:05 
Привет ВСЕ!
спасибо за мудрую мысль воспользоваться 'lsof'-ом
он указал на того неизвестного, который делал вид, что слушает порт, удерживая открытым дескриптор слушающего сокета

а дело было так: ...
прога-клиент 'просил' запустить процесс
все открытые дескрипторы (оказывается) плодятся и передаются сначала дочернему серверу-проге, а затем ч-з вызов system('proc1')
если теперь завершить прогу-сервер (без разницы каким способом), этот 'proc1' удерживает дескриптор слушающего сокета, ничего с ним не делая...
если завершить  'proc1' то и порт освобождается..., а строчки типа:
"tcp   0  0 172.16.101.100:9999  172.16.130.103:1103  FIN_WAIT2"
исчезают в течении 1..2 мин, да в принципе и не занимают порт
а на тестах прога-клиент 'просил' запустить не один, а до 23 процессов, и пока последнего из их не завершишь, порт остается занятым. :)

с ув. BSD

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

6. "Залипание портов"  
Сообщение от vic (??) on 10-Июл-06, 18:23 
>Привет ВСЕ!
>спасибо за мудрую мысль воспользоваться 'lsof'-ом
>он указал на того неизвестного, который делал вид, что слушает порт, удерживая
>открытым дескриптор слушающего сокета
>
>а дело было так: ...
>прога-клиент 'просил' запустить процесс
>все открытые дескрипторы (оказывается) плодятся и передаются сначала дочернему серверу-проге, а затем
>ч-з вызов system('proc1')
>если теперь завершить прогу-сервер (без разницы каким способом), этот 'proc1' удерживает дескриптор
>слушающего сокета, ничего с ним не делая...

Надо было начинать с описания архитектуры вашего сервера, вам бы сразу сказали бы что потомки первым делом должны закрыть все неиспользуемые ими дескрипторы :)

>если завершить  'proc1' то и порт освобождается..., а строчки типа:
>"tcp   0  0 172.16.101.100:9999  172.16.130.103:1103  FIN_WAIT2"
>исчезают в течении 1..2 мин, да в принципе и не занимают порт
>
>а на тестах прога-клиент 'просил' запустить не один, а до 23 процессов,
>и пока последнего из их не завершишь, порт остается занятым. :)
>
разве это тест? вот если 'попросил' MAX_INT процессов вот это я понимаю тест :)


Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




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

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