From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on sa.int.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-3.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_LOW, SPF_PASS autolearn=ham version=3.2.5 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=date:from:to:subject:message-id:mail-followup-to:references :mime-version:content-type:content-disposition :content-transfer-encoding:in-reply-to; bh=Jhg+rzdKK49G1zfteSertY5vPQS6fJ7TE6mjOEaKsb4=; b=xani+84qnSn/y/QsVCcprOLIx9UR3RO2OCOXkYawVFa7bDjN2zz71ttY3tDnFNjT9T v/5OCIIXIz/q6WVpUzfkKwsjtenHVI1rmpEs88pcqJNKeunqCjeSSGFD8/ICevDH8R5Q ic8YvUndBCyPzzRPhWWLD166AvR+0+ClMNRD4= Date: Sat, 4 Feb 2012 14:52:55 +0400 From: Dmitry Chistikov To: ALT Linux Community general discussions Message-ID: <20120204105255.GE9497@conflux.foliandre> Mail-Followup-To: ALT Linux Community general discussions References: <4F2C160C.2080706@mail.ru> <4F2CC0CD.3080901@mail.ru> <4F2CC396.7010504@mail.ru> <20120204075832.GC9497@conflux.foliandre> <4F2D022D.9030009@mail.ru> MIME-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <4F2D022D.9030009@mail.ru> Subject: Re: [Comm] =?koi8-r?b?7sUgz9TL0tnXwcXU09Eg0M/S1A==?= X-BeenThere: community@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Community general discussions List-Id: ALT Linux Community general discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 04 Feb 2012 10:53:03 -0000 Archived-At: List-Archive: List-Post: 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", > 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}, > > > То же про отсутствие файлов есть, но не так. По-моему, одно и то же. (Опять же могу ошибаться.) > Кончается всё сегфлотом: [...] Надо понять, в какой момент крышу начинает сносить. > Собственно главный вопрос --- не изменились ли какие-нибудь правила (при > переходах: веток 4 -> p6, ядер 2.* -> 3.*, и архитектуры i586 -> x86_64) в > смысле прав на открытие портов и т.п. Если всё должно работать по-прежнему, > то надо разбираться с разработчиками, но этот процесс увы не так прост... Правила - понятие широкое. Программа, конечно, должна адекватно отслеживать возможные ошибки, но это общезначимо и совсем не новость. Сложно сказать, на что именно программа ошибочно подвязалась (если). -- Дмитрий Чистиков