ALT Linux Community general discussions
 help / color / mirror / Atom feed
From: Dmitry Chistikov <dd1email@gmail.com>
To: ALT Linux Community general discussions <community@lists.altlinux.org>
Subject: Re: [Comm] Не открывается порт
Date: Sat, 4 Feb 2012 14:52:55 +0400
Message-ID: <20120204105255.GE9497@conflux.foliandre> (raw)
In-Reply-To: <4F2D022D.9030009@mail.ru>

Vladimir Karpinsky, Feb. 04, 2012, 14:02 +0400:
> Ведёт, но там про это ничего нет. Появляется строка, что клиент запросил 
> данные, и падение.

Какой-нибудь debug level увеличить не получается?

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

Если поглядеть в access(2) и stat(2), то первый параметр у этих вызовов
const char *. Если Вы специально не подкручивали strace на такой формат
вывода, то, скорее всего, соответствующий указатель смотрит куда-то не
туда. Неплохо бы понять, почему так получилось.

На чем эта штука написана? Иногда может оказаться полезным ltrace (library
call tracer).

> 13841 socket(PF_UNSPEC, 0, 0)           = 4
> 13841 connect(0, NULL, 0)               = -1 ENOENT (No such file or directory)
> 
> Можно ли как-то вычислить о каком "such file or directory" идёт речь?

Не могу ответить уверенно.

Обратите внимание, что socket возвращает файловый дескриптор (в данном
случае это 4), а connect принимает файловый дескриптор в качестве первого
параметра (в данном случае это 0). Таким образом, в этих строках речь
о разном.

Страница connect(3p) указывает, что для unix-сокетов (AF_UNIX) ситуация
ENOENT возникает в случае, если по указанному пути, грубо говоря, нельзя
пройти ("A component of the pathname does not name an existing file or the
pathname is an empty string"). Попробуйте изучить историю нулевого
дескриптора, скормленного connect'у, до этого вызова.

> Есть ещё такие:
> 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 ...>
> 
> То же про отсутствие файлов есть, но не так.

По-моему, одно и то же. (Опять же могу ошибаться.)

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

Надо понять, в какой момент крышу начинает сносить.

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

Правила - понятие широкое.

Программа, конечно, должна адекватно отслеживать возможные ошибки, но это
общезначимо и совсем не новость. Сложно сказать, на что именно программа
ошибочно подвязалась (если).

-- 
Дмитрий Чистиков


  reply	other threads:[~2012-02-04 10:52 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-03 17:14 Vladimir Karpinsky
2012-02-04  5:23 ` Vladimir Karpinsky
2012-02-04  5:35   ` Vladimir Karpinsky
2012-02-04  7:58     ` Dmitry Chistikov
2012-02-04  9:48       ` Vladimir Karpinsky
2012-02-04 10:13         ` Alexei Takaseev
2012-02-04 10:50           ` Vladimir Karpinsky
2012-02-04 10:02       ` Vladimir Karpinsky
2012-02-04 10:52         ` Dmitry Chistikov [this message]
2012-02-04 11:23           ` Vladimir Karpinsky
2012-02-04 11:55             ` Dmitry Chistikov
2012-02-04 18:16               ` Vladimir Karpinsky

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20120204105255.GE9497@conflux.foliandre \
    --to=dd1email@gmail.com \
    --cc=community@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Community general discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 community community/ http://lore.altlinux.org/community \
		mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com
	public-inbox-index community

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.community


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git