[Spread-users] why is the spread client being disconnected?

Mark Blackman mark at exonetric.com
Tue Jul 3 09:13:30 EDT 2007


On 2 Jul 2007, at 16:48, Mark Blackman wrote:

> Hi,
>
> I've got a mod_perl application using ultimately Spread.pm (3.17) on a
> solaris 10 machine either disconnecting or being disconnected  
> arbitrarily
> after a few dozen messages.
>
> In the spread (daemon) log, I see,
>
> [Mon 02 Jul 2007 16:23:39] G_handle_kill: #1858ffxws0#ffxws02p1 is  
> killed
> [Mon 02 Jul 2007 16:23:39] G_handle_kill in GOP
> [Mon 02 Jul 2007 16:23:39] G_handle_kill: Mask for group webapp set  
> to 0 0 0 3
>
> In the solaris truss output of the apache child (spread client), I see
>
> 13.2293 send(18, "A0\0\080 # 1 8 5 8 f f x".., 80, 0)   = 80
> 13.2302 send(18, " 2 0 0 7 - 0 7 - 0 2   1".., 194, 0)  Err#32 EPIPE
> 13.2303     Received signal #13, SIGPIPE [ignored]
>
> EPIPE meaning the connection is closed for writing (where previous  
> 'send'
> calls didn't get an EPIPE signal).
>
> I *believe* this suggests the spread daemon is killing the handle  
> for some
> reason. I don't have any evidence that the spread client is closing  
> the connection,
> so perhaps someone can suggest why the spread daemon (or client)  
> might arbitrarily
> close the connection.

Indeed, the spread daemon was killing off the client connections  
because the
client was failing to read the messages in it's queue.

The module I was using, Log::Log4perl::Appender::Spread was erroneously
'join'ing groups when it had no intention of reading messages from  
the queue
and so the daemon was killing the client connection when the read queue
hit 1000 messages.

I note that the documentation doesn't appear to spell out that  
joining a group
obliges the application to read messages from the queue, although it's
implied in several ways. I would recommend modifying the introductory  
docs
to spell out the perhaps obvious point that an application may  
*write* to a group
without joining it and correspondingly that joining a group *obliges*  
the application
to read messages from the daemon's queue. However, the developers may  
regard
this point as too obvious.

Cheers,
Mark

>
> Cheers,
> Mark
>
>
> _______________________________________________
> Spread-users mailing list
> Spread-users at lists.spread.org
> http://lists.spread.org/mailman/listinfo/spread-users





More information about the Spread-users mailing list