Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 1 Sep 2008 13:04:54 +0100 (BST)
From:      Robert Watson <rwatson@FreeBSD.org>
To:        Anton Yuzhaninov <citrin@citrin.ru>
Cc:        freebsd-net@freebsd.org
Subject:   Re: bug in unix sockets garbage collector
Message-ID:  <alpine.BSF.1.10.0809011303330.37102@fledge.watson.org>
In-Reply-To: <48AEDC40.6030901@citrin.ru>
References:  <48AEDC40.6030901@citrin.ru>

next in thread | previous in thread | raw e-mail | index | archive | help

On Fri, 22 Aug 2008, Anton Yuzhaninov wrote:

> On servers where used unix sockets, sometimes thread taskq start to eat 100% 
> CPU: http://docs.FreeBSD.org/cgi/mid.cgi?474EFC5C.9060508
>
> Addition info about this problem - when this occurs
>
> sysctl net.local.inflight show negative number.
>
> % sysctl net.local.inflight net.local.inflight: -3
>
> And this condition become always true:
>
> if (local_unp_rights)
>                taskqueue_enqueue(taskqueue_thread, &unp_gc_task);
>
> It seems, that unp_rights decremented more often than incremented, or some 
> race exist.

Hi Anton:

On reviewing this code, I've identified at least one race condition that could 
lead to the behavior that you've spotted.  It will probably take me a couple 
of days to produce a patch for you to try.  However, could I ask you to file a 
PR for this problem, with the above and any related diagnostics, and when you 
receive the e-mail PR receipt, could you forward it to me so that I can take 
ownership of it?

Thanks,

Robert N M Watson
Computer Laboratory
University of Cambridge



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.BSF.1.10.0809011303330.37102>