From owner-freebsd-net@FreeBSD.ORG Wed Apr 16 01:02:04 2014 Return-Path: Delivered-To: FreeBSD-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id BBAF5378 for ; Wed, 16 Apr 2014 01:02:04 +0000 (UTC) Received: from raven.bwct.de (raven.bwct.de [85.159.14.73]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "raven.bwct.de", Issuer "BWCT" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 345471439 for ; Wed, 16 Apr 2014 01:02:03 +0000 (UTC) Received: from mail.cicely.de ([10.1.1.37]) by raven.bwct.de (8.13.4/8.13.4) with ESMTP id s3G11fOG003078 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL) for ; Wed, 16 Apr 2014 03:01:41 +0200 (CEST) (envelope-from ticso@cicely7.cicely.de) Received: from cicely7.cicely.de (cicely7.cicely.de [10.1.1.9]) by mail.cicely.de (8.14.5/8.14.4) with ESMTP id s3G11ZdO015110 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 16 Apr 2014 03:01:35 +0200 (CEST) (envelope-from ticso@cicely7.cicely.de) Received: from cicely7.cicely.de (localhost [127.0.0.1]) by cicely7.cicely.de (8.14.2/8.14.2) with ESMTP id s3G11ZxU033318; Wed, 16 Apr 2014 03:01:35 +0200 (CEST) (envelope-from ticso@cicely7.cicely.de) Received: (from ticso@localhost) by cicely7.cicely.de (8.14.2/8.14.2/Submit) id s3G11ZHu033317; Wed, 16 Apr 2014 03:01:35 +0200 (CEST) (envelope-from ticso) Date: Wed, 16 Apr 2014 03:01:35 +0200 From: Bernd Walter To: FreeBSD-net@freebsd.org Subject: Re: SCTP stream socket read(2) can block a process Message-ID: <20140416010135.GC32538@cicely7.cicely.de> References: <20140415235419.GG30429@cicely7.cicely.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140415235419.GG30429@cicely7.cicely.de> X-Operating-System: FreeBSD cicely7.cicely.de 7.0-STABLE i386 User-Agent: Mutt/1.5.11 X-Spam-Status: No, score=-2.9 required=5.0 tests=ALL_TRUSTED=-1, BAYES_00=-1.9, T_RP_MATCHES_RCVD=-0.01 autolearn=ham version=3.3.0 X-Spam-Checker-Version: SpamAssassin 3.3.0 (2010-01-18) on spamd.cicely.de Cc: Bernd Walter X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list Reply-To: ticso@cicely.de List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Apr 2014 01:02:04 -0000 On Wed, Apr 16, 2014 at 01:54:19AM +0200, Bernd Walter wrote: > When using SCTP in TCP like stream style. > socket(2) > connect(2) > write(2) request > read(2) answer > > When the other side disconnects the association (e.g. process restarted) > after the write and before read call the read never returns. I wasn't correct - it happened to me after calling read(2), but before the other side send anything back, so the read(2) was already in kernel when the other side closed it's end. > With TCP stream sockets the read would return with an error instead. > SCTP are not TCP, but the other side can't associate back in on such > a connect(2) socket, so returning would be expected. > I've switched to nonblocking with timeout in the meantime - I wanted > to have a response timeout anyway. > In my test case the other side was a one2many socket on the same host. > > -- > B.Walter http://www.bwct.de > Modbus/TCP Ethernet I/O Baugruppen, ARM basierte FreeBSD Rechner uvm. > _______________________________________________ > freebsd-net@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-net > To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org" -- B.Walter http://www.bwct.de Modbus/TCP Ethernet I/O Baugruppen, ARM basierte FreeBSD Rechner uvm.