Date: Wed, 07 Sep 2011 10:00:44 +0200 From: Florian Smeets <flo@freebsd.org> To: Andriy Gapon <avg@freebsd.org> Cc: gnome@freebsd.org, gecko@freebsd.org Subject: Re: firefox-6.0_1 spinning on a cpu Message-ID: <4E6724AC.3010800@freebsd.org> In-Reply-To: <4E609F9F.6080208@FreeBSD.org> References: <4E5F6753.3070402@FreeBSD.org> <4E5F737F.1070703@ksu.ru> <4E5F799C.7030509@FreeBSD.org> <4E5F7B22.40604@freebsd.org> <4E609F9F.6080208@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
On 02.09.2011 11:19, Andriy Gapon wrote:
> [CC-ing gnome@ who is listed as the maintainer of devel/nspr]
>
>> On 01.09.2011 14:25, Andriy Gapon wrote:
>
> The following patch for devel/nspr port fixes the problem for me:
> --- mozilla/nsprpub/pr/src/pthreads/ptio.c.orig 2011-09-02 12:00:35.233509956 +0300
> +++ mozilla/nsprpub/pr/src/pthreads/ptio.c 2011-09-02 12:00:39.987512769 +0300
> @@ -1635,7 +1635,7 @@ static PRStatus pt_ConnectContinue(
> PR_SetError(PR_BAD_DESCRIPTOR_ERROR, 0);
> return PR_FAILURE;
> }
> - if ((out_flags& (PR_POLL_WRITE | PR_POLL_EXCEPT | PR_POLL_ERR)) == 0)
> + if ((out_flags& (PR_POLL_WRITE | PR_POLL_EXCEPT | PR_POLL_ERR |
> PR_POLL_HUP)) == 0)
> {
> PR_ASSERT(out_flags == 0);
> PR_SetError(PR_IN_PROGRESS_ERROR, 0);
>
>
> I am not actually sure if this patch is really needed, maybe it should only be a
> temporary FreeBSD-specific workaround.
> I need now to investigate if POLLHUP may be set by an OS on a socket that has
> never been connected (for which connect(2) failed).
>
I've created a bug in Mozillas bugzilla [1] with Andriys patch and it
has already been committed. Can we please add this to the current nspr port?
Thanks,
Florian
[1] https://bugzilla.mozilla.org/show_bug.cgi?id=684758
[-- Attachment #2 --]
--- ../pr/src/pthreads/ptio.c 2011-09-02 12:14:24.000000000 +0200
+++ ../pr/src/pthreads/ptio.c 2011-09-02 12:14:27.000000000 +0200
@@ -1635,7 +1635,7 @@
PR_SetError(PR_BAD_DESCRIPTOR_ERROR, 0);
return PR_FAILURE;
}
- if ((out_flags & (PR_POLL_WRITE | PR_POLL_EXCEPT | PR_POLL_ERR)) == 0)
+ if ((out_flags & (PR_POLL_WRITE | PR_POLL_EXCEPT | PR_POLL_ERR | PR_POLL_HUP)) == 0)
{
PR_ASSERT(out_flags == 0);
PR_SetError(PR_IN_PROGRESS_ERROR, 0);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4E6724AC.3010800>
