From owner-freebsd-standards@FreeBSD.ORG Tue Jul 10 14:03:17 2012 Return-Path: Delivered-To: freebsd-standards@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id B185110656D2; Tue, 10 Jul 2012 14:03:17 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from mail.zoral.com.ua (mx0.zoral.com.ua [91.193.166.200]) by mx1.freebsd.org (Postfix) with ESMTP id 2A3F98FC16; Tue, 10 Jul 2012 14:03:16 +0000 (UTC) Received: from skuns.kiev.zoral.com.ua (localhost [127.0.0.1]) by mail.zoral.com.ua (8.14.2/8.14.2) with ESMTP id q6AE2Gud020232; Tue, 10 Jul 2012 17:02:16 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: from deviant.kiev.zoral.com.ua (kostik@localhost [127.0.0.1]) by deviant.kiev.zoral.com.ua (8.14.5/8.14.5) with ESMTP id q6AE23Z7053140; Tue, 10 Jul 2012 17:02:03 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: (from kostik@localhost) by deviant.kiev.zoral.com.ua (8.14.5/8.14.5/Submit) id q6AE23tg053139; Tue, 10 Jul 2012 17:02:03 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: deviant.kiev.zoral.com.ua: kostik set sender to kostikbel@gmail.com using -f Date: Tue, 10 Jul 2012 17:02:03 +0300 From: Konstantin Belousov To: Volodymyr Kostyrko Message-ID: <20120710140203.GA2338@deviant.kiev.zoral.com.ua> References: <4FFC1D2D.4020405@gmail.com> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="dfOvyYudzT1RPUKx" Content-Disposition: inline In-Reply-To: <4FFC1D2D.4020405@gmail.com> User-Agent: Mutt/1.4.2.3i X-Virus-Scanned: clamav-milter 0.95.2 at skuns.kiev.zoral.com.ua X-Virus-Status: Clean X-Spam-Status: No, score=-4.0 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 autolearn=ham version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on skuns.kiev.zoral.com.ua Cc: freebsd-hackers@freebsd.org, freebsd-standards@freebsd.org Subject: Re: kern/149857: [kqueue] kqueue not reporting EOF under certain circumstances X-BeenThere: freebsd-standards@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Standards compliance List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 10 Jul 2012 14:03:17 -0000 --dfOvyYudzT1RPUKx Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Jul 10, 2012 at 03:16:45PM +0300, Volodymyr Kostyrko wrote: > Hi all. >=20 > http://www.freebsd.org/cgi/query-pr.cgi?pr=3Dkern/149857 >=20 > This PR is rather old. I just had submitted new test case, now in plain c. >=20 > It doesn't work exactly like python version, but the result is the same: >=20 > > clang test.c > > cat test.c | ./a.out > -1 916 0 0 0 > -1 0 32768 0 0 > > ./a.out < test.c > -1 916 0 0 0 > <- and here we have a complete hang in [kqread]. And what is your expectation ? The vnode filter never returns EOF when current file position at the end of file. It is documented that read filter returns when file offset if not at the end of file, thats all. In fact, EV_EOF is returned on forced unmoun= t. I do not see a bug in kqueue. On the other hand, your C code has at least two things that I cannot understand. First, EV_EOF is output flag, it makes absolutely no sense to set it in command. Second, it is mistery for me what do you check with if (kev.flags >> 15 =3D=3D 1) { test. --dfOvyYudzT1RPUKx Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (FreeBSD) iEYEARECAAYFAk/8NdsACgkQC3+MBN1Mb4iTxACgjIyAmfQzKZ1YJhjVqpcDeRtq cggAn1rOw71APAlZ1oyP+vvEyODsPtd2 =2fEs -----END PGP SIGNATURE----- --dfOvyYudzT1RPUKx--