[Comm] Не открывается порт

Vladimir Karpinsky vkarpinsky на mail.ru
Сб Фев 4 14:02:21 MSK 2012


04.02.2012 11:58, Dmitry Chistikov пишет:
> Vladimir Karpinsky, Feb. 04, 2012, 09:35 +0400:
>> 04.02.2012 9:23, Vladimir Karpinsky пишет:
>>> Вопрос в такой формулировке снят, оказалось, что программа просто падает,
>>> похоже, что при первом же обращении...
>>
>> Ищу причины падения
>
> Падает = сегфолтится? А журнала она не ведет?

Ведёт, но там про это ничего нет. Появляется строка, что клиент запросил 
данные, и падение.

В выводе strace достаточно много раз присутствует такого вида строки:
13841 access(0xfffffffff77cf6fa, R_OK)  = -1 ENOENT (No such file or directory)
...
13841 stat64(0xffffffffffa882e3, 0xffffffffffa871b4) = -1 ENOENT (No such 
file or directory)
13841 socket(PF_UNSPEC, 0, 0)           = 4
13841 connect(0, NULL, 0)               = -1 ENOENT (No such file or directory)

Можно ли как-то вычислить о каком "such file or directory" идёт речь?

Есть ещё такие:
13842 stat64("/usr/nrts/vyb/meta", 0xffffffffffa89144) = -1 ENOENT (No such 
file or directory)

Файла meta не существует и не должно быть. В работающей программе под ядром 
2.4 так:
23326 stat64("/usr/nrts/vyb/meta",  <unfinished ...>
23328 <... rt_sigaction resumed> NULL, 8) = 0
23326 <... stat64 resumed> 0xbffff374)  = -1 ENOENT (No such file or directory)
23328 rt_sigaction(SIGRT_15, {0x1778f0, ~[], SA_RESTORER, 0x1e5958}, 
<unfinished ...>

То же про отсутствие файлов есть, но не так.

Кончается всё сегфлотом:

13907 --- {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0} (Segmentation 
fault) ---
13908 <... send resumed> )              = 16
13909 +++ killed by SIGSEGV +++
13908 +++ killed by SIGSEGV +++
13907 +++ killed by SIGSEGV +++
13843 +++ killed by SIGSEGV +++
13842 +++ killed by SIGSEGV +++

>> # ldd isid
>>           linux-gate.so.1 =>   (0xf7715000)
>>
>> Это кто такой? Хотя такое же присутствует и в успешно работающих программах.
>
> Just Google it!

Примерно понял, я надеялся, что просто чего-то не хватает...

Собственно главный вопрос --- не изменились ли какие-нибудь правила (при 
переходах: веток 4 -> p6, ядер 2.* -> 3.*, и архитектуры i586 -> x86_64) в 
смысле прав на открытие портов и т.п. Если всё должно работать по-прежнему, 
то надо разбираться с разработчиками, но этот процесс увы не так прост...

-- 
	С уважением,
		Владимир.


Подробная информация о списке рассылки community