From owner-freebsd-stable Mon Jul 8 12:52:22 2002 Delivered-To: freebsd-stable@freebsd.org Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id ABAEE37B400; Mon, 8 Jul 2002 12:52:18 -0700 (PDT) Received: from ns.altadena.net (ns.altadena.net [206.126.144.2]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3283343E42; Mon, 8 Jul 2002 12:52:18 -0700 (PDT) (envelope-from pete@ns.altadena.net) Received: from ns.altadena.net (localhost [127.0.0.1]) by ns.altadena.net (8.12.3/8.12.3) with ESMTP id g68JqC48059731; Mon, 8 Jul 2002 12:52:12 -0700 (PDT) (envelope-from pete@ns.altadena.net) Received: (from pete@localhost) by ns.altadena.net (8.12.3/8.12.3/Submit) id g68JqB55059730; Mon, 8 Jul 2002 12:52:11 -0700 (PDT) (envelope-from pete) From: Pete Carah Message-Id: <200207081952.g68JqB55059730@ns.altadena.net> Subject: Hang problem with spamass-milter... To: stable@freebsd.org Date: Mon, 8 Jul 2002 12:52:11 -0700 (PDT) Cc: questions@freebsd.org X-Mailer: ELM [version 2.4ME+ PL68 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=iso8859-1 Content-Transfer-Encoding: 7bit Sender: owner-freebsd-stable@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG I have spamass-milter compiled and running in a fresh 4.6-stable box (built last week). If two mail messages arrive "close enough" in time, spamc hangs hard (needs kill -9 to stop it) in pipe-read state with spamass-milter in pipe-read also. I have a suspicion about read acting non-blocking in the pipe case; looking through the pthread_read.c source, as long as EWOULDBLOCK or EAGAIN work right things shouldn't act like this. Do these work right on pipes in thread context? I guess I could set up a test program... Note that spamc is not compiled thread-safe (not required here since it is started for each message). spamass-milter's configure does not make the right choices for freebsd; I presume the port fixes this (I did so myself, adding _THREAD_SAFE and -pthread). The C++ library may or may not be thread-safe? I saw a query about this same thing dated last Feb (looking at the code fragment, I suspect it was in the same program); it is still around. The hint at a fix then was "are you sure you are writing anything". Given that the identical code works fine in debian, I suspect a system problem. To me it appears to be the behavior of EWOULDBLOCK/EAGAIN with pipes in thread context. -- Pete To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message