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

Re: [hobbit] hobbitd crashing (both 4.0.2 and latest snapshot) on Solaris 8



On Tue, Apr 10, 2007 at 06:28:43PM -0700, Menton, Stephen wrote:
> Additionally, both in my previous install of hobbit and the current
> snapshot I'm seeing the following messages written to
> /var/log/hobbit/hobbitlaunch.log:
> 2007-04-10 18:13:16 Setting up network listener on 0.0.0.0:1985
> 2007-04-10 18:13:16 Setting up local listener
> 2007-04-10 18:13:17 Task bbdisplay terminated by signal 15
> 2007-04-10 18:13:17 Setting up signal handlers
> 2007-04-10 18:13:17 Setting up hobbitd channels
> 2007-04-10 18:13:17 Setting up logfiles
> 2007-04-10 18:16:21 Task hobbitd terminated by signal 6

Stephen and I worked on this yesterday, and the problem turned out 
to be a general one, which his particular set of tests just happened 
to trigger easily. Specifically, he was sending a fairly large status
message from a script in one single line, i.e.
  $BB $BBDISP "status myhost.customtest green .... <several KB data>"
and this would cause hobbitd to crash the next time it should 
update the webpages.

You wouldn't have to have very long status messages to trigger this;
having a lot of smaller ones is enough. So this could be the reason
for some of the unexplained hobbitd crashes reported over time.

The attached patch solves this. I'll be updating the "allinone" patch
later today with this.


Regards,
Henrik

--- ../hobbit-4.2.0/hobbitd/hobbitd.c	2006-08-09 22:10:05.000000000 +0200
+++ hobbitd/hobbitd.c	2007-04-12 07:28:23.000000000 +0200
@@ -2167,6 +2175,7 @@
 		switch (f_type) {
 		  case F_ACKMSG: if (lwalk->ackmsg) needed += 2*strlen(lwalk->ackmsg); break;
 		  case F_DISMSG: if (lwalk->dismsg) needed += 2*strlen(lwalk->dismsg); break;
+		  case F_LINE1:
 		  case F_MSG: needed += 2*strlen(lwalk->message); break;
 
 		  case F_ACKLIST: