Re: hang in gconfd



Hi Owen,

On 11 Dec 2001, Owen Taylor wrote:
> 100% CPU still hangs with linc as of this morning -- to quote
> linc-connection.c:linc_connection_writev():

        Ok - so there are two problems; firstly the bug in the application
that is not responding - which is it ? we have to block somewhere or we
will consume 100% memory writing to a non-responsive process.

        Secondly - we should make it more efficient to block here; I
assume handing G_IO_OUT constantly and in a more intelligent fashion in
linc_connection_connected, combined with a linc_main_iteration (TRUE) will
have this effect.

> So, as long as it can't write (EAGAIN) it runs one iteration of
> linc_main_iteration(), not and tries again. Eating up a great deal of
> my CPU unless something changes cnx->status. But I don't see any
> particular reason the state would change when trying to write to an
> unresponsive client.

        Sure - and it remains to be seen what is best to be done here -
I'm looking forward to Havoc's patch to bump the buffer size beyond that
of the socket - and then perhaps we can add some API to allow detection
and slaughter of such bad clients.

        How does that sound ?

                Michael.

-- 
 mmeeks@gnu.org  <><, Pseudo Engineer, itinerant idiot




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]